4g全网通短信猫池采用的是移远EC20的模块,所以在linux下实际就是驱动就是EC20驱动,百度下EC20 LINUX驱动,有很多介绍和方法。
-
- 确认全网通模块供电是否正常,放手机卡,看电源指示灯是不是正常;
1.2. 能过lsusb查看是否可以发现 全网通EC20的模块,
root@astar-evb30:/ # lsusb
lsusb
Bus 001 Device 002: ID 1a40:0101
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0001
Bus 003 Device 001: ID 1d6b:0001
Bus 001 Device 004: ID 2c7c:0125 ----------------这个是EC20的VID和PID
Bus 001 Device 003: ID 0bda:8152
发现EC20模块的VID与PID已经发现,说明usb device已经被发现,这是很重要的一步;
接着查看 ls /dev/ttyUSB*,结果发现根本没有驱动好。
为什么是这样呢?原因是没有将2c7c:0125设备为usb2serial device table里,于是打开drivers/usb/serial/pl2303.c添加
diff --git a/lichee/linux-3.4/drivers/usb/serial/pl2303.c b/lichee/linux-3.4/drivers/usb/serial/pl2303.c
index a1a9062..f00a64f 100644
--- a/lichee/linux-3.4/drivers/usb/serial/pl2303.c
+++ b/lichee/linux-3.4/drivers/usb/serial/pl2303.c
@@ -92,7 +92,8 @@ static const struct usb_device_id id_table[] = {
{ USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) },
{ USB_DEVICE(ADLINK_VENDOR_ID, ADLINK_ND6530_PRODUCT_ID) },
{ USB_DEVICE(SMART_VENDOR_ID, SMART_PRODUCT_ID) },
- { } /* Terminating entry */
+ { USB_DEVICE(0x2c7c,0x0125) }, // add liuxd 20180415 for 4g
+ { } /* Terminating entry */
};
重新编译后发现已经生成了
root@astar-evb30:/ # ls -la /dev/ttyUSB*
ls -la /dev/ttyUSB*
crwxrwxrwx system system 188, 0 1970-01-01 08:00 ttyUSB0
crwxrwxrwx system system 188, 1 1970-01-01 08:00 ttyUSB1
crwxrwxrwx system system 188, 2 2018-04-19 19:10 ttyUSB2
crwxrwxrwx system system 188, 3 2018-04-19 19:10 ttyUSB3
crw------- root root 188, 4 1970-01-01 08:00 ttyUSB4
只要从dev里面看到ttyusb0-ttyusb3,就代表驱动好了,另外ttyusb2是AT端口,发送短信使用这个,于是手动向EC20发 at 指令试试看
打开一个 终端,root@astar-evb30:/ # cat /dev/ttyUSB2
cat /dev/ttyUSB2
用另外一个终端向ttyUSB2发命令 echo -en "AT\r\n" > /dev/ttyUSB2
返回 OK说明成功.