跳至正文
老丹的足迹 —— 代码写给机器,游记写给自己,感悟写给时间
老丹的足迹 老丹的足迹
老丹的足迹 老丹的足迹
  • 首页
  • 示例页面
  • 首页
  • 示例页面
老丹的足迹 老丹的足迹
老丹的足迹 老丹的足迹
  • 首页
  • 示例页面
  • 首页
  • 示例页面

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 命令串口,实现灵活管理。

作者

老丹

关注我
其他文章
上一个

Tailscale 工作原理详解:现代VPN的架构、连接与安全

下一个

从零开始:用 Docker 部署 Jellyfin 并启用英特尔核显硬件加速

关于博主

    老丹是一名C/C++后台开发工程师,信奉“无抽象不设计,无性能不生产”。

  • 技术栈:Modern C++、Linux环境编程、多线程/并发、网络编程等。
  • 信条:能用constexpr解决的问题绝不拖到运行时,能靠RAII避免的泄漏绝不写析构。
  • 正在填坑:从解封装到渲染的C++全链路实现,正在驯服FFmpeg与H.264/H.265。
  • 输出原则:这里的每一段代码都经过-Wall -Wextra -Werror -O2的洗礼。

近期文章

  • Ubuntu 防火墙迁移指南:从 UFW 到 firewalld 的完整实践 2026年9月12日
  • Nano 编辑器完全操作指南:从入门到熟练 2026年9月12日
  • SSCG:让自签名证书不再“危险”的生成工具 2026年9月12日
  • Ubuntu Samba 服务安装与配置完全指南 2026年9月12日
  • 从零开始:用 Docker 部署 Jellyfin 并启用英特尔核显硬件加速 2026年9月11日

文章分类

  • C/C++开发 (22)
  • Docker容器 (5)
  • Linux工具包 (17)
  • Linux服务配置 (50)
  • Linux系统 (16)
  • OpenWrt路由 (3)
  • Shell脚本 (3)
  • 代码管理 (1)
  • 安防技术 (4)
  • 数据安全 (36)
  • 未分类 (1)
  • 网络协议 (25)
  • 计算机理论 (23)
  • 音视频技术 (5)
联系我们:📍 地址:中国·广东省深圳市   |   ✉️ 邮箱:support@tanglinux.com   |   💬 QQ:870866607
版权所有:老丹的足迹粤ICP备2026061170号-1       公安备案图标 粤公网安备44030002013274号