SMS和GPRS:使用n_gsm在BeagleBone Black上复用GSM模块

问题描述:

我使用simcom 800H蜂窝模块和我的BeagleBone Black非常类似于流行的simcom 900.我想用simcom模块做两件主要事情SMS和GPRS:使用n_gsm在BeagleBone Black上复用GSM模块

  • 使用AT命令配置设置并发送和接收消息
  • 使用ppp通过GPRS在BBB上启用互联网访问。

现在明显的问题是我不能同时做两个。我做了网络搜索,发现下列职位

  1. Using GPRS and GSM Simulatneously
  2. Sending AT commands to SIM900 whilst pppd is active

第二连杆一直是特别有用的用户的一个使用了这个repository的代码。

常见的主题是使用n_gsm模块。我试图使用modprobe n_gsm加载模块,但失败了。就像用户提到的那样,BBB也不包含n_gsm模块作为默认模块,所以我必须去创建一个新的内核,并将n_gsm作为模块添加。不过,我将n_gsm作为模块出现问题。下面是我遵循的步骤

  1. 我跟着this教程,并下载了我的BBB的正确的linux头。
  2. 我试图编译模块作为一个Linux LKM(可加载内核模块)如下

  3. 我下载了n_gsm.c从here

  4. n_gsm.c文件有一些包括在我BBB失踪。所以我下载了它们。
  5. 我创建了一个makefile。如图所示我的目录有n_gsm.cMakefile

的Makefile

obj-m += n_gsm.o 

all: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean: 
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

这产生了错误n_gsm errors

  • 我是能够成功地加载不同模块如图this (内核模块的hello世界)。我也不明白为什么我需要重新编译整个Linux内核来创建LKM。

  • 我觉得我犯了一些明显的错误,因为它看起来我们人们能够 成功地加载此模块。

  • 这是加载模块的正确方法,特别是n_gsm这个没有太多的文档/教程。

  • 有没有更简单的方法来做到这一点,以防万一所有这些不锻炼?我真的很喜欢用于GPRS的AT命令和用于GPRS的PPP(而不是两者的AT命令)。

任何提示和建议将非常有帮助!

EDIT1:我的BBB

  1. 内核细节 - Linux的beaglebone 3.8.13-bone79
  2. 发行版 - Debian的7.9(喘息)

编辑2:添加细节关于GSM模块

  1. This是我使用的GSM中断板。
  2. 它使用this模块,您可以检出command manualmultiplexing application note

更新1

  1. 感谢@Serge,我是能够建立n_gsm模块,并添加它,而无需重新编译内核。但是,我仍然无法使GSM模块进入多路复用模式。
  2. AT+CMUX=?,AT+CMUX?AT+CMUX=在sim800H模块上产生错误。
  3. 这里是去窃听我已经做了
    1. 与硬件/软件,并没有绕流播放。没有在任何模式下工作。
    2. 设置TE-TA固定本地利率AT+IPR为auto,115200,仍AT+CMUX生成错误
    3. 另一SIM900模块测试AT+CMUX?和工作。

任何想法为什么它不适用于sim800H?

+0

您在BB上使用的是什么发行版? – Serge

+0

Debian wheezy。我会尽快编辑这篇文章以添加更多关于BBB的细节。 – am3

+0

模块如何连接:通过uart或usb? – Serge

通过从正在使用的内核版本下载beaglebone's kernel source repository的n_gsm.c解决了问题中的问题。

+0

我能够加载模块和东西。但是,让gsm模块工作在多路复用模式是一个问题(请参阅更新1)。任何指针? – am3

+0

不幸的是,我没有这样的模块,所以我不能重现这种情况,对不起。 – Serge