Como um driver de Wi-Fi é exposto ao userspace?

3

Estou explorando como o pipeline de wi-fi funciona no Raspberry pi 3 a partir do driver e indo para cima.

Eu identifiquei os seguintes drivers responsáveis por trabalhar com o chip wifi:

$ lsmod
...
brcmfmac              186403  0 
brcmutil                5661  1 brcmfmac
cfg80211              428871  1 brcmfmac

Meus próximos passos foram encontrar um arquivo de dispositivo que teria relação com qualquer um dos drivers, após o qual eu verificaria com lsof o que o aplicativo userspace está mantendo nesse arquivo.

A abordagem falhou quando não encontrei nenhum arquivo de dispositivo relacionado a nenhum dos drivers mencionados acima. Usou o comando abaixo.

/dev $ find . ! -type d -exec sh -c "echo {};  udevadm info -a -n {} | grep DRIVERS" \;

A minha pergunta é, existem outras opções para a interface de drivers de dispositivos no Linux que não passam por arquivos de dispositivos?

    
por TheMeaningfulEngineer 08.05.2017 / 13:27

1 resposta

4

are there other options for interfacing device drivers in Linux that doesn't go through device files?

Sim, os dispositivos de rede não têm um arquivo de dispositivo em / dev ou usam operações de leitura / gravação, pois não reagem apenas em resposta a chamadas do espaço do kernel - eles também reagem em resposta ao tráfego de rede. seu conjunto de operações é diferente. Isso está em contrato para char e bloquear dispositivos, que têm nós de dispositivo de arquivo.

Os dispositivos de rede usam soquetes e buffers de soquete para se comunicar, e as chamadas principais usadas são socket (), bind (), listen (), accept (), read (), write () e close (). Há muitas informações disponíveis sobre eles na web, e o (bastante antigo agora) livro de drivers de dispositivos Linux (LDD3) é uma boa introdução e está disponível online gratuitamente.

    
por 08.05.2017 / 13:42