SIM7100c+pppd 4G上网(am335x)

最近在am335x平台上调试SIM7100 4G模块,参考以前调试过的EC20 4G模块和SIM7600模块。

1. 首先参考SIM7600的(SIM7600需要加载自己的模块驱动),以前SIM7600是用NDIS拨号,速度很快,但是NDIS拨号模式只适合在LTE比较新出品的4G 模块。所以不适用SIM7100。

2. 参考EC20的。EC20拨号的步骤是移植chat,pppd, pppdump,pppstats几个拨号指令;添加PPP拨号驱动;编写拨号脚本;最后就是使用pppd来拨号。


3. 对于识别4G模块生成的6个ttyUSBx, 他们各有各的作用,其中,ttyUSB0~ttyUSB5的情况下,ttyUSB3是拨号节点(也就是MODEM拨号模式的接口),ttyUSB4~ttyUSB9的情况下ttyUSB7是拨号节点:

ttyUSB0——Diagnosticscom

ttyUSB1—NMEA com

ttyUSB2—AT com

ttyUSB3—MODEM com

ttyUSB4—Audio com

ttyUSB5—以太网高速适配器


4. 在拨号之前,可以先查看SIM卡和模块的状态,这个时候应该使用AT com模式,具体可以使用minicom指令来调试 “minicom -s -D /dev/ttyUSB2”。下面是相关指令:

AT+CPIN? //查看是否识别SIM卡

AT+CSQ //查看信号强度

AT+CIMI //查看运营商:

移动(cmnet):4600/02/07/08
联通(3gnet):46001/06/09
电信(ctnet):46003/05/11


调试完之后,拨号脚本和指令整理到了以下链接:

http://download.csdn.net/download/wxxgoodjob/10170530


调试的过程参考了一些三个链接:

1. http://m.blog.csdn.net/qq_32384313/article/details/77725544
2. http://blog.csdn.net/cloudjx/article/details/54313530
3. http://www.linuxidc.com/Linux/2016-03/129581.htm

其中,第2点内容比较重要,先粘贴下来吧:

添加SIM7100c串口驱动


找到内核源码文件 option.c(一般情况下,路径在drivers/usb/serial/option.c)

如果是较新的内核版本(3.2以上)

#defineSIMCOM_SIM7100_VID 0x1E0E

#defineSIMCOM_SIM7100_PID 0x9001


//forSIM7100 modem for NDIS

staticconst struct option_blacklist_info simcom_sim7100_blacklist = {

.reserved= BIT(5),

};

option_ids列表中增加

......

//forSIM7100 modem for NDIS

{USB_DEVICE(SIMCOM_SIM7100_VID, SIMCOM_SIM7100_PID),

.driver_info= (kernel_ulong_t)& simcom_sim7100_blacklist t

},

......

如果是较低的内核版本,

#defineSIMCOM_SIM7100_VID 0x1E0E

#defineSIMCOM_SIM7100_PID 0x9001



option_ids列表中增加

{USB_DEVICE(SIMCOM_SIM7100_VID, SIMCOM_SIM7100_PID)}, /*SIM7100 */

并且在 option_probe里过滤掉interface5

/*sim7100 */

if(serial->dev->descriptor.idVendor == SIMCOM_SIM7100_VID &&

serial->dev->descriptor.idProduct== SIMCOM_SIM7100_PID &&

serial->interface->cur_altsetting->desc.bInterfaceNumber== 5 )

return-ENODEV;


makemenuconfig >Device drivers > USB suooport

<*>USBSerial Converter support --->

[*]USBGSM and CDMA modems

[*]Genericserial driver(*)



PPPD配置


编译ppp


ppp文件夹放在系统的“etc/”目录;

pppd文件放在系统的“usr/sbin/”目录。

将“libpcap.so.1”拷贝到“/usr/lib”:


同时将ls-gprs文件的串口改为ttyUSB2波特率设为115200



/ppp/chat/gprs-connect-chat配置如下:

TIMEOUT15

ABORT"DELAYED"

ABORT"BUSY"

ABORT"ERROR"

ABORT"NO DIALTONE"

ABORT"NO CARRIER"

TIMEOUT40

''\rAT

OKATS0=0

OKATE0V1

OKAT+CGDCONT=1,"IP","CMNET"

OKAT+CGEQREQ=1,2,128,384,,,0,,,,,,

OKATDT*99*1#

CONNECT


/ppp/peers/ls-gprs(如果没有则自己创建一个,名字无所谓)配置如下:


#Usage: root> pppd call ls-gprs

/dev/ttyUSB2//sim7100c通信串口

115200//波特率

crtscts

modem

noauth

debug

nodetach

#hide-password

usepeerdns

noipdefault

defaultroute

user"cmnet"

0.0.0.0:0.0.0.0

#ipcp-accept-local

#ipcp-accept-remote

#lcp-echo-failure12

#lcp-echo-interval3

#noccp

#novj

#novjccomp

#persist

connect'/usr/sbin/chat -s -v -f /etc/ppp/chat/gprs-connect-chat'


PPPD启动



pppdcall ls-gprs&

PPPD将会在后台运行。成功启动后,就可以直接使用TCP的方式进行通信了,pppd会自动根据配置与4g模块进行通信。



PPPD断开


killallpppd





你可能感兴趣的:(SIM7100c+pppd 4G上网(am335x))