web-dev-qa-db-fra.com

SystemD: automatiser la commande ModProbe au démarrage

Ma distribution est Fedora 17 Gnome. Chaque fois que je redémarre/redémarre mon ordinateur, je dois exécuter cette commande en tant que root:

modprobe rt2800usb

Comment puis-je le rendre permanent?

24

Sur n'importe quelle distribution en utilisant systemd Vous pouvez charger automatiquement le module via modules-load.d :

  • créez le fichier de configuration:

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

  • ouvrez-le et modifiez comme ceci (ajouter le nom du module):

    rt2800usb

  • la prochaine fois que vous redémarrez le module doit être automatiquement chargé.


Dépannage:

Vérifiez si systemd service chargé le module:

systemctl status systemd-modules-load.service

La sortie devrait ressembler à ceci:

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)

La dernière ligne contient le PID (ID de processus) et le code de sortie. status=0/SUCCESS signifie que le module a été inséré avec succès, confirmé par:

journalctl -b _PID=260

sortie étant:

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

En cas d'échec, systemctl Sortie ressemble à ceci:

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)

avec journalctl -b Reporting:

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

Lorsque le code de sortie est 0/SUCCESS Cela signifie que votre module a été inséré avec succès; fonctionnement

lsmod | grep rt2800

devrait confirmer que:

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

Si lsmod sortie ne confirme pas (malgré le code de sortie de service étant 0/SUCCESS) Cela signifie que quelque chose a supprimé le module après avoir été chargé par modules-load.service. Une cause possible est une autre *.conf Fichier qui a surveillé le module. Recherchez une ligne comme:

blacklist rt2800usb

dans /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.conf ou /run/modprobe.d/*.conf et commencez-le/supprimez-le.

38
don_crissti

Pour charger un module au démarrage, vous créez un fichier dans /etc/modules-load.d/; Ce fichier peut avoir n'importe quel nom, mais doit se terminer par .conf. Dans le cas de votre pilote WiFi, vous pouvez par exemple créer le fichier /etc/modules-load.d/rt2800.conf.

Dans le fichier, ajoutez une seule ligne avec le nom du module que vous souhaitez charger de la sorte:

rt2800usb

La page Wiki Arch sur - modules de noya a plus d'informations.

5
jasonwryan