Linux
為什麼 modinfo 說“找不到模組”,而 lsmod 卻聲稱模組已載入?
根據
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
.