Comment un pilote wifi est-il exposé à l'espace user?

J'explore comment fonctionne le pipeline wifi sur le Raspberry Pi 3 à partir du pilote et aller vers le haut.

J'ai identifié les pilotes suivants responsables de travailler avec la puce wifi:

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

Mes prochaines étapes étaient de find un file de périphérique qui aurait une relation avec le pilote, après quoi je vérifierais avec lsof quelle application userspace lsof ce file.

L'approche a échoué une fois que j'ai trouvé aucun file de périphérique lié à l'un des pilotes mentionnés ci-dessus. Utilisé la command ci-dessous.

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

Ma question est la suivante: existe-t-il d'autres options pour interfacer les pilotes de périphériques sous Linux qui ne passent pas par les files de périphériques?

existe-t-il d'autres options pour interfacer les pilotes de périphériques sous Linux qui ne passent pas par les files de périphériques?

Oui, les périphériques réseau n'ont pas de file de périphérique dans / dev, ou utilisent les opérations de lecture / écriture, car ils ne réagissent pas uniquement aux appels provenant de l'espace kernel. Ils réagissent aussi en réponse au trafic réseau. les opérations sont différentes. C'est dans le contrat de char et bloquer les périphériques, qui ont des nœuds de périphérique de file.

Les périphériques réseau utilisent des sockets et des tampons de socket pour communiquer et les appels principaux utilisés sont socket (), bind (), listn (), accept (), read (), write () et close (). Il y a beaucoup d'informations disponibles à leur sujet sur le web, et le livre (plutôt vieux maintenant) Linux Device Drivers 3 (LDD3) est une bonne introduction et disponible gratuitement en ligne.