USB驱动¶
目录¶
- 1. 内核驱动配置
- 1.1 内核配置项开启
- 1.2 修改 option.c 文件
- 1.3 临时命令行方式添加 PID 和 VID
- 2. ECM/RNDIS 网卡上网配置
- 2.1 内核驱动配置
- 2.2 配置 ECM 模式
- 2.3 Linux 信息查询
- 2.4 USB 网络模式切换
- 2.5 RNDIS/ECM 功能开关
- 3. 注意事项
文档概述¶
本文档详细介绍移芯系列模组在 Linux 操作系统环境下的驱动配置和使用方法。旨在帮助客户技术人员快速完成模组的驱动安装、网络配置及故障排查,确保模组在 Linux 平台上稳定运行。
1. 内核驱动配置¶
1.1 内核配置项开启¶
移芯系列模组在 Linux 环境下依赖 usb_serial.ko 驱动模块。使用前需确保内核配置中已启用以下选项:
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
注意:上述配置项需根据实际内核版本进行调整,建议使用 Linux 内核 3.10 及以上版本以获得最佳兼容性。(本地测试环境为Linux 6.6.1)
1.2 修改 option.c 文件¶
1.2.1 添加 PID/VID 号¶
USB Serial 驱动通过 option_ids[] 数组匹配插入的 USB 设备。移芯系列模组的 USB 设备标识为 VID: 19d1, PID: 1003,需将其添加至 option_ids[] 数组中。
配置示意图:

1.2.2 过滤网卡类型驱动枚举¶
在 drivers/usb/serial/option.c 文件的 option_probe 函数中添加网卡枚举设备屏蔽逻辑,以避免驱动冲突。
配置示意图:

1.3 临时命令行方式添加 PID 和 VID¶
如需在不重新编译内核的情况下临时添加设备支持,可执行以下命令:
sudo /sbin/modprobe option
sudo chmod 666 /sys/bus/usb-serial/drivers/option1/new_id
echo 19d1 1003 > /sys/bus/usb-serial/drivers/option1/new_id
说明:此方法仅在当前会话有效,系统重启后需重新执行。如需永久生效,请参考 1.2 节修改内核源码。
2. ECM/RNDIS 网卡上网配置¶
2.1 内核驱动配置¶
使用 ECM 或 RNDIS 模式实现网络连接时,需确保 Linux 内核已配置相关驱动支持。
2.1.1 RNDIS 配置路径¶
-> Device Drivers
-> Network device support
-> USB Network Adapters
-> <*> Host for RNDIS and ActiveSync devices
配置示意图:

2.1.2 ECM 配置路径¶
-> Device Drivers
-> USB support
-> USB Gadget Support
-> [] Ethernet Control Model (CDC ECM)
-> [*] Ethernet Control Model (CDC ECM) subset
配置示意图:

2.2 配置 ECM 模式¶
发送 AT 指令配置模组为 ECM 模式:
AT+ECPCFG="usbNet",1 // 配置成 ECM 模式
OK
AT+CFUN=1,1 // 重启模组使配置生效
OK
命令说明:
- AT+ECPCFG="usbNet",1:将 USB 网络模式设置为 ECM(适用于 Linux)
- AT+CFUN=1,1:重启模组
2.3 Linux 信息查询¶
2.3.1 查询 USB 设备和枚举日志¶
使用以下命令查看 USB 设备识别情况:
dmesg | grep usb

2.3.2 查看网卡信息¶
ifconfig
默认使能 NAT,IP 地址为 192.168.10.2。

2.3.3 测试网络连通性¶
选择网卡测试网络连通性:
ping -I eth0 www.baidu.com

2.4 USB 网络模式切换¶
查看当前 USB 网络模式配置:
AT+ECPCFG?
+ECPCFG: "usbNet":1 // 1: ECM 模式(Linux 默认)
OK
切换网络模式:
AT+ECPCFG="usbNet",0 // 0: RNDIS 模式, 1: ECM 模式, 2: 自适应模式
OK
AT+CFUN=1,1 // 重启模组使配置生效
OK
参数说明:
- 0:RNDIS 模式(适用于 Windows)
- 1:ECM 模式(适用于 Linux)
- 2:自适应模式(Windows 使用 RNDIS,Linux 使用 ECM)
注意:模式切换后必须重启模组才能生效。
2.5 RNDIS/ECM 功能开关¶
在执行操作前请确保 RNDIS/ECM 功能开关已打开:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 设置命令 | AT+RNDISCALL=<mode> |
OK |
| 读取命令 | AT+RNDISCALL? |
+RNDISCALL:<mode> OK |
| 测试命令 | AT+RNDISCALL=? |
+RNDISCALL:(0-disable;1-enable) OK |
参数定义:
| 参数 | 定义 | 取值 | 取值说明 |
|---|---|---|---|
<mode> |
工作模式 | 0 | 关闭 RNDIS/ECM 网卡,重启生效 |
| 1 | 打开 RNDIS/ECM 网卡,重启生效 |
3. 注意事项¶
| 序号 | 事项描述 | 说明 |
|---|---|---|
| 1 | 内核版本要求 | 建议使用 Linux 内核 3.10 及以上版本以获得更好的兼容性。(本地测试环境为Linux 6.6.1) |
| 2 | 驱动冲突 | 确保系统中没有其他 USB 网卡驱动与 ECM/RNDIS 驱动冲突 |
| 3 | 权限问题 | 操作 /sys 文件系统时需使用 sudo 获取足够权限 |
| 4 | 模式切换 | 切换 USB 网络模式后必须重启模组才能生效 |
| 5 | Windows 兼容性 | Windows 系统已自带 ECM/RNDIS 驱动,无需额外安装 |