Wie lade ich ein Modul beim Booten?

32

Wie unter Warum funktioniert meine Audioausgabe (Tonausgabe) nicht? Um den Soundtreiber zu initialisieren, müssen Sie sudo modprobe snd_bcm2835jedes Mal ausführen, wenn Sie Sound ausgeben möchten.

Wie kann ich dies beim Booten ausführen? (dh vor dem Einloggen und ohne Eingabe)

Alex Chamberlain
quelle
1
Dies ist eine weitere Frage, die als nicht thematisch angesehen werden könnte. Es ist möglicherweise besser für U & L geeignet .
Jivings
2
@Jivings: Nur weil es unter Unix und Linux zum Thema gehört, ist es für Raspberry Pi nicht zum Thema geworden , oder?
Der Hochstapler
2
@OliverSalzburg: Ich denke, dass es in dieser speziellen Frage zu viele Überschneidungen gibt. Nichts an dieser Frage macht sie spezifisch für den Raspberry Pi.
Jivings
1
Würde die Entscheidung unter meta.raspberrypi.stackexchange.com/questions/24/… nicht bedeuten, dass diese Frage hier in Ordnung ist?
Graham Wager
1
@Jivings Danke, ich wollte das nur für zukünftige Besucher klären, da die Kommentare darauf hindeuten, die Frage zu schließen. Vielleicht sollten stattdessen alle Kommentare gelöscht werden?
Graham Wager

Antworten:

24

Das Laden von Modulen beim Booten unterscheidet sich ein wenig vom Ausführen von Startbefehlen.

In Debian:

Fügen Sie den Modulnamen als neue Zeile hinzu /etc/modules

In Arch Linux:

Fügen Sie den Modulnamen in das Modularray ein /etc/rc.conf. Die Zeile sollte folgendermaßen aussehen:

modules=(snd_bcm2835)

Oder für die neue systemd Konfiguration:

echo "snd_bcm2835" | sudo tee -a /etc/modules-load.d/snd_bcm2835.conf
Jivings
quelle
Ich snd_bcm2835habe die /etc/modulesDatei auf meinem Xbian hinzugefügt , aber das hat beim Booten eine Schleife erzeugt. Dies scheint nicht erlaubt zu sein, wenn OSMC
gestartet wird
@ rubo77 Interessant! Bist du dem auf den Grund gegangen?
Jivings
Nicht sicher. Vielleicht war es ein Zufall. Die ganze Installation scheint mittlerweile ein bisschen kaputt zu sein ...
rubo77
14

Modprobe beim Booten - Debian

Um die spezifische Frage zu beantworten sudo modprobe snd_bcm2835, fügen Sie das Modul hinzu /etc/modulesund starten Sie es neu. (Sie müssen sein , rootdies zu tun.)

Starten von Diensten - Debian

Debian verwendet initscripts, um das System zu initialisieren, und Sie können sie verwenden, um beliebige Befehle auszuführen. Sie müssen ein Skript ähnlich dem folgenden in installieren /etc/init.d.

#! /bin/sh
# /etc/init.d/blah
#

# Some things that run always
touch /var/lock/blah

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting script blah "
    echo "Could do more here"
    ;;
  stop)
    echo "Stopping script blah"
    echo "Could do more here"
    ;;
  *)
    echo "Usage: /etc/init.d/blah {start|stop}"
    exit 1
    ;;
esac

exit 0

Sie sollten sicherstellen, dass es lauffähig ist und im Besitz von root ist.

sudo chmod 755 /etc/init.d/blah
sudo chown root:root /etc/init.d/blah

Dann müssen Sie es registrieren, um es beim Start ausführen zu können.

sudo update-rc.d blah defaults

Verweise

Alex Chamberlain
quelle
1
Keines dieser Dinge ist für Debian einzigartig. Init-Skripte sind auch nicht das, was Sie zum Laden von Modulen verwenden sollten. Nur der erste Abschnitt ist für die Frage relevant.
Jivings
Keiner von beiden wird auf Arch funktionieren, nicht sicher, was QtonPi angeht.
Alex Chamberlain
Natürlich werden sie.
Jivings
Oh ... warum ist deine Arch-Antwort dann anders?
Alex Chamberlain
Denn Arch definiert eine praktische Abstraktion für Startereignisse.
Jivings
3

Es gibt unzählige Möglichkeiten, einen Befehl beim Start unter Linux auszuführen. Mein bevorzugter Ansatz ist es jedoch, ein Initialisierungsskript zu erstellen /etc/init.dund es mithilfe von zu registrieren update-rc.d. Auf diese Weise wird die Anwendung beim Booten / Herunterfahren des Systems automatisch gestartet und gestoppt.

In diesem Beitrag finden Sie eine Anleitung zum Erstellen eines solchen auf dem Raspberry Pi.

Martin O'Hanlon
quelle
1
Willkommen bei Raspberry Pi Beta! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Der Hochstapler
Wie würden Sie es durch systemdoder andere Systeme tun ?
ArchHaskeller
0

Mein bevorzugter Ansatz wäre es, den Befehl setup zu /etc/rc.local hinzuzufügen, wo er am Ende des Startvorgangs initialisiert wird, bevor Sie aufgefordert werden, sich anzumelden.

Theoremiser
quelle