systemd: automatiser la commande modprobe au démarrage


20

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?


1
Salut, merci pour ta première question. Ce serait bien si vous pouviez mentionner à quelle distribution Linux vous faites référence :)
Bonsi Scott

1
@BonsiScott La distribution devrait probablement être ajoutée au texte de la question également, mais la balise indique Fedora.
depquid

(Aussi, j'ai supprimé ma propre réponse car elle n'est pas spécifique à Fedora)
Bonsi Scott

@BonsiScott, votre réponse pourrait bien être utile aux autres ...
vonbrand

Réponses:


34

Sur n'importe quelle distribution, systemdvous pouvez charger automatiquement le module via modules-load.d:

  • créez le fichier de configuration:

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

  • ouvrez-le et éditez comme ceci (ajoutez le nom du module):

    rt2800usb

  • la prochaine fois que vous redémarrerez, le module devrait être automatiquement chargé


Dépannage:

Vérifiez si le systemdservice a 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(identifiant du processus) et le code de sortie. status=0/SUCCESSsignifie 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, la systemctlsortie 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 -brapport:

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

Lorsque le code de sortie est, 0/SUCCESScela 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 la lsmodsortie ne confirme pas (malgré le code de sortie du service 0/SUCCESS), cela signifie que quelque chose a supprimé le module après avoir été chargé par modules-load.service. Une cause possible est un autre *.conffichier qui a mis le module sur liste noire. Recherchez une ligne comme:

blacklist rt2800usb

dans /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.confou /run/modprobe.d/*.confet commentez-le / supprimez-le.


Je l'ai fait, mais le module ne s'est pas chargé au redémarrage.
quelque chose du

Est-ce parce que root est le propriétaire du fichier?
quelque chose du

Lorsque je redémarre, je dois toujours exécuter la commande modprbe. N'est-il pas répertorié car la liste se trouve après avoir exécuté la commande modprobe?
quelque chose du

5

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 comme ceci:

rt2800usb

La page Arch Wiki sur les modules du noyau contient plus d'informations.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.