Comment charger un module au démarrage?

32

Comme indiqué dans Pourquoi ma sortie audio (son) ne fonctionne-t-elle pas? , pour initialiser le pilote audio, vous devez exécuter sudo modprobe snd_bcm2835chaque fois que vous voulez sortir du son.

Comment puis-je le faire fonctionner au démarrage? (c.-à-d. avant de vous connecter et sans aucune entrée)

Alex Chamberlain
la source
1
C'est une autre question qui pourrait être considérée comme hors sujet. Il peut être mieux adapté à U & L .
Jivings
2
@Jivings: Ce n'est pas parce que c'est sur le sujet sous Unix et Linux que le sujet est hors sujet pour Raspberry Pi , n'est-ce pas?
Der Hochstapler
2
@ OliverSalzburg: Je pense qu'il y a trop de chevauchement dans cette question particulière. Rien dans cette question ne le rend spécifique pour le Raspberry Pi.
Jivings
1
La décision de meta.raspberrypi.stackexchange.com/questions/24/… ne signifie- t-elle pas que cette question est bonne ici?
Graham Wager
1
@Jivings Merci, je voulais juste clarifier cela pour tous les futurs visiteurs, car les commentaires pointaient vers la fermeture de la question. Peut-être que tous les commentaires devraient être supprimés à la place?
Graham Wager

Réponses:

24

Le chargement de modules au démarrage est un peu différent de l'exécution de commandes de démarrage.

Dans Debian:

Ajouter le nom du module en tant que nouvelle ligne /etc/modules

Dans Arch Linux:

Ajoutez le nom du module au tableau de modules en /etc/rc.conf, la ligne devrait ressembler à ceci:

modules=(snd_bcm2835)

Ou pour la nouvelle configuration de systemd:

echo "snd_bcm2835" | sudo tee -a /etc/modules-load.d/snd_bcm2835.conf
Jivings
la source
J'ai ajouté snd_bcm2835au /etc/modulesfichier sur mon Xbian mais cela a créé une boucle au démarrage. cela ne semble pas être permis lors du démarrage de OSMC
rubo77
@ rubo77 Intéressant! En êtes-vous allé au fond?
Jivings
Pas certain. Peut-être que c'était une coïncidence. Toute l'installation semble un peu cassée à ce jour ...
rubo77 Le
14

Modprobe au démarrage - Debian

Pour répondre à la question spécifique à propos de sudo modprobe snd_bcm2835, ajoutez le module à /etc/moduleset redémarrez. (Vous aurez besoin rootde faire cela.)

Services de démarrage - Debian

Debian utilise initscripts pour initialiser le système et vous pouvez les utiliser pour exécuter des commandes arbitraires. Vous devez installer un script similaire à celui ci-dessous /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

Vous devez vous assurer qu'il est exécutable et appartient à root.

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

Ensuite, vous devez l'enregistrer pour qu'il s'exécute au démarrage.

sudo update-rc.d blah defaults

Les références

Alex Chamberlain
la source
1
Aucune de ces choses n’est unique à Debian. De plus, les scripts init ne sont pas ce que vous devriez utiliser pour charger des modules. Seule la première section est pertinente pour la question.
Jivings
Aucun d'eux ne travaillera sur Arch, pas sûr de QtonPi.
Alex Chamberlain
Bien sûr, ils le feront.
Jivings
Oh ... pourquoi ta réponse Arch est-elle différente alors?
Alex Chamberlain
Parce que Arch définit une abstraction pratique pour les événements de démarrage.
Jivings
3

Il existe de nombreuses façons d'exécuter une commande au démarrage sous Linux, mais mon approche préférée consiste à créer un script d'initialisation /etc/init.det à l'enregistrer à l'aide de update-rc.d. De cette façon, l'application est lancée et arrêtée automatiquement au démarrage / à l'arrêt du système.

Voir ce post pour un ensemble d'instructions sur la façon de créer un sur le Raspberry Pi.

Martin O'Hanlon
la source
1
Bienvenue sur Raspberry Pi Beta! Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
Der Hochstapler
Comment le ferais-tu à travers systemdou d'autres systèmes?
ArchHaskeller
0

Mon approche préférée serait d’ajouter la commande d’installation à /etc/rc.local où elle serait initialisée à la fin du démarrage, avant que vous ne soyez invité à vous connecter.

Théoricien
la source