Em primeiro lugar, usar setpci
para definir diretamente os registros e estados de hardware pode ser arriscado apenas por causa do acesso de hardware de nível muito baixo, a menos que você saiba que foi tentado antes com a configuração de brilho mencionada.
Em segundo lugar, como não conheço seu modelo de laptop e, portanto, suas especificações técnicas de componentes, este post é apenas uma introdução sobre como encontrar informações com lspci
e setpci
, que você pode adaptar às suas necessidades.
Em terceiro lugar, todos os comandos são bons para serem executados, pois eles simplesmente consultam o dispositivo; somente setpci
executado com o sudo alterará realmente a configuração de um dispositivo.
(Se você quiser apenas soltar a conexão em vez de realmente desligar o dispositivo de hardware, você pode selecionar o seu dispositivo wlan e executar sudo iwconfig wlan0 down
. Isso é muito mais fácil do que tentar habilitar / desabilitar o dispositivo de hardware com setpci
.)
Primeiro, execute lspci
para encontrar os endereços de todo o seu hardware; por exemplo, meu controlador de ethernet é
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Agora use o endereço / domínio do barramento ( 02:00:0
) e execute lspci
novamente com
sudo lspci -s 02:00.0 -nnvvxxx
e você obterá a leitura completa das informações disponíveis e um dump hexadecimal do espaço de configuração PCI:
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
Subsystem: Billionton Systems Inc LNR-100 Family 10/100 Base-TX Ethernet [14cb:0200]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (8000ns min, 16000ns max)
Interrupt: pin A routed to IRQ 17
Region 0: I/O ports at 2400 [size=256]
Region 1: Memory at 44000000 (32-bit, non-prefetchable) [size=512]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: 8139too
Kernel modules: 8139too, 8139cp
00: ec 10 39 81 07 00 90 02 10 00 00 02 00 40 00 00
10: 01 24 00 00 00 00 00 44 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 02 01 00 00 cb 14 00 02
30: 00 00 00 00 50 00 00 00 00 00 00 00 11 01 20 40
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
O lixo hexadecimal continua, mas eu o reduzi; você precisará de especificações técnicas adicionais do seu dispositivo para que esses valores tenham algum significado.
Agora, com setpci --dumpregs
, você pode obter informações sobre os registros gerais de hardware e usar setpci
para consultar o endereço do dispositivo ( 02:00.0
) com, por exemplo, um desses registros:
setpci -s 02:00.0 STATUS
para retornar um valor. Isso pode ser repetido com os outros registros na lista, mas, novamente, você precisa consultar informações técnicas detalhadas em seus dispositivos ao mesmo tempo.
Em resumo, você precisará consultar as especificações técnicas da sua placa WLAN (e possivelmente as especificações PCI) para encontrar e escolher o registro correto e, em seguida, consultar os dados lspci
e setpci
para que você pode preparar a configuração do comando sudo setpci
que ativa / desativa o cartão. Não é possível encontrar o registro correto sem especificações detalhadas, e muitas vezes é difícil encontrar o correto de qualquer maneira. No entanto, espero que esta breve discussão possa ajudá-lo a tomar a direção certa.