1、准备
下载移远的官方驱动包,可以点击这里下载
使用uname -r
命令查看系统内核版本,我的是4.15.0-208-generic
,所以选择v4.15.1
版本的驱动文件夹就行
2、修改源码
将v4.15.1
文件夹复制出来进行编辑
添加 VID 和 PID
在文件/drivers/usb/serial/option.c
中搜索static const struct usb_device_id option_ids[]
函数
在 #if
和 #endif
之间添加以下内容
{ USB_DEVICE(0x2C7C, 0x6005) }, /* Quectel EC200A-CN */
注意:其余的文件移远官方已经提前编辑好,不用再做修改
3、编译
安装编译工具和依赖
# 安装内核标头文件
apt install -y linux-headers-$(uname -r)
# 安装build-essential工具
apt install -y build-essential
# 安装make依赖
apt install -y libncurses5-dev libssl-dev libelf-dev
将编辑好的v4.15.1
文件夹传输到设备上,cd
到这个文件夹,执行以下命令:
# 编译
make
# 安装
make install
4、测试
驱动安装好后可以使用 ls /dev/ttyUSB*
命令看到三个串口
root@ubuntu:~# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
通常EC200A的AT串口是/dev/ttyUSB2
可以使用busybox microcom
进行串口测试
root@ubuntu:~# busybox microcom -t 10000 /dev/ttyUSB2
at
OK
AT+QCFG="usbnet"
+QCFG: "usbnet",1
OK
busybox microcom的-t参数是在指定时间无操作后自动关闭串口
通过AT+QCFG="usbnet"指令可以看到模块的拨号方式是ACM
5、拨号
5.1、检查拨号模式
通过AT串口发送AT+QCFG="usbnet",回复1即可,如果不是1,那么需要设置ACM拨号模式
# 配置为ACM拨号
AT+QCFG="usbnet",1
5.2、普通手机卡拨号
# 拨号
AT+QNETDEVCTL=1,1,1
# 自动拨号,且断电保存
AT+QNETDEVCTL=3,1,1
# 断开拨号
AT+QNETDEVCTL=0,1,1
# QNETDEVCTL 指令解释
AT+QNETDEVCTL=<type>,<cid>[,<URC_en>]
# <type>
0 断开网卡连接
1 仅连接网卡一次
2 连接网卡,且掉网重连
3 网卡自动拨号,且断电保存
# <cid>
0 绑定到LWIP后,断网、反激活导致的解绑或重新绑定,不会有urc上报
1 绑定到LWIP后,断网、反激活导致的解绑或重新绑定,会有urc上报
# <URC_en>
0 关闭 URC +QNETDEVSTATUS: <status>上报
1 开启 URC +QNETDEVSTATUS: <status>上报
5.3、物联网卡拨号
物联网卡需要输入对应的APN、账号、密码
先通过以下指令设置,然后再进行5.2步骤拨号
AT+QICSGP=1,"apn","username","password",2
6、其他
EC200A-CN默认使用ACM进行拨号
需要注意的是,ubuntu中的ModemManager服务会占用EC200的串口,导致AT指令无反馈
所以需要禁用ModemManager服务:
systemctl stop ModemManager
systemctl disableModemManager