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)


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

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


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.