1、使用lsusb命令确认4G模块工作正常,没显示如下信息的话就是硬件有问题了。
另外,7600ce 4G模块上有一个蓝色的指示灯,sim卡插好了就会持续闪烁。
2、修改内核配置选项
make meunconfig修改
<*> USB Serial Converter Support --->
[*] USBGeneric Serial Driver
<*> USBdriver for GSM and CDMA modems
3、添加usb串口驱动代码
修改驱动代码增加 SIM7500_SIM7600 的 VID/PID 并且跳过 Interface 5
找到内核源码文件 option.c(一般情况下,路径在 drivers/usb/serial/option.c)
较新的内核版本(V3.2 以上)
#define SIMCOM_SIM7600_VID 0x1E0E
#define SIMCOM_SIM7600_PID 0x9001
//for SIM7600 modem for NDIS
static const struct option_blacklist_infosimcom_sim7600_blacklist = {
.reserved = BIT(5),
};
在 option_ids 列表中增加
… …
//for SIM7600 modem for NDIS
{ USB_DEVICE(SIMCOM_SIM7600_VID, SIMCOM_SIM7600_PID),
.driver_info = (kernel_ulong_t)&simcom_sim7600_blacklist
},
预期在 /dev/ 下会出现 ttyUSB0~4
4、USB NDIS NET 使用
make meunconfig修改
Device Drivers --->
[*] network device support --->
USB network Adapter --->
<*> Multi-purpose USB Networking Framework
<*> USB-to-WWAN Driver for Sierra wireless modems
将官方提供文件 simcom_wwan.c。
simcom_wwan.c 放在 drivers/net/usb 目录下,并且修改 Makefile
obj‐$(CONFIG_USB_USBNET) += usbnet.osimcom_wwan.o
驱动正确编译到内核,内核开机后连到模块会打印如下信息
imcom_wwan 1‐1:1.5 wwan0: register 'simcom_wwan'at usb‐0000:02:03.0‐1,
SIMCOM wwan/QMI device, 8a:de:f6:67:ce:1b
预期结果:
5、拨号上网
依次执行:
echo "AT\$QCRMCALL=1,1" > /dev/ttyUSB3 #拨号上网
udhcpc -i wwan0
ping -I wwan0 www.baidu.com
预期如下:
问题:有时出现 sending discover...
建议:拨号使用 echo "AT\$QCRMCALL=1,1" > /dev/ttyUSB3 ,而不是使用echo "AT\$QCRMCALL=1,1" > /dev/ttyUSB2
发AT命令使用ttyUSB2。不过我在调试的时候是偶尔出现Sending discover,原因是设备准备好了但4G模块还未准备好导致的。如果从来都没有拨号成功过,就是其他情况了。
6、以insmod *.ko 的方式拨号上网
make menuconfig配置选项
①usb串口部分
Devces drivers-->USB support--> USB Serial Converter support --> < M > USB driver for GSM and CDMA modems & [*]USB Generic Serial Driver
②usb net ndis部分
Device Drivers --->
[*] network device support --->
USB network Adapter --->
配置完后退出保存,在编译内核的目录下运行make modules,编译成功后在 drive/net/usb 及drivers/usb/serial/找到后面需要用到的.ko文件。
手动插入模块
①插入wwan0部分
insmod usbnet.ko
insmod asix.ko
insmod cdc_ether.ko
insmod cdc_ncm.ko
insmod cdc_subset.ko
insmod net1080.ko
insmod sierra_net.ko
insmod simcom_wwan.ko
②插入usbserial相关模块
insmod usbserial.ko
insmod usb_wwan.ko
insmod option.ko
然后ifconfig -a 可以看到 wwan0 网卡了。需要注意一定要先插入①中的模块再插入②中的模块,
如果顺序颠倒系统会找不到wwan0 网卡。然后再参照 "步骤5" 就能获取到ip了。
7、参照《SIM7500_SIM7600 Linux NDIS 驱动调试_V2.00.pdf》
参考:
https://blog.csdn.net/coder9999/article/details/23005877
http://bbs.chinaunix.net/thread-4112888-1-1.html