Звук контейнера Libertine не работает на одной машине, работает на другой

У меня есть две машины под моей компетенцией, A и B. B - очень старая машина, я установил на нее приложения в Libertine, и звуки работают отлично. С другой стороны, на машине A звук не работает для контейнеров Libertine вообще. Как мне это диагностировать?

Интересно, что на машине A я создавал свои непривилегированные контейнеры LXC до 16.10, где звук работал и продолжал работать после обновления; но он не работает на Libertine, который использует тот же LXC при новой установке 16.10.

НОТА

  • обе машины полностью стоковые Ubuntu, только libertine а также libertine-scope установлены
  • только файлы conf для спящего режима и gtk3 редактируются
  • звуковые тесты из Sound Settings работают, только контейнерные звуки не работают

РЕДАКТИРОВАТЬ

Я пробовал бегать speaker-test в контейнере. Это работает, производит правильный звук на хосте, но на контейнере эта ошибка показывает:

$ 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

1 ответ

Решение

Небольшое исследование показывает, что многие новые системы (машина A) часто имеют HDMI, который установлен по умолчанию. Ваша старая система (Машина B), скорее всего, имеет только аналоговое аудио, так что по умолчанию для этого.

Выполните команду aplay -l чтобы получить список аудиоустройств, вы должны получить вывод, подобный следующему:

$ 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

Этот вывод должен помочь вам определить, какую карту вы хотите использовать по умолчанию для вывода.

Посмотрите и посмотрите, какой аудиовыход вам нужен (карта 0, устройство 0 - это значение по умолчанию, которое может быть не тем, что вам нужно; в моем случае мне нужно указать карту 1)

Создайте файл в вашем домашнем каталоге с помощью команды gedit ~/.asoundrc (Не стесняйтесь заменить ваш любимый текстовый редактор на gedit)

Добавьте следующие строки:

pcm.!default {

    type hw
    card *X*
}

ctl.!default {
    type hw           
    card *X*
}

замените номер карты, который мы обнаружили ранее *X*

Сохраните файл и попробуйте снова.

Дополнительная, возможно, применимая информация доступна здесь

РЕДАКТИРОВАТЬ: Я рад, что вы смогли получить 2 аудио канала, работающие под Libertine. Что касается вашего расширенного вопроса. Вы можете проверить вывод amixer scontrols и убедитесь, что выбранный вами выход поддерживает 6 аудиоканалов и, если это так, используйте alsamixer чтобы убедиться, что ни один из них не отключен и что вы находитесь в режиме 6 каналов, а не в режиме 2 каналов, как показано ниже.

Чтобы изменить режимы канала в alsamixer используйте клавиши со стрелками, чтобы выделить Channel как показано выше, а затем стрелки вверх или вниз, чтобы выбрать нужный режим.

Источники:

man aplay

https://www.alsa-project.org/main/index.php/Asoundrc

Другие вопросы по тегам