Comment faire pour que Raspberry Pi utilise une carte son USB externe par défaut

17

Quelqu'un sait-il comment changer la priorité de démarrage de la carte son?

Tous les tutoriels me disent de modifier /etc/modprobe.d/alsa-base.conf, mais le fichier est manquant dans Raspbian Jesse .

Carl Hudson
la source
Vote positif pour son arrivée dans Google - juin 2018
SDsolar

Réponses:

10

Le fichier que vous recherchez se trouve dans /usr/share/alsa/alsa.conf. Ce n'est pas appelé alsa-base.confjustealsa.conf

Tout le texte pertinent se trouve dans ce fichier, exécutez simplement sudo nano /usr/share/alsa/alsa.confchanger la carte son par défaut en 1 ou celle que vous préférez évidemment 0 est par défaut, donc pas celui-là j'ai également supprimé le # de la ligne qui dit ... load card-specific configuration files(sur demande) et maintenant je avoir le son provenant de ma carte audio cirrus exécutant debian 8 jessie sur ras pi2

Breeskeeper
la source
1
J'ai effectué quelques corrections de formatage rapides. Peut-être qu'une copie de la partie pertinente du fichier de configuration alsa rendrait votre réponse encore meilleure.
Journeyman Geek
2
"Charger des fichiers de configuration spécifiques à la carte (sur demande)" n'est-il pas un commentaire?
SILENT
C'est en effet juste un commentaire pour expliquer le bloc de code en dessous
PTS
Oui. Réponse partielle. Pas assez d'informations faisant autorité ici pour que je décide de voter. ... et cette ligne est un commentaire qui n'est pas exécutable. Et le bloc lui-même n'est pas commenté.
SDsolar
13

Cela a fonctionné pour moi sur Raspbian Jessie.

Si vous n'avez pas besoin de la puce audio intégrée (c.-à-d. Sortie analogique ou audio HDMI), désactivez-la et le périphérique audio USB peut devenir le périphérique principal:

  1. Désactivez l'audio intégré.
    • Ouvrez /etc/modprobe.d/raspi-blacklist.confet ajoutez blacklist snd_bcm2835.
  2. Autorisez le périphérique audio USB à être le périphérique par défaut.
    • Ouvrez /lib/modprobe.d/aliases.confet commentez la ligneoptions snd-usb-audio index=-2
  3. Redémarrer
    • sudo reboot
  4. Testez-le.
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav
leif81
la source
J'ai mis à jour la réponse pour utiliser une stratégie différente pour désactiver l'audio intégré. Cette méthode est meilleure car elle ne casse pas l'applet audio de bureau.
leif81
La première étape est cruciale mais je ne l'avais trouvée nulle part ailleurs. Upvote. Le reste est dépassé. Juin 2018: Je savais déjà qu'il fallait entrer /usr/share/alsa/alsa.confet le changer pour dire les deux default.ctl.card 1et default.pcm.card 1- après tout cela, redémarrez et essayez alsa -lde ne voir que l'USB et que c'est la carte # 1. J'ai installé mplayerpour le test et c'est super. Ils ont verrouillé cette question sur des réponses alors la voici.
SDsolar
@SDsolar Heureux de vous aider. Bien que je ne pense pas que l'étape 2 soit obsolète? Vous avez une autre façon de définir l'appareil par défaut. Bon à savoir.
leif81
Ce pourrait être un problème de version. Par exemple, mes systèmes 16.04 LTS ont tous deux été immédiatement mis à niveau à partir du CD d'installation 14.04. Il y a donc des vestiges des deux façons de faire, en particulier les choses impliquées dans le processus de démarrage qui ont changé sous v15. Dans mon cas, les fichiers modprobe.d existent mais ils sont tous vides. Donc, au final, il est bon que cette réponse montre les deux façons si vous incluez mon commentaire. -> Vous avez définitivement résolu mon plus gros problème alsamixeren mettant sur liste noire bcm2835. J'ai cherché haut et bas et seule votre réponse contenait cette dernière pièce du puzzle. TNX MCH
SDsolar
3

J'ai eu des problèmes avec cela sur les versions récentes de Raspbian (Jessie).

Il y a un fichier appelé aliases.confdans /lib/modprobe.dlequel contient la ligne options snd-usb-audio index=-2. Cette ligne remplace les /etc/modprobe.d/fichiers, vous devez donc la modifier. Commentez avec un # la ligneoptions snd-usb-audio index=-2

Dans /usr/share/alsa/alsa.confJ'ai commenté "charger des fichiers de configuration spécifiques à la carte (sur demande)" et j'ai également remplacé le contenu d' .asoundrcun fichier caché dans votre dossier d'accueil par:

pcm.!default plughw:Device
ctl.!default plughw:Device

L'inconvénient de cette solution est que l'applet audio de bureau n'apparaîtra pas. Donc, pour contrôler le volume, utilisez les alsamixerboutons d'application ou de niveau de son physique sur le dongle de son USB.

Références pour cela:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device .
Digitalfix
la source
2

La méthode décrite ici sur le Raspberry Pi StackExchange a fonctionné pour moi. J'exécute Raspian Jessie.

La nouvelle information était que je devais créer un nouveau .conffichier et ne pas le modifier /usr/share/alsa/alsa.conf:

Pour réorganiser mes cartes, je crée d'abord un fichier nommé /etc/modprobe.d/alsa base.conf. Il peut être nommé comme vous voulez tant qu'il se termine par .conf. J'ai ensuite ajouté ce qui suit:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
Lennart Hennigs
la source
2

Je n'étais pas satisfait des réponses précédentes donnant des instructions un peu ambiguë, alors j'ai pensé que je documenterais une solution plus claire.

Un bon article ici montre comment tester quel appareil et quelle carte vous souhaitez utiliser.

Trouvez votre numéro de périphérique matériel et votre numéro de carte en utilisant aplay -lavant et après le branchement de votre périphérique USB.

Pour mon système, le périphérique USB est répertorié comme card 1: CODEC [USB Audio CODEC], device 0 ...

Vous pouvez confirmer que l'appareil fonctionne avec

aplay -D hw:1,0 InsertYourWavFileHere.wav

Assurez-vous de copier un fichier audio wav valide dans votre répertoire actuel et renommez-le de manière appropriée. Si cela fonctionne, vous pouvez coder en dur ces valeurs afin qu'elles deviennent des valeurs par défaut pour une lecture parmi tous les autres fichiers audio gérés par alsa (la plupart des cas)

Pour modifier vos valeurs par défaut, vous devez également indiquer le fichier de configuration comme d'autres l'ont indiqué:

sudo nano /usr/share/alsa/alsa.conf

Les lignes spécifiques que vous souhaitez modifier sont quelques pages plus bas. Vous pouvez rechercher avec Cntl + W ou simplement faire défiler vers le bas.

Changement:

defaults.pcm.card 0 defaults.pcm.device 0

À:

defaults.pcm.card 1 defaults.pcm.device 0

Enregistrez le fichier de configuration en appuyant sur Ctrl + X, puis nano vous demandera de confirmer vos modifications et vous appuyez sur Y et Entrée.

topher217
la source
Pouvez-vous expliquer de quoi vous parlez lorsque vous dites «copiez un fichier audio wav valide dans votre répertoire actuel et renommez-le de manière appropriée»? S'agit-il de la aplaycommande pour «confirmer que le périphérique fonctionne»? N'est-il pas suffisant de spécifier un fichier audio wav valide par son nom actuel et son chemin complet?
G-Man dit `` Réintègre Monica ''
@ G-man Oui, spécifier n'importe quel fichier audio wav par son chemin complet ou valide devrait convenir. Dans mon exemple particulier, j'avais utilisé InsertYourWavFileHere.wavmais cela pourrait tout aussi bien être remplacé par ./audio/test.wavsi vous aviez un fichier wav dans le sous-répertoire audio nommé test.wav par exemple. Si tel était le cas, cela aplay -D hw:1,0 ./audio/test.wav devrait tout aussi bien fonctionner.
topher217
0

Après avoir changé alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) et ( load card-specific configuration files (on request)), vous devez modifier votre fichier asoundrc et mettre:

pcm.!default { type hw card 0 }
pcm.default.card 1.

Ça va aller

bouziat jacques
la source
0

J'ai donné un résumé complet ici qui couvre tout ce qui précède et bien plus encore. Y compris l'élimination de certaines idées fausses et pièges dans les fichiers de configuration ALSA.

L'essentiel est de désactiver le module audio Broadcom appelé snd_bcm2835et de vous assurer qu'il snd_usb_audioest chargé en premier et uniquement. Cela peut être fait de deux manières.

  • Dans le /boot/config.txtdossier
  • Dans le fichier de liste noire du module.

Ensuite, définissez votre configuration ALSA pour pointer vers l' snd_usb_audioindex.

not2qubit
la source
-1

J'ai essayé beaucoup de suggestions de gens pour des changements de configuration. Kodi a continué de diffuser l'audio sur HDMI. J'ai finalement trouvé que Kodi a un paramètre dans System | Audio qui vous permet de choisir sur quelle carte audio émettre! Si évident une fois que vous le voyez.

Pete .T.
la source