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.