准备工作
-
识别当前驱动信息
- 查看已加载模块:
lsmod | grep -i "驱动关键词" # 如nvidia、rtl88xx
- 检查模块详细信息:
modinfo 模块名 # 如modinfo nvidia
- 查看已加载模块:
-
确定驱动安装方式
- 包管理器安装(Debian/Ubuntu/RHEL等):
dpkg -l | grep -i "驱动名" # Debian系 rpm -qa | grep -i "驱动名" # RHEL系
- 源码编译安装:通常位于
/usr/local
或自定义路径,检查安装时的make install
记录。
- 包管理器安装(Debian/Ubuntu/RHEL等):
卸载方法
方法1:通过包管理器卸载(推荐)
-
Debian/Ubuntu (APT):
sudo apt purge 驱动包名 # 如sudo apt purge nvidia-driver-535 sudo apt autoremove # 清理依赖
-
RHEL/CentOS (YUM/DNF):
sudo dnf remove 驱动包名 # 如sudo dnf remove akmod-nvidia
-
Arch/Manjaro (Pacman):
sudo pacman -R 驱动包名 # 如sudo pacman -R nvidia
注意:包名可通过
apt list --installed
或dnf list installed
查询。
方法2:卸载手动编译的驱动
- 进入源码目录:
cd /path/to/driver-source
- 执行卸载:
sudo make uninstall # 如果Makefile支持
- 若无uninstall选项:
- 手动删除文件(参考
make install
输出路径):sudo rm -f /usr/local/bin/驱动相关文件 sudo rm -f /lib/modules/$(uname -r)/kernel/drivers/模块路径
- 更新内核模块依赖:
sudo depmod -a
- 手动删除文件(参考
方法3:移除内核模块(临时生效)
- 卸载正在运行的模块:
sudo modprobe -r 模块名 # 如sudo modprobe -r nvidia
- 禁止自动加载:
创建黑名单文件:echo "blacklist 模块名" | sudo tee /etc/modprobe.d/blacklist-模块名.conf sudo update-initramfs -u # Debian系 sudo dracut -f # RHEL系
验证卸载结果
- 检查模块是否加载:
lsmod | grep -i "模块名" # 无输出表示成功
- 检查文件是否残留:
whereis 驱动名 # 检查二进制文件 find /lib/modules -name "*.ko" | grep "模块名" # 检查内核模块
常见问题解决
-
依赖冲突:
使用sudo apt --fix-broken install
(Debian系)或sudo dnf autoremove
(RHEL系)修复。 -
模块仍被内核使用:
- 关闭相关进程:
lsof /dev/设备名
(如/dev/nvidia0
)。 - 强制卸载:
sudo modprobe -rf 模块名
(谨慎使用)。
- 关闭相关进程:
-
残留配置文件:
手动删除/etc/
下的驱动配置文件(如/etc/X11/xorg.conf.d/
中的GPU配置)。
安全提示
- 关键操作前备份:
sudo cp -r /etc/modprobe.d/ /backup/
- 避免直接删除文件:可能导致系统不稳定,优先使用包管理器。
- 重启验证:卸载后重启系统确保稳定:
sudo reboot
。
重要:显卡/WiFi等硬件驱动卸载后,设备可能无法使用,建议提前下载备用驱动(如开源驱动
nouveau
、iwlwifi
)。
Linux驱动卸载的核心是匹配原始安装方式,包管理器是最安全的选择,手动编译需谨慎操作,若遇到问题,查阅硬件厂商文档(如NVIDIA Linux指南)或社区支持(如Arch Wiki),复杂情况建议在Ask Ubuntu或Stack Exchange提问。
引用说明:
- Linux内核文档:modules.txt
- Debian Wiki:内核模块管理
- Arch Wiki:内核模块
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8053.html