Ubuntu 26.04 禁用 4G 模块网卡驱动(保留串口)完整指南
一、背景说明
在 Ubuntu 26.04 系统中,使用高通方案(Qualcomm)的 4G/5G 模块通常会被系统识别为网络设备(如 wwan0),其核心驱动为 qmi_wwan 和 cdc_wdm。这两个驱动协同工作,将模块的 QMI(Qualcomm MSM Interface)数据通道映射为标准的 Linux 网络接口。
然而,在某些使用场景下(例如只通过 AT 串口发指令控制模块,而不使用拨号上网功能),可能需要禁用网口功能,但保留 AT 命令串口设备,以便于模块管理和调试。
二、驱动功能解析
| 驱动名称 | 功能描述 |
|---|---|
qmi_wwan | 创建网络接口(wwan0),负责模块与系统之间的 IP 数据包收发 |
cdc_wdm | 提供控制命令通道(/dev/cdc-wdm0),用于传输 QMI 控制指令(拨号、信号查询等),qmi_wwan 运行时会将其作为子驱动加载 |
qcserial / option | 管理 AT 命令串口设备(/dev/ttyUSB0~/dev/ttyUSB3),与上述网口驱动相互独立 |
这三类驱动管理的是 USB 总线上的不同接口(Interface),各自工作互不干扰。
三、操作目的
✅ 禁用:qmi_wwan 和 cdc_wdm → 让系统不生成 wwan0 网卡
✅ 保留:qcserial / option 驱动 → /dev/ttyUSB* 串口设备依然存在
四、具体操作步骤
4.1 创建黑名单配置文件
sudo nano /etc/modprobe.d/blacklist-modem.conf
4.2 添加黑名单规则
blacklist qmi_wwan
blacklist cdc_wdm
保存并退出。
4.3 更新 initramfs(关键步骤)
为了让黑名单配置在系统启动早期就生效,需要将配置写入 initramfs:
sudo update-initramfs -u -k all
⚠️ 为什么用
-k all?
系统升级内核后,apt 虽然会自动重建 initramfs,但可能只覆盖当前运行的内核或最新内核。使用-k all可以确保系统里所有已安装的内核都应用该黑名单配置,避免切换到其他内核时配置失效。
4.4 重启系统
sudo reboot
五、验证方法
5.1 检查网口驱动是否被禁用(应无输出)
lsmod | grep -E "qmi_wwan|cdc_wdm"
5.2 检查串口设备是否保留(应显示 ttyUSB*)
ls /dev/ttyUSB*
若输出类似 ttyUSB0 ttyUSB1 ttyUSB2 ttyUSB3,则说明串口功能正常。
六、内核更新后的额外注意事项
更新内核(apt upgrade / apt dist-upgrade)后,建议手动执行一次完整重建:
sudo update-initramfs -u -k all
原因:apt 自动重建 initramfs 可能不覆盖全部已安装内核,手动执行 -k all 可确保所有内核的黑名单配置均生效。
七、常见问题与温馨提示
| 问题 | 解答 |
|---|---|
| 黑名单配置是否影响 4G 上网? | 是的,禁用后 wwan0 网卡消失,无法通过该模块进行 PPP/QMI 拨号上网 |
| AT 指令还能用吗? | 能,ttyUSB* 串口不受影响,仍可发 AT+CSQ、AT+COPS? 等指令 |
| 如果以后想恢复怎么办? | 删除或注释黑名单配置文件中的两行,执行 sudo update-initramfs -u -k all,重启即可恢复 |
| 为什么配置了黑名单但 lsmod 还能看到驱动? | 可能是其他驱动依赖导致的,可以改用 install module_name /bin/true 或 /bin/false 强制阻止加载 |
| USB 模式切换(usb_modeswitch)是否有影响? | 无影响,黑名单只阻止驱动加载,不干预模块的 USB 模式切换过程 |
八、强制禁用(备选方案)
如果常规黑名单方式无效,可以使用更彻底的 install 指令来阻止加载:
# 在 /etc/modprobe.d/blacklist-modem.conf 中添加
install qmi_wwan /bin/false
install cdc_wdm /bin/false
这种方式会拦截所有对模块的加载请求,通常用于紧急安全场景。
九、总结
| 操作 | 命令 |
|---|---|
| 添加黑名单 | echo -e "blacklist qmi_wwan\nblacklist cdc_wdm" | sudo tee /etc/modprobe.d/blacklist-modem.conf |
| 更新 initramfs(全内核) | sudo update-initramfs -u -k all |
| 验证禁用 | lsmod | grep -E "qmi_wwan|cdc_wdm" |
| 验证串口保留 | ls /dev/ttyUSB* |
| 恢复功能 | 删除配置文件 + update-initramfs -u -k all + 重启 |
通过以上步骤,可以在 Ubuntu 26.04 系统中成功禁用 4G 模块的网口功能,同时完整保留 AT 命令串口,实现灵活管理。