■デバイス操作関数カーネルはregister_chrdevに渡すfile_operations構造体に記された関数を通してデバイスを操作します。デバイスドライバを作るには、そのうち最低限以下を実装しなければなりません。openreleasereadかwriteここを見てプロトタイプの通りに実装してください。)のinodeはとりあえず無視していいみたいで、filpのfilp->private_dataに自分でkmallocを使って確保したデータを渡すことで、このデータも使ってwriteやreadが制御できます。-D__KERNEL__”を付ければ普通にコンパイルできるよ!って話もあったんですが出来ませんでした。-Iとかも色々いじったりもしたんですが通りません。いうわけで、こちらのサイトのMakefileを流用しましょう。ファイル名はMakefile(先頭大文字)じゃないとエラーが出るみたいです。今回は、このMakefileにこんな行も追加してインストール・アンインストールもできるようになっています。/dev/louise_lovemknodで特殊ファイルを作成&0x0721というメジャー番号を使って作成しています。cはキャラクタデバイスで、0x0721はメジャー番号で、register_chrdevしたときの数字とあわせてください。0(マイナー番号)はちょっとよくわかりまへん...。666はただたんに、誰でも読み書きできるようにしているだけです。特殊ファイルを作ったあとにinsmodして作ったカーネルモジュールを読み込んで、/dev/louise_loveの制御を作ったドライバに任せています。することでドライバをアンロード、スペシャルファイルは普通にrmdirで削除できます。今回分かったんですが、bashでのif文はこういう構造なんですね。else~コマンドで一文fiいやーこれに気づかずに結構時間が掛かりました...。thenとコマンド1のあいだ、elseとコマンド2のあいだに;をいれるとエラーがでちゃうんだもん。デバイスドライバ)Linuxデバイスドライバ開発に関する参考情報デバイスドライバのインターフェーイスは割と変わるみたいなので、他の記事を参考にする場合はバージョン情報や書かれた月日は参考にしたほうがいいです。ちなみにこの記事はカーネル2.6.32を対象に書いています。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。それ故に...悔いの残らぬよう、やり遂げなさい。