Linux下4G模块高新兴物联ME3630拨号上网
实验硬件平台:
实验模块:
一、添加模组的PID/VIP到Linux内核中
代码文件:drivers/usb/serial/option.c
找到option_ids,添加对应的ID,这样USB才能识别到这个模块。
static struct usb_device_id option_ids[] = {{ USB_DEVICE(0x19d2, 0x0117 },{ USB_DEVICE(0x19d2, 0x0199) },{ USB_DEVICE(0x19d2, 0x1476) },....};
二、配置Linux内核支持USB串口驱动以及PPP协议的支持
根据周立功内核提供的built-zImage.sh这个文件,打开可以看到。
图中可以到arch/arm/configs目录下找到这个板子的配置文件。
然后将以下参数添加到config文件里:
然后进行Linux内核编译,过程略,设备启动开机后可以观察到如下LOG,即代表模块已经能够识别了。
ttyUSB0、ttyUSB1、ttyUSB2功能分别如下:
三、将ppp工具及相关的软件拷贝到开发板上
注意,以下操作是在开发板上进行的。
打开周立功针对龙尚4G模块提供的文档,我们只要将chat、pppd拷贝到/usr/sbin目下,然后加执行权限即可,再 将libpcap.so.1拷贝到/usr/lib。
三、拨号上网
注意,以下操作是在开发板上进行的。
ME3630这个模块官方已经提供了拨号脚本,有联通以及电信的拨号脚本,当然还有其它的脚本,这里只介绍联通4G和电信4G的适配方案,分别如下:
3.1 联通4G
ppp-on.sh:
#!/bin/sh
#clear
OPTION_FILE="/usr/sbin/zte_options"
DIALER_SCRIPT=$(pwd)/zte_ppp_dialer
pppd file $OPTION_FILE connect '/usr/sbin/chat -v -f /usr/sbin/zte_ppp_dialer' &
zte_options:
/dev/ttyUSB2
115200
crtscts
modem
persist
lock
noauth
noipdefault
debug
nodetach
user Anyname
password Anypassword
ipcp-accept-local
ipcp-accept-remote
#replacedefaultroute
defaultroute
usepeerdns
noccp
nobsdcomp
novj
dump
zte_ppp_dialer:
ABORT "NO CARRIER"
ABORT "ERROR"
TIMEOUT 120
"" ATE
SAY "ATE"
ECHO ON
OK ATH
OK ATP
OK AT+CGDCONT=1,\"IP\",\"3GNET\"
OK AT+ZSNT=0,0,0
OK ATD*99#
CONNECT
3.2 电信4G
ppp-on.sh:
#!/bin/sh
#clear
OPTION_FILE="/usr/sbin/zte_options"
DIALER_SCRIPT=$(pwd)/zte_ppp_dialer
pppd file $OPTION_FILE connect '/usr/sbin/chat -v -f /usr/sbin/zte_ppp_dialer' &
zte_options:
/dev/ttyUSB2
115200
crtscts
modem
persist
lock
noauth
noipdefault
debug
nodetach
user Anyname
password Anypassword
ipcp-accept-local
ipcp-accept-remote
#replacedefaultroute
defaultroute
usepeerdns
noccp
nobsdcomp
novj
dump
zte_ppp_dialer:
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
TIMEOUT 120
"" at
OK ATDT*99*1#
CONNECT
根据当前的适配方案,将zte_options、zte_ppp_dialer拷贝/usr/sbin目录下,ppp-on.sh这个可以随便放在一个用户目录下,然后执行ppp_on.sh脚本
如看到如上类似的LOG,表示拨号成功,这时候输入ifconfig可以看到生成了一个ppp0节点。
网络连通测试,我们直接用ping命令ping百度,看是否有心跳包回复: