カーネルモジュールを含むファイルが呼び出されているようです.o
。少なくとも似たようなチュートリアルを見るとそう思った。これ。しかし、私のDebian squeezeボックスにはファイル名があります.ko
。
.o
ファイルが呼び出されるかどうかは、ディストリビューション(またはそのバージョン)によって異なりますか?.ko
それともほぼ同じですか?
ベストアンサー1
次の答えが見つかりました。ここ:
簡単に言えば、.koファイルはカーネルに必要ないくつかのカーネル自動生成データ構造に関連付けられたオブジェクトファイルです。
.o ファイルはモジュールのオブジェクトファイルです。つまり、cファイルをコンパイルした結果です。次に、カーネルビルドシステムは、カーネルモジュールを記述するいくつかのデータ構造(your_module_kmod.cという名前)を含む別のCファイルを自動的に生成し、このCファイルを別のオブジェクトファイルにコンパイルし、それを使用してオブジェクトファイルをビルドします。 .koファイルです。
カーネルモジュールのロードを担当するカーネルの動的リンカーは、カーネルが.koファイルに入れるkmodオブジェクトからデータ構造を見つけることを期待しています。このオブジェクトがないと、カーネルモジュールをロードできません。