systemd-modules-load не может найти модули

Sep 01 2020

Учитывая модуль ядра my-module.ko, я предпринял следующие шаги, чтобы попытаться автоматически загрузить модуль при загрузке:

cp my-module.ko /lib/modules/$(uname -r)/my-module.ko echo my-module >> /etc/modules-load.d/my-module.conf # alt: echo my-module >> /etc/modules echo my-module.ko: >> /lib/modules/$(uname -r)/modules.dep
# alt: depmod
systemctl restart systemd-modules-load
# alt: reboot the machine

Независимо от того, какой вариант я пробую, ошибка всегда одна и та же:

● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since <date>; 9s ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 318 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 318 (code=exited, status=1/FAILURE)

Feb 14 03:19:58 localhost systemd[1]: Starting Load Kernel Modules...
Feb 14 03:19:58 localhost systemd-modules-load[318]: Failed to find module 'my-module'
Feb 14 03:19:58 localhost systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 03:19:58 localhost systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
Feb 14 03:19:58 localhost systemd[1]: Failed to start Load Kernel Modules.

В частности « Не удалось найти модуль ». Я могу работать, modprobe my-moduleи модуль обнаруживается и загружается нормально. Я пропустил исходники для systemd и libkmod, и каталог модулей по умолчанию такой, /lib/modules/$(uname -r)как ожидалось. Кроме того , название сравнивается с различными файлами modules.dep, modules.aliasи т.д. , поэтому обслуживание технически должен быть в состоянии найти его.

Что еще я могу попытаться заставить это работать? Я бы предпочел использовать службу systemd-modules-load, а не писать свою собственную службу, которая делает практически то же самое.

Системные характеристики: ARMv7, Debian, ядро ​​Linux v4.9.37, Systemd v241-7 ~ deb10u2; Примечание: depmod - это ссылка на busybox

Ответы

TekuConcept Sep 02 2020 at 23:13

При более внимательном рассмотрении из libkmod я обнаружил, что modules.dep.binон использовался в качестве исходного файла ссылки, а не приложения modules.dep.

ls -al /sbin | grep depmod уступил depmod -> /bin/busybox

Изменения:

rm /sbin/depmod
apt install kmod
ln -s /usr/bin/kmod /sbin/depmod
depmod

Теперь все прекрасно работает! Оказалось, что версия depmod для busybox не обновляла module.dep.binфайл должным образом, поэтому systemd « Не удалось найти модуль ».