2016-04-11 12 views
0

典型的なLinuxデバイス・ドライバーの作成を楽しみにしています。誰も私にどのように典型的なLinuxのデバイスドライバのすべての側面を学ぶことができますか?私がインターネット上で見た例はあまりにも単純です。ユーザー空間からカーネルドライバモジュールへの "hello world" msgを送信し、 "hello"をエコーバックします。私は単純な方法でほぼすべての領域に触れたいと思っています。私の要求を満たすために実際のハードウェアを持っている必要がありますか?システムのメモリがハードウェア周辺機器をシミュレートできず、ハードウェアとして扱い、適切な操作をカバーするカーネルドライバを制御することはできませんか?これの例/指針は?エンド・ツー・エンドのLinuxデバイス・ドライバーの作成

+1

linuxのデバイスドライバの本を読んでください。それは無料で、簡単な例があります。ちょっと古いですが、確かにあなたに行くでしょう。 https://lwn.net/Kernel/LDD3/ – Joe

答えて

0

サンプルドライバは通常、実際のハードウェアを制御しません。 QEMUの答えはここで言及した良い例外です。

これは、どのタイプのドライバに集中したいかによって異なります。カーネルで配布されているほとんどのクラスのドライバには、より簡単なドライバがあります。ドライバ/ XYZディレクトリ内の最小のファイルサイズで

https://github.com/torvalds/linux/blob/c05c2ec96bb8b7310da1055c7b9d786a3ec6dc0c/drivers/block/nbd.c

ルックと、コードが複雑すぎるまで上がる:例えばNBDは、ブロック・サブシステムおよびループデバイスに最適です。

関連する問題