Пытаюсь программно топать по блютузу на RHEL5.
Служба остановлена - без проблем. Также нет проблем с rpm -e
для связанных пакетов bluetooth - bluez- *.
ps -aef | grep -v grep | egrep -c '(sdpd|hcid)'
возвращает ноль, поэтому я знаю, что демонов больше нет.
Почему-то у меня просто не получается выгрузить модули. modprobe -rv
продолжает говорить, что они используются.
Зависимости выглядят так:
bluetooth -> bnep
-> l2cap
-> rfcomm
-> hidp
-> rfcomm
-> hidp
Но даже если начать сверху, чтобы зависимости были простыми, modprobe -rv bluetooth
возвращается FATAL: модуль 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?
Думаю, вы уже пробовали нормальные варианты ...