核心安裝期間出現「找不到模組」錯誤

核心安裝期間出現「找不到模組」錯誤

我有一個關於內核安裝的問題。我下載了新版本的 net-next 核心原始碼並執行了以下步驟:

  • make allyesconfig
  • make -j16
  • make modules_install
  • make install

問題是,當我嘗試執行時make install,出現“找不到模組”錯誤。我在這裡很困惑,因為其他人能夠使用相同的過程來製作內核,而我卻無法做同樣的事情(我們都有 root 權限)。我需要做一些額外的事情來確保這些模組可見/可用嗎?

答案1

make install被呼叫時,它將調用特定於發行版的腳本來構建 initrd.img,該腳本將查找該發行版所需的所有模組,但因為您剛剛將所有模組作為內置 via 編譯到內核中make allyesconfig,所以該腳本查找模組失敗。

我剛剛無法重現您的問題,我記得“找不到模組”只是警告,我總是忽略它,因為 initrd.img 已成功構建並且新內核已成功啟動。如果「找不到模組」失敗,您應該透過以下方式手動將此類模組從內建模組重新配置為真正的可載入模組make menuconfig:「找不到模組」訊息包含模組名稱,使用該名稱進行搜尋Makefiles 找出哪個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

您使用 plain 編譯了內核make,但沒有使用模組。跑步make -j16 all modules

答案3

您必須確保工具鏈了解您正在使用的核心原始碼樹。您必須將環境變數設定KERNEL_TREE為來源所在的目錄。看https://unix.stackexchange.com/a/147700/37538以供參考。

相關內容