私はUbuntuでカーネルモジュールをコンパイルしようとしていますカーネル2.6.35-22で10.04になり、proc_root_driverが見つからないと不平を言っています。私はいくつかの検索を行いましたが、これを定義するはずですが、私のバージョンのlinux-headersでは定義されていません。別のグローバル変数がありますか?カーネルモジュールをコンパイルできるようにどこかで定義しますか?
回答:
回答№1は2proc_root_driver
以前は proc_dir_entry
作成者: proc_mkdir("driver", NULL);
。このコミットで2008年4月に削除されました。 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=928b4d8c8963e75bdb133f562b03b07f9aa4844a
また、カーネルAPIの一部であると考えられていたとは思っていませんが、AFAIKは内部的なものでした。
/ procの下に絶対パスを使用するだけです。つまり、次のようなコードを置き換えます
proc_array = proc_mkdir("drvnamehere", proc_root_driver);
見えるコードで
proc_array = proc_mkdir("driver/drvnamehere", NULL);
あなたは大丈夫でしょう。