Ubuntu编译安装EC200A-CN驱动

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 */

image-20230330154028433

注意:其余的文件移远官方已经提前编辑好,不用再做修改

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
上一篇
下一篇