Linux

為什麼 modinfo 說“找不到模組”,而 lsmod 卻聲稱模組已載入?

  • January 19, 2022

根據lsmod該命令的手冊頁顯示“目前載入了哪些核心模組”。

我編寫了一個腳本,用於modinfo顯示實際使用的核心對象 (.ko) 文件:

#!/bin/sh
for i in `lsmod | awk '{print $1}' | sed -n '1!p'`; do
echo "###############################$i###############################"
echo ""
modinfo $i
echo ""
echo ""
done

現在我發現modinfo nvidia顯示以下輸出:

ERROR: modinfo: could not find module nvidia

你們對此有什麼解釋嗎?

您的nvidia模組已完美載入並正常工作。問題在於modinfo

modinfo通過讀取/lib/modules/$(uname -r)/modules.*文件來獲取已知模組的列表,這些文件通常使用depmod.

如果depmod -a安裝nvidia模組後沒有執行,modinfo則不知道它。這不會阻止任何人載入模組,insmod並且lsmod在載入時會很好地顯示它。

如果您最近解除安裝了您的 nvidia 驅動程序,您可能已經從系統中解除安裝了該模組,但它仍然在您的 initrd 中。您可以檢查哪些在您的 initrd 中lsinitrd。或者只是嘗試重新安裝核心,看看它是否不再出現在lsmod.

引用自:https://unix.stackexchange.com/questions/70990