Почему modinfo говорит «не удалось найти модуль», а lsmod утверждает, что модуль загружен?


9

Согласно man-странице 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

Ребята, у вас есть объяснение этому?

Ответы:


10

Ваш nvidiaмодуль отлично загружен и работает. Проблема заключается в modinfo.

modinfoполучить список известных модулей, прочитав /lib/modules/$(uname -r)/modules.*файлы, которые обычно обновляются с помощью depmod.

Если depmod -aпосле установки nvidiaмодуля не был запущен , то modinfoне знает об этом. Это не мешает кому-либо загружать модуль insmodи lsmodпокажет его нормально, если он загружен.


Я запустил sudo depmod -a, но modinfo все еще не знает о модуле nvidia, но lsmod показывает это. Как это может быть?
Хакаишин

@Hakaishin Я на Ubuntu 16.04 с установленными драйверами nvidia-410, и, похоже, имя моего модуля ядра nvidia_410. Так что попробуйте modinfo nvidia_410или подобное.
cheshirekow

0

Если вы недавно удалили драйвер nvidia, возможно, вы удалили модуль из вашей системы, но он все еще находится в вашем initrd. Вы можете проверить, какие в вашем initrd с lsinitrd. Или просто попробуйте переустановить ядро, чтобы увидеть, больше ли оно не отображается в lsmod.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.