Tại sao modinfo nói rằng không thể tìm thấy mô-đun, nhưng lsmod tuyên bố mô-đun được tải?


9

Theo trang man của lsmodlệnh cho thấy, mô-đun hạt nhân nào hiện đang được tải.

Tôi đã viết một tập lệnh sử dụng modinfođể hiển thị các tệp đối tượng kernel (.ko) thực sự đang sử dụng:

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

Bây giờ tôi phát hiện ra rằng modinfo nvidiacho thấy đầu ra sau đây:

ERROR: modinfo: could not find module nvidia

Các bạn có lời giải thích nào cho việc này không?

Câu trả lời:


10

nvidiaMô-đun của bạn được tải hoàn hảo và làm việc. Vấn đề nằm ở chỗ modinfo.

modinfotìm nạp danh sách các mô-đun đã biết bằng cách đọc các /lib/modules/$(uname -r)/modules.*tệp thường được cập nhật depmod.

Nếu depmod -akhông được chạy sau khi cài đặt nvidiamô-đun, thì modinfokhông biết về nó. Điều này không ngăn cản bất kỳ ai tải mô-đun với insmodlsmodsẽ hiển thị nó tốt nếu được tải.


Tôi đã chạy sudo depmod -a nhưng modinfo vẫn không biết về mô-đun nvidia, nhưng lsmod cho thấy nó. Làm sao có thể?
Hakaishin

@Hakaishin Tôi đang trên Ubuntu 16.04 với trình điều khiển nvidia-410 được cài đặt và nó xuất hiện tên của mô-đun hạt nhân của tôi nvidia_410. Vì vậy, hãy thử modinfo nvidia_410hoặc tương tự.
cheshirekow

0

Nếu gần đây bạn đã gỡ cài đặt trình điều khiển nvidia của mình, bạn có thể đã hủy mô-đun khỏi hệ thống của mình, nhưng nó vẫn còn trong initrd của bạn. Bạn có thể kiểm tra cái nào trong initrd của bạn với lsinitrd. Hoặc chỉ cần thử cài đặt lại kernel của bạn để xem nó không còn xuất hiện nữa lsmod.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.