Як перелічити всі завантажувані модулі ядра?


65

Я шукаю кілька модулів ядра для завантаження i2c-devі i2c-bcm2708. Але modprobeкоманда повертає:

sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep

Як я можу перерахувати всі наявні модулі в системі? У якому каталозі вони розташовані?


1
Ядро не компілювало цей i2c-dev. Ви не знайшли цей модуль. Розташовані модулі ядра / lib / module / 'kernel-version' / драйвери. Коли ви шукаєте драйвери Linux.
сюрприз

Ви можете перевірити / boot / config-'kernel-version 'та прочитати цей конфігураційний файл. Ви повинні знати, які модулі Linux завантажуються чи модулятори, або під час компіляції ядра не вмикайте модуль i2c-dev.
сюрприз

Відповіді:


76
  • За замовчуванням modprobeзавантажує модулі з підкаталогів, що знаходяться в /lib/modules/$(uname -r)каталозі. Зазвичай усі файли мають розширення .ko, тому ви можете перелічити їх

    find /lib/modules/$(uname -r) -type f -name '*.ko'
    

    або, враховуючи стислі файли:

    find /lib/modules/$(uname -r) -type f -name '*.ko*'
    
  • Однак для завантаження модуля успішно modprobeпотрібні його залежності, перелічені у файлі /lib/modules/$(uname -r)/modules.dep(та відповідної бінарній версії modules.dep.bin). Якщо якийсь модуль присутній у системі, але його немає у списку, то слід запустити команду, depmodяка генерує такі залежності і автоматично включить ваш модуль до modules.depта modules.dep.bin.

  • Крім того, якщо модуль буде успішно завантажений, він буде вказаний у файлі /proc/modules(також доступний через команду lsmod).


3
Файли Redhat 7 модулів стискаються у .xz (не впевнений, що це через версію ядра чи версію ОС .. якщо хтось може мені це уточнити?), Тож я думаю, ви можете їх не знайти за допомогою команди пошуку jimmij. Використовуйте натомість find /lib/modules/$(uname -r) -type f -name *.ko*
Pozinux

1
@Pozinux виявив те саме, що і в Arch linux о 13.13.10, що має закінчення.gz
Йоганн

1
@posinux: будьте обережні: оболонка може розширити ваш файл, *.ko*якщо у вашому поточному редакторі є якийсь файл, що відповідає йому. краще уникнути цього між одними цитатами: find /lib/modules/$(uname -r) -type f -name '*.ko*'
Олів'є Дулак

10

Введіть modprobeта натисніть вкладку, список автозаповнення повинен містити всі завантажувані модулі


11
вона не працює для деяких систем
avtomaton

5

Існує lsmodкоманда kmodпакета в Arch Linux , що перераховано і показує статус модулів ядра Linux , який містить інші корисні команди , такі як modinfo, rmmod modprobeтеж.

Для л ист все виконавчі файли , що надаються пакетом ви можете ввести:

pacman -Ql kmod | grep /bin/ --color=always

, І ви також можете перевірити на O wner пакет довічного з pacman -Qo lsmod.


Qперемикач в д uery локально встановлені пакети ( в відміну від Sв и Синхронізувати, тобто. , щоб перевірити віддалено).


2
Там , де це важливо підкреслити , що lsmodтільки показує вже завантажені модулі. У автора цього потоку виникла проблема з завантаженням модуля, який не знаходився на карті завантажуваних модулів ядра. Крім того, це рішення стосується лише архіванукса. Що може бути не розповсюдженням автора та не може вирішити проблему для інших.
Акендо

@Akendo lsmodтакож доступний принаймні на Ubuntu. Однак я згоден, це не вирішує проблему ОП.
Мелебій

2

Я вважаю за краще використовувати depmod. За допомогою команди: depmod -av|grep MOD_NAMEваша система буде генерувати файли module.dep / map та проглядати його. -vПараметр важливий для багатослів'я і -aзабезпечити , щоб всі можливі модулі з /lib/modules/використовуються для файлу modules.dep.

Таким чином можна переконатися, що запитуваний модуль ядра відображається в ядро ​​як завантажуване. Коли модуль ядра бажання не вказаний у висновку, ви знаєте, що ядро ​​його не знайде.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.