Нет звука из переднего разъема для наушников на MSI TRX40 Pro WiFi

Aug 18 2020

Я пытаюсь заставить звук работать через разъем для наушников на передней панели в Ubuntu 20.04 на MSI TRX40 Pro WiFi. Материнская плата имеет несколько неудобную настройку, когда звук, по-видимому, поступает с аудиоустройства USB, поэтому он отображается в различных микшерах (alsamixer, панель «Звук» в настройках) как «USB Audio». Когда наушники подключены, система правильно определяет, что они подключены, но звук из наушников не выводится.

При поиске в Google я нашел совет отключить автоматическое отключение звука в alsamixer, но в alsamixer эта опция вообще не указана.

На самом деле интересно то, что я могу получить звук из разъема для наушников, выбрав правильное устройство с помощью aplay. Устройства найдены 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 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ALC1220VBDT [ALC1220-VB-DT], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: ALC1220VBDT [ALC1220-VB-DT], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ALC1220VBDT [ALC1220-VB-DT], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ALC1220VBDT [ALC1220-VB-DT], device 3: USB Audio [USB Audio #3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

[Игнорировать звук HDMI; это поддержка звука графическим процессором, которая действительно работает - если я хочу воспроизводить звук из динамиков монитора]

Если я выберу аудиоустройство hw: 1,1, я могу получить aplay для воспроизведения файла wav и прослушивания его через наушники на переднем разъеме:

aplay -Dhw:1,1 a2002011001-e02.wav

Так что, если бы я мог каким-то образом заставить различные общесистемные микшеры использовать в hw:1,1качестве их вывода, все было бы нормально (я думаю).

Я видел, что у этого чипсета есть некоторые проблемы в Linux, и прочитал этот (длинный) отчет об ошибке ядра . Так что, возможно, все это будет исправлено с помощью topic/usb-trx40веткиhttps://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/? Но я не решаюсь пойти по этому пути, если есть простой способ заставить его работать здесь.

Резюме: звук на передней панели работает, если я вручную выбираю правильное устройство, используя aplay -D, не могу понять, как заставить любой другой микшер использовать это устройство.

Ответы

2 BrendanDolan-Gavitt Aug 19 2020 at 18:45

Мне удалось исправить это с помощью следующей комбинации патчей ALSA, PulseAudio и ядра:

  1. ALSA: https://github.com/alsa-project/alsa-ucm-conf/pull/25. Я не пересобирал пакет, я просто вставил два новых файла /usr/share/alsa/ucm2/USB-Audio/.
  2. PulseAudio: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/292. Раньше я apt-get source pulseaudioполучал исходный код, применял патч, а затем dpkg-source --commitсообщал dpkg информацию о патче. Затем я пересобрал пакеты pulseaudio dpkg-buildpackage -rfakerootи установил их.
  3. topic/usb-trx40Ветви этого дерева ядра:https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=topic/usb-trx40. Это немного сложно, потому что я использую ZFS, поэтому мне пришлось применить исправления ZFS, а также описанные здесь:https://forum.level1techs.com/t/building-custom-kernel-with-zfs-built-in/117464

Я не совсем уверен, что все три необходимы, но их достаточно. Звук теперь работает!