Skip to content

USB驱动

目录


文档概述

本文档详细介绍移芯系列模组在 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[] 数组中。

配置示意图:

添加 PID/VID 号

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

配置示意图:

RNDIS 配置路径

2.1.2 ECM 配置路径

-> Device Drivers
    -> USB support
        -> USB Gadget Support
            -> [] Ethernet Control Model (CDC ECM)
            -> [*] Ethernet Control Model (CDC ECM) subset

配置示意图:

ECM 配置路径

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

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 驱动,无需额外安装