systemd: automatisiert den Befehl modprobe beim Booten


20

Meine Distribution ist Fedora 17 Gnome. Jedes Mal, wenn ich meinen Computer neu starte / neu starte, muss ich diesen Befehl als root ausführen:

modprobe rt2800usb

Wie kann ich es dauerhaft machen?


1
Hallo, danke für deine erste Frage. Es wäre schön, wenn Sie erwähnen könnten, auf welche Linux-Distribution Sie sich beziehen :)
— Bonsi Scott

1
@BonsiScott Die Distribution sollte wahrscheinlich auch zum Fragentext hinzugefügt werden, aber auf dem Tag steht Fedora.
— Depquid

(Auch meine eigene Antwort gelöscht, weil es nicht Fedora-spezifisch ist)
— Bonsi Scott

@ BonsiScott, Ihre Antwort könnte für andere nützlich sein ...
— vonbrand

Antworten:


34

Bei jeder Distribution können systemdSie das Modul automatisch laden über modules-load.d:

  • Erstellen Sie die Konfigurationsdatei:

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

  • Öffne es und bearbeite es wie folgt (füge den Modulnamen hinzu):

    rt2800usb

  • Beim nächsten Neustart sollte das Modul automatisch geladen werden


Fehlerbehebung:

Überprüfen Sie, ob der systemdDienst das Modul geladen hat:

systemctl status systemd-modules-load.service

Die Ausgabe sollte folgendermaßen aussehen:

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)

Die letzte Zeile enthält die PID(Prozess-ID) und den Exit-Code. status=0/SUCCESSbedeutet, dass das Modul erfolgreich eingefügt wurde, bestätigt durch:

journalctl -b _PID=260

Ausgabe ist:

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

Im systemctlFehlerfall sieht die Ausgabe folgendermaßen aus:

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)

mit journalctl -bBerichterstattung:

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

Wenn der Beendigungscode lautet 0/SUCCESS, bedeutet dies, dass Ihr Modul erfolgreich eingefügt wurde. Laufen

lsmod | grep rt2800

sollte bestätigen, dass:

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

Wenn die lsmodAusgabe nicht bestätigt wird (trotz des Service-Exit-Codes 0/SUCCESS), bedeutet dies, dass das Modul nach dem Laden von etwas entfernt wurde modules-load.service. Eine mögliche Ursache ist eine andere *.confDatei, die das Modul auf die schwarze Liste gesetzt hat. Suchen Sie nach einer Zeile wie:

blacklist rt2800usb

in /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.confoder /run/modprobe.d/*.confund auskommentieren / löschen.


Ich habe das getan, aber das Modul wurde beim Neustart nicht geladen.
— somethingSomething

Liegt es daran, dass root der Eigentümer der Datei ist?
— somethingSomething

Nach dem Neustart muss ich noch den Befehl modprbe ausführen. Wird es nicht aufgelistet, weil die Auflistung erfolgt, nachdem ich den Befehl modprobe ausgeführt habe?
— somethingSomething

5

Um ein Modul beim Booten zu laden, erstellen Sie eine Datei in /etc/modules-load.d/; Diese Datei kann einen beliebigen Namen haben, muss aber auf enden .conf. Im Fall Ihres WLAN-Treibers können Sie beispielsweise die Datei erstellen /etc/modules-load.d/rt2800.conf.

Fügen Sie in der Datei eine einzelne Zeile mit dem Namen des zu ladenden Moduls wie folgt hinzu:

rt2800usb

Auf der Arch-Wiki-Seite zu Kernel-Modulen finden Sie weitere Informationen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.