私はカーネルプログラミングの初心者で、何かに行き詰まっているので、助けていただければ幸いです。以前に同様の質問があった場合は、事前に謝罪します。関連する投稿が見つかりませんでした。また、この分野の経験のない人が理解できるほど簡単な説明をウェブ上で見つけることができました。
独自のバージョンの ext2 を試してみたい。kernel.org からソース ファイルを取得し、適切な変更を加えました。私が考えていたことを確認するためだけに、特別なことは何もありません。
今、私はそれを私のLinuxカーネルに挿入したいと思っています(重要な場合はubuntu 2.6.31-14-generic-pae)。これどうやってするの?
私の(明らかに素朴な)最初の考えは、それに付随するメイクファイルを(手動でさまざまなフラグを設定した後、必要に応じて obj-m/obj-y があるように)単純に使用し、カーネルモジュールとしてコンパイルすることでした。
ただし、マクロの再定義、関数の暗黙的な宣言などについて、コンパイル時にエラーが発生し続けます。たとえば、
ext2.h:181:1: warning: "ext2_find_first_zero_bit" redefined
balloc.c:574: error: implicit declaration of function dquot_free_block_nodirty
明らかに、これは進むべき道ではありません。最悪のシナリオは、カーネル全体を (元のコードではなく変更した ext2 コードで) 再度コンパイルして、独自の ext2 で関連するライブラリを作成し、新しいイメージから再起動することだと思います。これが最善のアプローチであるとは信じがたいです。
新しいファイル システムをカーネル モジュールとして挿入することは可能ですか?
Myabe 変更した ext2 コードを /usr/src に配置し、現在の ext2 コードを含む関連ライブラリのみを何らかの方法でコンパイルする必要がありますか?
とにかく、私が何をすべきかについての助けをいただければ幸いです。
ありがとうございました