典型的なLinuxデバイス・ドライバーの作成を楽しみにしています。誰も私にどのように典型的なLinuxのデバイスドライバのすべての側面を学ぶことができますか?私がインターネット上で見た例はあまりにも単純です。ユーザー空間からカーネルドライバモジュールへの "hello world" msgを送信し、 "hello"をエコーバックします。私は単純な方法でほぼすべての領域に触れたいと思っています。私の要求を満たすために実際のハードウェアを持っている必要がありますか?システムのメモリがハードウェア周辺機器をシミュレートできず、ハードウェアとして扱い、適切な操作をカバーするカーネルドライバを制御することはできませんか?これの例/指針は?エンド・ツー・エンドのLinuxデバイス・ドライバーの作成
0
A
答えて
2
次のネットワークドライバの例を見てください。開発とテストにQEMUを使用します。
http://www.codeproject.com/Articles/1087177/Linux-Ethernet-Driver-using-Qemu
0
サンプルドライバは通常、実際のハードウェアを制御しません。 QEMUの答えはここで言及した良い例外です。
これは、どのタイプのドライバに集中したいかによって異なります。カーネルで配布されているほとんどのクラスのドライバには、より簡単なドライバがあります。ドライバ/ XYZディレクトリ内の最小のファイルサイズで
https://github.com/torvalds/linux/blob/c05c2ec96bb8b7310da1055c7b9d786a3ec6dc0c/drivers/block/nbd.c
ルックと、コードが複雑すぎるまで上がる:例えばNBDは、ブロック・サブシステムおよびループデバイスに最適です。
関連する問題
- 1. Cのクロスプラットフォームを探して、エンド・ツー・エンドの例++
- 2. AWSクラシックロードバランサエンド・ツー・エンドの暗号化
- 3. StorageFileをストリングにエンド・ツー・エンドで読み込む最も簡単な方法は?
- 4. APEXのエンド・ユーザー編集ページの作成
- 5. エンド・ツー・エンド・テストの模擬インジェクター/期待設定インターフェースの名前は何ですか?
- 6. エリプサイズマーキー/エンド
- 7. アプリケーションのエンドASP.net
- 8. PHPエンド接続
- 9. ライム調査 - エンドURL
- 10. MySQL REGEXPフィールドのマッチ/エンド
- 11. アライン・アイテムフレックス・エンド反応ネイティブ
- 12. PHP「予期しない$エンド」
- 13. JAVAエンド複数行入力
- 14. がscalazでscalazエンド機能
- 15. HAML:私のプロジェクトでは、エンド・オブ・入力
- 16. SonarQube for MSBuild - エンド解析の失敗
- 17. このエラーを取得、エンドSEND_PAYMENTは、ANDROID_569059
- 18. データは、多くのエンド協会
- 19. kshのホーム、エンド、削除、ページアップ、ページャダウン
- 20. 文字配列の初期化:エンド
- 21. 構文エラー、予期しない$エンド、keyword_end
- 22. healthendエンドでmanagement.security.rolesが機能しない
- 23. SSRS DateAdd関数(前YRエンドは、
- 24. PLS-00103: "エンド・オブ・ファイル" このPL/SQL文の次
- 25. 絞り込みElseステートメントの場合 - または - エンド - Wordpressの/ PHP
- 26. 得るjsoupとのリンクへのリンクをリダイレクト使用トークン=エンド
- 27. エンドの代わりにCRCの中間ストリーム
- 28. 春のWebflow - エンドの流れと実行スナップショット
- 29. エンド編集のさまざまな原因による異なる動作
- 30. はシェープファイルからシェープ RX = roi.X(1:エンド-1)からのNaN末尾
linuxのデバイスドライバの本を読んでください。それは無料で、簡単な例があります。ちょっと古いですが、確かにあなたに行くでしょう。 https://lwn.net/Kernel/LDD3/ – Joe