私はカーネルやカーネルモジュールなどを再構築するのが初めてなので、これが悪い質問であればお詫び申し上げます。
私はCentos 6.8、2.6.32.642.el6.x86_64を実行しています。私はデバイスドライバなどを理解しようとしており、参照テキストはカーネルの再構築から始まります。これに対する指示が少し古いようで、インターネット検索もしてみました。
カーネルを再構築し、main.cを少し変更した後、結果bzImageを起動ディレクトリに移動しました。
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.32-custom.el6.x86_64
その後、既存のエントリと同じですが、カーネル名の異なるエントリをetc/grub.confに追加しました。
その後、再起動し、再起動時に/lib/modules/2.6.32でmodule.depが見つからないというカーネルパニックが発生しました。
しかし、私が読んだすべての内容は、モジュールが/lib/modules/2.6.32-custom.el6.x86_64にあることを示します。
そのため、これを試すために/lib/modules/2.6.32-642.el6.x86_64を/lib/modules/2.6.32-custom.el6.x86_64にソフトリンクしました。
ln -s /lib/modules/2.6.32-642.el6.x86_64 /lib/modules/2.6.32-642.el6.x86_64
しかし、予想通り、カーネル(カーネル?)が/lib/modules/2.6.32-custom.el6_x86_64の代わりに/lib/modules/2.6.32/を探していたので、エラーは修正されませんでした。
私の質問は、カーネルがモジュールをどこで見つけるべきか、そして/またはモジュールを変更する方法、そして/または探している場所を見るためにどのドライブが必要ですか?
ベストアンサー1
カーネルビルドの標準部分であるVERSIONとEXTRAVERSIONを一緒にリンクして、カーネルソースツリーのルートにあるMakefileからバージョンを取得します。これは、モジュールを見つけるために使用されるサブディレクトリ名になります。 Red HatカーネルRPMは、ビルドプロセス中に正しいEXTRAVERSIONをファイルに入れるrpmbuildプログラムを使用して構築されます。このようにカスタムカーネルを構築したいかもしれません。それ以外の場合は、Makefileを直接編集し、すべてのパッチを手動で適用する必要があります。