Como verificar se determinado módulo de kernel do driver suporta um determinado dispositivo?

0

Estou tentando encontrar um driver apropriado para um adaptador WiFi USB relatado por lsusb as

0bda:a811 Realtek Semiconductor Corp.

Em WikiDevi , é descrito como "Realtek RTL8811AU Sem Fio 802.11ac 1x1 USB 2.0".

Existem vários repositórios que parecem fornecer drivers para RTL8811AU, por exemplo, este (baseado em este um que alega apoiar rtl8811AU). No entanto, gostaria de verificar o módulo compilado se ele suporta o dispositivo antes de tentar instalá-lo no kernel (é o sistema de outra pessoa com o qual estou tentando mexer).

A partir da pesquisa online concluí que deveria ser suficiente que a saída do comando modinfo para o módulo do driver retornasse uma linha do tipo

alias:          usb:v0BDApA811d*dc*dsc*dp*ic*isc*ip*in*

que conteria o ID de fornecedor correto ( 0BDA ) e o ID de produto correto ( A811 ).

Qual é a confiabilidade desse método de verificação da compatibilidade de drivers com dispositivos? É assim que o kernel seleciona o driver?

A correspondência exata de ambos os fornecedores e códigos de dispositivo é necessária? Por exemplo, tentei instalar primeiro rtl8812au-dkms package com apt-get (no Ubuntu). No entanto, a saída de modinfo 8812au | grep A811 foi

alias:          usb:v7392pA811d*dc*dsc*dp*ic*isc*ip*in*

- o ID do dispositivo está ok, mas o ID do fornecedor não corresponde. Isso significa que esse driver não funcionará com este dispositivo?

    
por Alexey 17.02.2018 / 19:06

1 resposta

1

Esse método é confiável, é assim que o kernel (ou udev e kmod ) escolhe um módulo para carregar: quando um novo dispositivo aparece (inclusive no momento da inicialização, quando todos os dispositivos são sondados), ele procura um módulo com um modalias correspondente ao descritor do dispositivo.

Se modinfo listar um alias para um módulo que corresponda ao seu dispositivo, isso significa que o módulo afirma oferecer suporte ao dispositivo. No seu caso, o módulo suporta dispositivos correspondentes 7392: A811 (e talvez outros que não correspondem ao seu grep ), mas não o seu dispositivo, por isso parece rtl8812au-dkms não será de muita ajuda (pelo menos em sua atual estado) ... O registro USB do Linux está atualmente off-line, então não posso mais checar. Tenha em atenção que os alias são um primeiro nível de filtragem e não garantem absolutamente o suporte - os módulos utilizam as próprias funções de análise quando são inicializados e podem utilizar outras informações. Veja esta questão para mais detalhes, e a documentação do kernel para obter informações sobre tudo o que pode ser usado em um alias.

(A similaridade nos identificadores sugere que o driver também poderia suportar o seu dispositivo, então você pode tentar adicionar os ids ao módulo para ver o que acontece.)

    
por 17.02.2018 / 19:28