Como posso alternar entre os módulos wi-fi “wl” e “b43” sem reiniciar?

0

Se eu reiniciar meu computador com o seguinte em /etc/modprobe.d/blacklist.conf :

blacklist b43
blacklist ssb
blacklist wl

Então eu posso ou modprobe wl (broadcom STA, funciona bem) ou modprobe b43 (altamente instável no meu B4331 rev02).

Mas se algum ponto eu carregar o módulo b43 , nada que eu puder (descobrir como fazer) permitirá que eu carregue wl sem reiniciar minha máquina.

Por exemplo, se eu:

modprobe b43 # --> working network access
rmmod b43 brcmsmac ssb bcma wl
modprobe wl
iwlist scan

Isso produz

eth1      No scan results

Estou tentando descobrir qual estado está sendo alterado , tal que modproble b43 && rmmod b43 está tendo algum efeito prejudicial. Alguma idéia de como eu posso "recuperar" do carregamento de b43 sem reinicializar?

Obrigado!

    
por Bosh 22.01.2015 / 03:15

1 resposta

2

O estado que está sendo alterado provavelmente está no próprio adaptador de rede. Os adaptadores sem fio, especialmente, tendem a ser computadores programáveis complexos em si, e é provável que b43 esteja deixando o adaptador em um estado em que ele não saiba como falar com wl . Além disso, você precisa ter uma compreensão profunda de como esses drivers funcionam para dizer exatamente o que está acontecendo.

Se você pudesse ligar e desligar o próprio adaptador, isso provavelmente limparia o estado mesmo se você não desligasse o computador inteiro. Eu vou assumir que estamos falando de uma placa PCI que está enterrada em algum lugar dentro do computador ou talvez parte da placa-mãe. Então, cortar o poder do dispositivo fisicamente não funcionará ... mas pode haver uma maneira de pedir ao barramento PCI para fazer algo semelhante para nós.

AVISO

Observe que eu só tentei isso uma vez em minha própria máquina (que não tem um cartão da Broadcom). Os princípios são os mesmos, mas seus resultados podem variar. Isso poderia potencialmente travar seu sistema ou fazer outras coisas ruins . Eu duvido que seja se você for cuidadoso, mas eu não estou familiarizado o suficiente para fazer apostas nele. E se você não for cuidadoso e escolher o número errado do dispositivo, poderá encerrar seu controlador de disco rígido em vez do adaptador de rede.

Por fim, não copie e cole essas instruções . Você precisará modificá-los para se adequar ao seu sistema.

Você precisará encontrar o caminho do barramento PCI para o seu dispositivo em /sys . Comece com um driver já carregado, para que você possa procurar seu dispositivo pelo nome da interface de rede:

# ls -l /sys/class/net
lrwxrwxrwx 1 root root 0 Feb 18 04:12 eth0 -> ../../devices/pci0000:00/0000:00:1c.2/0000:07:00.0/net/eth0
lrwxrwxrwx 1 root root 0 Feb 18 04:08 lo -> ../../devices/virtual/net/lo

Nesse caso, o caminho do barramento PCI do meu dispositivo eth0 é /sys/devices/pci0000:00/0000:00:1c.2/0000:07:00.0 . Se você olhar nesse diretório, você encontrará um monte de arquivos que podem ser usados para ajustar o barramento PCI . Nesse caso, estamos interessados no arquivo remove do dispositivo e no arquivo rescan de seu pai.

Primeiro, remova o driver; caso contrário, seu dispositivo desaparecerá por baixo dele. Em seguida, remova o dispositivo do barramento.

# modprobe -r b43 brcmsmac ssb bcma wl
# echo 1 >/sys/devices/pci0000:00/0000:00:1c.2/0000:07:00.0/remove

Em seguida, para adicionar o dispositivo novamente, faça com que o pai do dispositivo faça uma nova verificação.

# echo 1 >/sys/devices/pci0000:00/0000:00:1c.2/rescan

Agora, você pode tentar executar modprobe wl e ver se funciona.

    
por 18.02.2015 / 11:12