温馨提示×

linux驱动怎样卸载

小樊
58
2026-09-03 12:51:05
栏目: 智能运维

在 Linux 中,“卸载驱动”通常分为几种情况,具体做法取决于驱动是以什么形式存在的。下面按常见场景说明。


一、卸载内核模块(最常见)

大多数 Linux 驱动是以**可加载内核模块(.ko)**形式存在的。

1. 查看已加载的驱动

lsmod

或查看某个驱动:

lsmod | grep xxx

2. 卸载驱动

sudo rmmod 驱动名

或(更推荐):

sudo modprobe -r 驱动名

示例:

sudo modprobe -r usb_storage

3. 卸载失败的常见原因

  • 正在被使用
    lsmod | grep 驱动名
    
    Used by
  • 被其他模块依赖
  • 系统关键驱动(不能卸)

可尝试:

sudo modprobe -r -f 驱动名

⚠️ 强制卸载有风险,可能导致系统不稳定


二、禁止驱动开机自动加载

卸载后若重启又自动加载,需要禁用。

方法 1:加入黑名单

sudo vim /etc/modprobe.d/blacklist.conf

添加:

blacklist 驱动名

然后更新 initramfs(部分发行版需要):

sudo update-initramfs -u

方法 2:禁止特定设备加载

echo 'install 驱动名 /bin/false' | sudo tee /etc/modprobe.d/驱动名.conf

三、卸载编译安装的驱动

如果是你自己 make && make install 的:

1. 进入源码目录

cd 驱动源码目录
sudo make uninstall

(不是所有驱动都支持)

2. 手动删除

sudo rm /lib/modules/$(uname -r)/kernel/路径/驱动.ko
sudo depmod -a

四、卸载第三方/厂商驱动(如 NVIDIA)

NVIDIA 示例

sudo nvidia-uninstall

或:

sudo apt remove --purge nvidia-*

五、卸载内置进内核的驱动(不能 rmmod)

如果驱动是 编译进内核(built-in)

cat /boot/config-$(uname -r) | grep 驱动名

看到:

CONFIG_XXX=y

说明不能卸载,只能:

  • 重新编译内核
  • 或用 blacklist / 设备树禁用

六、快速判断你是哪种情况

modinfo 驱动名
  • .ko 文件 → 可卸载模块
  • 没有 → 内置驱动

如果你愿意,可以告诉我:

  • 驱动名是什么
  • lsmod | grep 驱动名 的输出
  • 发行版(Ubuntu / CentOS / 嵌入式等)

我可以直接给你准确命令

0