【发布时间】:2016-06-08 11:11:21
【问题描述】:
我正在使用 simcom 800H 蜂窝模块和我的 BeagleBone Black,它与流行的 simcom 900 非常相似。我想用 simcom 模块做两件主要事情
- 使用 AT 命令配置设置和收发消息
- 使用 ppp 通过 GPRS 在 BBB 上启用 Internet 访问。
现在明显的问题是我不能同时做这两件事。我做了一个网络搜索,发现了以下帖子
第二个链接在其中一位用户使用此repository 上的代码时特别有用。
常见的主题是使用n_gsm 模块。我尝试使用modprobe n_gsm 加载模块,但失败了。就像用户提到的那样,BBB 也没有默认包含 n_gsm 模块,所以我不得不去构建一个新内核,并将 n_gsm 添加为模块。但是,我在将 n_gsm 包含为模块时遇到了问题。这是我遵循的步骤
- 我按照this 教程为我的 BBB 下载了正确的 linux 头文件。
我尝试将模块编译为Linux LKM(可加载内核模块)如下
我从here下载了n_gsm.c
-
n_gsm.c文件有一些包含在我的 BBB 中缺失的内容。所以我下载了它们。 - 我创建了一个生成文件。我的目录有
n_gsm.c和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
我能够成功加载 不同的模块,如 this(内核模块的你好世界)所示。我也不明白为什么要重新编译整个linux内核来创建LKM。
我觉得我犯了一些明显的错误,因为看起来我们人类能够做到 成功加载此模块。
这是加载模块的正确方法,特别是
n_gsm。 这方面的文档/教程不多。有没有更简单的方法来进行这种多路复用,以防所有这些都不起作用?我真的很喜欢用于 SMS 的 AT 命令和用于 GPRS 的 PPP 的想法(而不是两者的 AT 命令)。
任何提示和建议都会非常有帮助!
Edit1:关于我的 BBB 的详细信息
- 内核 - Linux beaglebone 3.8.13-bone79
- 发行版 - Debian 7.9 (wheezy)
编辑 2 :添加了有关 GSM 模块的详细信息
- This 是我正在使用的 GSM 分线板。
- 它使用this 模块,您可以查看command manual 和multiplexing application note。
更新 1
- 感谢@Serge,我能够构建
n_gsm模块并添加它而无需重新编译内核。但是,我仍然无法让 GSM 模块进入复用模式。 -
AT+CMUX=?、AT+CMUX?和AT+CMUX=在 sim800H 模块上产生错误。 - 这是我所做的调试
- 玩过硬件/软件,没有流量。没有在任何模式下工作。
- 将 TE-TA 固定本地速率
AT+IPR设置为自动,115200 和AT+CMUX仍然会生成错误 - 在另一个 sim900 模块上测试了
AT+CMUX?并且有效。
知道为什么它不适用于 sim800H 吗?
【问题讨论】:
-
你的 BB 使用什么发行版?
-
Debian 喘不过气来。我将尽快编辑该帖子以添加有关 BBB 的更多详细信息。
-
模块如何连接:通过uart还是usb?
-
通过 uart。 AT 命令和 PPP 单独工作。
-
我明白了。那么除了解决您尝试编译的源代码的问题之外,我没有任何建议。对不起。
标签: gsm at-command beagleboneblack gprs ppp