我正在使用 simcom 800H 蜂窝模块和我的 BeagleBone Black,它与流行的 simcom 900 非常相似。我想用 simcom 模块做两件主要事情
- 使用 AT 命令配置设置和发送和接收消息
- 使用 ppp 启用通过 GPRS 在 BBB 上的 Internet 访问。
现在明显的问题是我不能同时做这两件事。我进行了网络搜索,发现了以下帖子
第二个链接特别有用,其中一位用户使用了此存储库上的代码。
共同的主题是使用该n_gsm
模块。我尝试使用加载模块modprobe n_gsm
,但失败了。就像用户提到的那样,BBB 也没有默认包含 n_gsm 模块,所以我不得不去构建一个新内核,并将 n_gsm 添加为模块。但是,我在将其包含n_gsm
为模块时遇到了问题。这是我遵循的步骤
- 我按照本教程为我的 BBB 下载了正确的 linux 头文件。
我尝试将模块编译为 Linux LKM(可加载内核模块),如下所示
我从这里下载了 n_gsm.c
- 该
n_gsm.c
文件有一些包含在我的 BBB 中丢失的内容。所以我下载了它们。 - 我创建了一个makefile。我的目录
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
我能够成功加载一个不同的模块,如图所示(内核模块的你好世界)。我也不明白为什么我需要重新编译整个 linux 内核来创建 LKM。
我觉得我犯了一些明显的错误,因为看起来我们人们能够成功加载这个模块。
这是加载模块的正确方法吗
n_gsm
?没有太多关于此的文档/教程。如果所有这些都不起作用,是否有更简单的方法来进行这种多路复用?我真的很喜欢用于 SMS 的 AT 命令和用于 GPRS 的 PPP 的想法(而不是两者的 AT 命令)。
任何提示和建议都会非常有帮助!
Edit1:关于我的 BBB 的详细信息
- 内核 - Linux beaglebone 3.8.13-bone79
- 发行版 - Debian 7.9 (wheezy)
编辑 2:添加了有关 GSM 模块的详细信息
更新 1
- 感谢@Serge,我能够构建
n_gsm
模块并添加它而无需重新编译内核。但是,我仍然无法让 GSM 模块进入多路复用器模式。 AT+CMUX=?
,AT+CMUX?
并AT+CMUX=
在 sim800H 模块上产生错误。- 这是我所做的调试
- 玩弄硬件/软件,没有流量。没有在任何模式下工作。
- 将 TE-TA 固定本地速率设置
AT+IPR
为 auto,115200 仍然会AT+CMUX
产生错误 AT+CMUX?
在另一个 sim900 模块上进行了测试,并且可以正常工作。
知道为什么它不适用于 sim800H 吗?