Removendo módulos teimosos

6

Estou tentando programaticamente pisar no bluetooth no RHEL5.

Eu tenho o serviço parado - não há problema. Também não há problema em rpm -e para os pacotes bluetooth associados, bluez - *.

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

retorna zero, então eu sei que os daemons acabaram.

Por algum motivo, não consigo fazer com que os módulos sejam descarregados. modprobe -rv continua dizendo que eles estão em uso.

Dependências são assim:

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

Mas, mesmo começando no topo para que as dependências sejam simples, modprobe -rv bluetooth retorna FATAL: O módulo bluetooth está em uso .

Então, como descubro quais processos estão usando este módulo? Não parece estar em / proc / modules, ou lsof.

O comando lsof ainda mostra algo viciado.

# 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
    
por pboin 14.08.2009 / 18:18

2 respostas

4

Quando você faz um lsmod , qual é a contagem de referência para o módulo bluetooth? Além disso,

lsmod | grep "bluetooth"

apenas para garantir que não haja outras dependências que possam ter sido perdidas.

Ejete os módulos na seguinte ordem:

rmmod bnep
rmmod hidp
rmmod rfcomm
rmmod l2cap

Em seguida, tente

rmmod bluetooth
lsmod
    
por 14.08.2009 / 18:49
2

Que tal desabilitar o módulo em /etc/modprobe.conf ou lista negra em /etc/modprobe.d/blacklist e então apenas reinicializar?

Algo mapeia para um dispositivo / dev e você pode usar lsof nisso?

Eu acho que você já tentou as opções normais ...

    
por 14.08.2009 / 19:26