Мой дистрибутив 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 по модулям ядра содержит больше информации.