Я ищу несколько модулей ядра для загрузки i2c-dev
и i2c-bcm2708
. Но modprobe
команда возвращает:
sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
Как я могу перечислить все доступные модули в системе? В каком каталоге они находятся?
Ответы:
По умолчанию
modprobe
загружает модули из подкаталогов, расположенных в/lib/modules/$(uname -r)
каталоге. Обычно все файлы имеют расширение.ko
, поэтому вы можете перечислить их с помощьюили с учетом сжатых файлов:
Однако для успешной загрузки модуля
modprobe
нужны его зависимости, указанные в файле/lib/modules/$(uname -r)/modules.dep
(и соответствующая двоичная версияmodules.dep.bin
). Если какой-либо модуль присутствует в системе, но отсутствует в списке, вы должны выполнить команду,depmod
которая сгенерирует такие зависимости и автоматически подключит ваш модуль кmodules.dep
иmodules.dep.bin
.Кроме того, если модуль успешно загружен, он будет указан в файле
/proc/modules
(также доступен через командуlsmod
).источник
find /lib/modules/$(uname -r) -type f -name *.ko*
.gz
*.ko*
если у вас в текущем каталоге есть файл, соответствующий ему. лучше избегать его между одинарными кавычками:find /lib/modules/$(uname -r) -type f -name '*.ko*'
Введите
modprobe
и нажмите вкладку, список автозаполнения должен содержать все загружаемые модулиисточник
Существует
lsmod
командаkmod
пакета в Arch Linux , что перечислено и показывает статус модулей ядра Linux , который содержит другие полезные команды , такие какmodinfo
,rmmod
modprobe
тоже.Для л ист все двоичные файлы , предоставляемые пакетом вы можете ввести:
, И вы также можете проверить на O wner пакет двоичного с
pacman -Qo lsmod
.Q
переключатель в д uery локально установленные пакеты ( в отличие отS
в ы Синхронизировать, то есть. , чтобы проверить удаленно).источник
lsmod
только показывает уже загруженные модули. У автора этого потока возникла проблема с загрузкой модуля, которого не было на карте загружаемых модулей ядра. Кроме того, это решение применимо только к archlinux. Это может быть не распространение автора и не может решить проблему для других.lsmod
также доступен в Ubuntu, по крайней мере. Однако я согласен, что это не решает проблему ОП.Я предпочитаю использовать
depmod
. С помощью команды:depmod -av|grep MOD_NAME
ваша система сгенерирует файлы modules.dep / map и выполнит через нее grep. Этот-v
параметр важен для многословности и-a
для обеспечения того, чтобы все возможные модули из/lib/modules/
использовались для файла modules.dep.Таким образом, можно убедиться, что запрашиваемый модуль ядра сопоставлен с ядром как загружаемый. Когда модуль ядра желаний не указан в выводе, вы знаете, что ядро его не найдет.
источник