ubuntu网络驱动安装技巧
小樊
35
2025-12-31 20:36:47
Ubuntu 网络驱动安装技巧
一 快速判断与准备
- 识别网卡型号与驱动状态:
- 查看设备:lspci | grep -i net
- 查看已绑定驱动:lspci -k | grep -A3 -i net
- 观察接口:ip a(常见有线为 eth0/enpXs0,无线为 wlan0/wlpXs0)
- 检查是否被软/硬阻塞:
- rfkill list(若为 Soft blocked: yes,执行 rfkill unblock )
- 准备编译环境(后续手动编译或 DKMS 会用到):
- sudo apt update && sudo apt install -y build-essential linux-headers-generic dkms
- 无网应急思路:
- 使用 USB 转 RJ45 临时联网;或把 Ubuntu ISO 挂载为本地软件源 安装依赖;或用手机 USB 共享网络 给电脑上网。
二 优先使用官方与附加驱动
- 图形界面一键方案:
- 打开 设置 → 软件和更新 → 附加驱动,系统会自动搜索可用的专有/开源驱动(如 Broadcom bcmwl),选中后 应用更改 并重启。
- 命令行安装 Broadcom 闭源驱动(常见机型):
- 安装包示例:bcmwl-kernel-source(可从镜像站下载 .deb 后本地安装)
- 安装命令:sudo dpkg -i bcmwl-kernel-source.deb*
- 使用本地 ISO 作为软件源(完全离线也能装依赖):
- 挂载 ISO:sudo mount -o loop -t iso9660 /path/ubuntu.iso /media/cdrom
- 添加本地源:sudo apt-cdrom -m -d /media/cdrom add
- 配置仅本地源:echo “deb cdrom:[Ubuntu …] /” | sudo tee /etc/apt/sources.list
- 更新索引并安装依赖:sudo apt update && sudo apt install -y dkms
- 再安装所需驱动 .deb 包。
三 手动编译与 DKMS 安装
- 通用步骤(适用于缺少仓库驱动或新内核):
- 安装构建工具:sudo apt install -y build-essential linux-headers-$(uname -r)
- 获取驱动源码(厂商官网或 GitHub),进入目录后编译安装:
- 常见流程:make && sudo make install
- 加载模块:sudo modprobe <模块名>(如 rtl8812au、r8125)
- 使用 DKMS 管理(推荐,内核升级后自动重建):
- 将驱动源码放入 /usr/src/<模块名>-<版本>/,编写 dkms.conf
- 注册与安装:
- sudo dkms add -m <模块名> -v <版本>
- sudo dkms build -m <模块名> -v <版本>
- sudo dkms install -m <模块名> -v <版本>
- sudo depmod -a && sudo modprobe <模块名>
- 冲突驱动处理(以 Broadcom 为例):
- 检查并移除冲突模块:lsmod | grep -E “b43|brcmsmac|bcma|ssb|wl”
- 临时卸载:sudo rmmod <冲突模块>
- 永久拉黑:在 /etc/modprobe.d/blacklist.conf 中加入
- blacklist b43
- blacklist brcmsmac
- blacklist bcma
- blacklist ssb
- (如使用 wl,也可 blacklist wl)
- 更新 initramfs:sudo update-initramfs -u && sudo reboot
- 常见芯片示例(按实际型号调整):
- Realtek RTL8125:使用 r8125 官方驱动,DKMS 安装更稳。
- Realtek RTL8812AU/8821AU:使用对应驱动仓库,编译后 modprobe rtl8812au。
- Intel I218-V:使用 e1000e 驱动,源码 make install 后 modprobe e1000e。
四 常见坑与排查
- 驱动不匹配导致掉线或不识别:
- 现象:如 RTL8125 被 r8169 错误驱动
- 处理:卸载错误驱动并改用正确驱动(如 r8125),DKMS 方式更便于后续升级维护。
- 黑名单不全导致模块“死而复生”:
- 处理:确保冲突模块已拉黑并更新 initramfs,必要时重启。
- 编译失败或版本不兼容:
- 处理:确认已安装匹配当前内核的 linux-headers,清理后重编(make clean),或改用 DKMS。
- 无线被软/硬阻塞:
- 处理:rfkill list 检查,解除软阻塞;确认硬件无线开关/快捷键已开启。
- 完全无网时的应急:
- 方案优先级:USB 转 RJ45 > 手机 USB 共享网络 > ISO 本地源。