私はドライバーから始めて上向きに動作するRaspberry pi 3でWi-Fiパイプがどのように機能するかを探っています。
Wi-Fiチップの使用を担当する次のドライバを確認しました。
$ lsmod
...
brcmfmac 186403 0
brcmutil 5661 1 brcmfmac
cfg80211 428871 1 brcmfmac
次のステップは、ドライバに関連するデバイスファイルを見つけて、lsof
どのユーザースペースアプリケーションがファイルを保持しているかを確認することです。
上記のドライバに関連するデバイスファイルがないことを発見した場合、方法は失敗しました。次のコマンドを使用します。
/dev $ find . ! -type d -exec sh -c "echo {}; udevadm info -a -n {} | grep DRIVERS" \;
私の質問は、デバイスファイルを介さずにLinuxでデバイスドライバを接続できる他のオプションはありますか?
答え1
デバイスファイルを介さずにデバイスドライバを接続するためのLinuxの他のオプションはありますか?
はい、ネットワークデバイスはカーネルスペースの呼び出しにのみ応答するのではなく、ネットワークトラフィックにも応答するため、ワーキングセットが異なるため、/devにデバイスファイルがないか、ファイルの読み取り/書き込み操作を使用しません。これには、ファイルデバイスノードを持つ文字とブロックデバイスへの接続があります。
ネットワークデバイスはソケットとソケットバッファを使用して通信します。使用される主な呼び出しは、ソケット()、バインディング()、リスニング()、受け入れ()、読み取り()、書き込み()、および閉じる()です。オンラインにはこれに関する豊富な情報があり(今はかなり古い)、Linux Device Drivers 3(LDD3)の本は良い紹介であり、オンラインで無料で利用できます。