カーネルのインストールについて質問があります。 net-next カーネルソースコードの新しいバージョンをダウンロードし、次の手順を実行しました。
make allyesconfig
make -j16
make modules_install
make install
問題は、実行しようとすると、make install
「モジュールが見つかりません」というエラーが発生することです。他の人は同じプロセスを使用してカーネルを作成できますが、私は同じことができないので、ここで混乱しています(私たちは両方ともrootアクセス権を持っています)。これらのモジュールが表示/使用可能であることを確認するために追加で実行する必要がありますか?
答え1
呼び出されたら、make install
ディストリビューションスクリプトを呼び出してinitrd.imgをビルドします。これにより、そのディストリビューションに必要なすべてのモジュールを見つけることができますが、すべてのモジュールを組み込みカーネルにコンパイルしたため、make allyesconfig
スクリプトでモジュールを見つけることができませんでした。
今は問題を再現できません。 「モジュールが見つかりませんでした」が警告だったことを覚えています。 「モジュールが見つかりません」が失敗した場合は、次のように、組み込みモジュールから実際にロード可能なモジュールに手動でモジュールを再構成する必要がありますmake menuconfig
。 「モジュールが見つかりません」というメッセージにはモジュール名が含まれており、それを使用してMakefileを検索して任意のCONFIG_XXXを見つけ、次にCONFIG_XXを変換する必要があります。=m
。
最後に、新しく構築されたカーネルが必要な場合は、展開構成を使用することをお勧めしますmake allyesconfig
。
cd your_kernel_src
cp /boot/your_distribution_config .config
make menuconfig # can exit it directly with nothing changed
make -j16
make modules_install
make install
# update the grub, if it is required for your distribution.
答え2
通常を使用してカーネルをコンパイルしましたが、make
モジュールを使用しませんでした。ランニングmake -j16 all modules
。
答え3
ツールチェーンが使用しているカーネルソースツリーを理解していることを確認する必要があります。環境変数をKERNEL_TREE
ソースのあるディレクトリに設定する必要があります。バラよりhttps://unix.stackexchange.com/a/147700/37538参考用。