删除顽固的模块

我试图在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 

当你做一个lsmod ,蓝牙模块的引用计数是多less? 也,

 lsmod | grep "bluetooth" 

只是为了确保没有可能错过的其他依赖关系。


按以下顺序popup模块:

 rmmod bnep rmmod hidp rmmod rfcomm rmmod l2cap 

然后尝试

 rmmod bluetooth lsmod 

那么在/etc/modprobe.conf中禁用模块或者在/etc/modprobe.d/blacklist下列出黑名单,然后重新启动呢?

有东西映射到/ dev设备,你可以使用lsof?

我想你已经尝试了正常的select…