J'ai deux machines sous mon contrôle, A et B. B est une très vieille machine, j'ai installé des applications dans Libertine, et les sons fonctionnent parfaitement. En revanche, sur la machine A, le son ne fonctionne pas du tout pour les conteneurs Libertine. Comment puis-je diagnostiquer cela?
Fait intéressant, sur la machine A, j'ai créé mes propres conteneurs LXC non privilégiés avant 16h10, où le son fonctionnait, et j'ai continué à fonctionner après la mise à niveau. mais cela ne fonctionne pas sur Libertine qui utilise le même LXC lors d’une nouvelle installation de 16.10.
NOTE
libertine
et libertine-scope
sont installéesgtk3
sont modifiésEDIT
J'ai essayé de lancer speaker-test
dans le conteneur. Il exécute un son correct sur l'hôte, mais cette erreur indique sur le conteneur:
$ libertine-launch container-name speaker-test -t wav -c 6
speaker-test 1.1.2
Playback device is default
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
ALSA lib pcm_dmix.c:1041:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory
Un peu de recherche indique que de nombreux systèmes plus récents (Machine A) intègrent souvent HDMI, qui est défini par défaut. Votre ancien système (Machine B) ne possède probablement que de l'audio analogique, ce qui est la valeur par défaut pour celui-ci.
Exécutez la commande aplay -l
pour obtenir une liste des périphériques audio dont vous devriez obtenir une sortie similaire à celle-ci:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
Cette sortie devrait vous aider à déterminer quelle carte vous souhaitez utiliser comme sortie par défaut.
Regardez et voyez quelle sortie audio vous avez besoin (carte 0 périphérique 0 est la valeur par défaut alsa qui peut ne pas être ce dont vous avez besoin; dans mon cas, je dois spécifier la carte 1)
Créez un fichier dans votre répertoire personnel avec la commande gedit ~/.asoundrc
(vous pouvez remplacer gedit par votre éditeur de texte préféré)
Ajoutez les lignes suivantes:
pcm.!default {
type hw
card *X*
}
ctl.!default {
type hw
card *X*
}
remplace le numéro de carte que nous avons découvert précédemment par *X*
Enregistrez le fichier et réessayez.
D'autres informations éventuellement applicables sont disponibles ici
EDIT: Je suis heureux que vous ayez pu avoir 2 canaux audio fonctionnant sous Libertine. En ce qui concerne votre question élargie. Vous pouvez vérifier la sortie de amixer scontrols
et vous assurer que celle que vous avez choisie prend en charge 6 canaux audio. Si c'est le cas, utilisez la fonction alsamixer
pour vous assurer qu'aucun d'entre eux n'est en sourdine et que vous êtes en mode 6 canaux. et pas en mode 2 canaux comme indiqué ci-dessous.
Pour changer de mode de canal dans alsamixer
, utilisez les touches de direction pour mettre en surbrillance Channel
comme indiqué ci-dessus, puis utilisez les flèches vers le haut ou le bas pour sélectionner le mode souhaité.
Sources:
man aplay
https://www.alsa-project.org/main/index.php/Asoundrc#The_.asoundrc_file_format