RHEL5のBluetoothをプログラムで踏みつけようとしています。
サービスを停止しました-問題ありません。また、関連するBluetoothパッケージbluez- *のrpm -e
にも問題はありません。
ps -aef | grep -v grep | egrep -c '(sdpd|hcid)'
ゼロを返すので、デーモンがなくなっていることがわかります。
なんらかの理由で、モジュールをアンロードできません。 modprobe -rv
は使用中であると言い続けます。
依存関係は次のようになります。
bluetooth -> bnep
-> l2cap
-> rfcomm
-> hidp
-> rfcomm
-> hidp
ただし、依存関係が単純になるように先頭から始めても、modprobe -rv bluetooth
は致命的:モジュール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
を実行する場合、Bluetoothモジュールの参照カウントはいくつですか。また、
lsmod | grep "bluetooth"
見逃された可能性のある他の依存関係がないことを確認するためだけに。
次の順序でモジュールを取り出します。
rmmod bnep
rmmod hidp
rmmod rfcomm
rmmod l2cap
次に、試してください
rmmod bluetooth
lsmod
/etc/modprobe.confのモジュールを無効にするか、/ etc/modprobe.d/blacklistの下のリストを黒くしてから再起動するのはどうですか?
何かが/ devデバイスにマップされ、その上でlsofを使用できますか?
私はあなたがすでに通常のオプションを試したと思います...