Мой дистрибутив Fedora 17 Gnome. Каждый раз, когда я перезагружаю / перезагружаю компьютер, мне нужно запустить эту команду от имени пользователя root:
modprobe rt2800usb
Как я могу сделать это постоянным?
Мой дистрибутив Fedora 17 Gnome. Каждый раз, когда я перезагружаю / перезагружаю компьютер, мне нужно запустить эту команду от имени пользователя root:
modprobe rt2800usb
Как я могу сделать это постоянным?
Ответы:
На любом дистрибутиве 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
и комментировать его / удалить его.
Чтобы загрузить модуль при загрузке, вы создаете файл в /etc/modules-load.d/
; этот файл может иметь любое имя, но должен заканчиваться на .conf
. В случае вашего драйвера Wi-Fi, вы можете, например, создать файл /etc/modules-load.d/rt2800.conf
.
В файле добавьте одну строку с именем модуля, который вы хотите загрузить следующим образом:
rt2800usb
Страница Arch Wiki по модулям ядра содержит больше информации.