删除顽固模块

删除顽固模块

我正在尝试以编程方式控制 RHEL5 上的蓝牙。

我已停止服务 - 没问题。rpm -e相关蓝牙软件包 bluez-* 也没有问题。

ps -aef | grep -v grep | egrep -c '(sdpd|hcid)'

返回零,所以我知道守护进程已经消失了。

由于某种原因,我无法卸载模块。 modprobe -rv一直说它们正在使用中。

依赖关系如下:

bluetooth -> bnep
          -> l2cap 
                 -> rfcomm
                 -> hidp
          -> rfcomm
          -> hidp

但是,即使从顶部开始,依赖关系也很简单modprobe -rv bluetooth严重:模块蓝牙正在使用中

那么,我如何找出哪些进程正在使用此模块?它似乎不在 /proc/modules 或 lsof 中。

命令lsof仍然显示有东西被钩住了。

# lsmod | egrep '(bnep|hidp|rfcomm|l2cap|bluetooth)'
bnep                   82241  0 
hidp                   83521  0 
rfcomm                104809  0 
l2cap                  89281  5 bnep,hidp,rfcomm
bluetooth             118597  4 bnep,hidp,rfcomm,l2cap

答案1

当你执行 时lsmod,蓝牙模块的引用计数是多少?此外,

lsmod | grep "bluetooth"

只是为了确保没有遗漏其他依赖项。


按以下顺序弹出模块:

rmmod bnep
rmmod hidp
rmmod rfcomm
rmmod l2cap

然后尝试

rmmod bluetooth
lsmod

答案2

那么,禁用 /etc/modprobe.conf 中的模块或将 /etc/modprobe.d/blacklist 下的列表设为黑色,然后重新启动怎么样?

是否有某些东西映射到 /dev 设备并且您可以在其上使用 lsof?

我想您已经尝试过正常的选项......

相关内容