本文共 2122 字,大约阅读时间需要 7 分钟。
尝试了网上其他人的方法,没有成功,最终自己看文档搞定了,希望写下来方便其他人,节省时间。
因为是自己和同事一起移植内核所以选择了最新的稳定版Linux 4.5.3,内核中已经支持,只需要选择对应的配置选项即可。
然后插上就可以看到设备了:
Bus 002 Device 011: ID 1e0e:9001 Qualcomm / Option同时生成了多个ttyUSB设备:
$ ls /dev/ttyUSB* -lcrw-rw---- 1 root dialout 188, 0 May 21 22:59 /dev/ttyUSB0crw-rw---- 1 root dialout 188, 1 May 22 11:48 /dev/ttyUSB1crw-rw---- 1 root dialout 188, 2 May 22 11:48 /dev/ttyUSB2crw-rw---- 1 root dialout 188, 3 May 22 11:48 /dev/ttyUSB3crw-rw---- 1 root dialout 188, 4 May 22 11:48 /dev/ttyUSB4crw-rw---- 1 root dialout 188, 5 May 22 11:48 /dev/ttyUSB5需要特别注意的是,要将USB转串口的USB_SERIAL 模块干掉,否则会有冲突。
编译PPPD,并安装到ARM Linux下面,关于如何编译PPPD可以查看我的,使用Build System快速解决。
PPPD的配置其实就是告诉PPPD如何去发AT命令与4G模块交互,然后根据4G模块的回应,虚拟出一个网络设备,然后就可以按照访问普通设备网卡设备一样使用了。
PPPD去操控硬件模块的第一步是让4G模块与GSM运营商Connection
这一步的配置内容如下:
#Chat script for China Mobile, used SIMCOM sim7100 LTE module.TIMEOUT 15ABORT "DELAYED"ABORT "BUSY"ABORT "ERROR"ABORT "NO DIALTONE"ABORT "NO CARRIER"TIMEOUT 40'' \rATOK at+cpin?OK at+csqOK at+cops?OK at+cgatt?OK AT+cgdcont=1,"IP","CMNET"OK ATD*99***1#CONNECT我稍微解释一下,这个配置分为三个部分:
这部分完成的是基本的设置,让PPPD知道当4G模块返回哪些string value的时候abort
例如”OK at+cpin?“这一句的意思是,如果上一句AT命令发送出去后得到的值是OK,那么我们继续发送"at+cpin?"这个字符串,如果TIMEOUT(40S)了,那么就退出。
如果最后收到了CONNECT,那么就表示连接完成。
将这个配置命名为gprs-connect-chat,然后放置到/etc/ppp下面即可。
我们前面有了该发送哪些AT命令到4G模块,但是还需要告诉PPPD使用哪个端口去发送,使用上面波特率等信息,即硬件接口,这个我们如下配置:
/dev/ttyUSB2115200crtsctsmodemdebugnodetachusepeerdnsnoipdefaultdefaultrouteuser "cmnet"0.0.0.0:0.0.0.0connect '/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-chat'显然这里面用到了ttyUSB2,设置拨号连接时候的各种硬件参数,以及user,最后指定了前面的与AT配置文件。
我们将这个文件命名为gprsdial放在/etc/ppp中即可。
转载地址:http://fybai.baihongyu.com/