systemd: автоматизируйте команду modprobe во время начальной загрузки

Мог попробовать usbmount. Этим вопросом является, вероятно, простофиля. Прочитайте инструкции там.

22
14.03.2018, 02:26
2 ответа

На любом использовании дистрибутива systemd можно автоматически загрузить модуль через modules-load.d:

  • создайте файл конфигурации:

    /etc/modules-load.d/rt2800usb.conf

  • откройте его, и редактирование как это (добавьте имя модуля):

    rt2800usb

  • в следующий раз Вы перезагружаете модуль, должен быть автоматически загружен


Поиск и устранение неисправностей:

Проверьте если systemd сервис загрузил модуль:

systemctl status systemd-modules-load.service

Вывод должен быть похожим на это:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

Последняя строка содержит PID (обработайте идентификатор), и код выхода. status=0/SUCCESS означает, что модуль был успешно вставлен, подтвержден:

journalctl -b _PID=260

вывод быть:

Apr 03 22:50:57 mxhst systemd-modules-load[260]: Inserted module 'rt2800usb'

В случае отказа, systemctl вывод похож на это:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: failed (Result: exit-code) since Wed, 03 Apr 2013 22:50:59 +0000; 43s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

с journalctl -b создание отчетов:

Apr 03 22:50:59 mxhst systemd-modules-load[260]: Failed to find module 'fakert2800usb'

Когда код выхода 0/SUCCESS это означает, что Ваш модуль был успешно вставлен; выполнение

lsmod | grep rt2800

должен подтвердить что:

rt2800usb              26854  0 
rt2x00usb              19757  1 rt2800usb
rt2800lib              64762  1 rt2800usb
rt2x00lib              66520  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              578735  3 rt2x00lib,rt2x00usb,rt2800lib

Если lsmod вывод не подтверждает (несмотря на сервис код выхода то, чтобы быть 0/SUCCESS) это означает, что что-то удалило модуль, будучи загруженным modules-load.service. Одна возможная причина - другой *.conf файл, который поместил в черный список модуль. Ищите строку как:

blacklist rt2800usb

в /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.conf или /run/modprobe.d/*.conf и прокомментируйте, это / удаляет его.

36
27.01.2020, 19:42
  • 1
    я сделал это, но модуль не загружался на перезагрузке. –  somethingSomething 04.04.2013, 00:45
  • 2
    Это, потому что корень является владельцем файла? –  somethingSomething 04.04.2013, 00:47
  • 3
    Когда я перезагружаю, я все еще должен сделать команду modprbe. Разве это не перечислено, потому что список - после того, как я выполнил команду modprobe? –  somethingSomething 04.04.2013, 01:49

Для загрузки модуля на начальной загрузке Вы создаете файл в /etc/modules-load.d/; этот файл может иметь любое имя, но должен закончиться в .conf. В случае Вашего драйвера Wi-Fi Вы могли, например, создать файл /etc/modules-load.d/rt2800.conf.

В файле добавьте одну строку с названием модуля, как который Вы хотите загрузиться так:

rt2800usb

Страница Arch Wiki на модулях Ядра имеет больше информации.

5
27.01.2020, 19:42

Теги

Похожие вопросы