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)


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

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


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.


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.

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.