No hay sonido desde la toma de auriculares frontal en MSI TRX40 Pro WiFi

Aug 18 2020

Estoy tratando de que el sonido funcione desde el conector de auriculares frontal en Ubuntu 20.04 en un MSI TRX40 Pro WiFi. La placa base tiene una configuración un poco torcida en la que el audio aparentemente proviene de un dispositivo de audio USB, por lo que aparece en los distintos mezcladores (alsamixer, el panel de sonido en Configuración) como "Audio USB". Cuando los auriculares están conectados, el sistema detecta correctamente que están conectados, pero no sale sonido de los auriculares.

Al buscar en Google, encontré consejos para deshabilitar el silencio automático en alsamixer, pero alsamixer no tiene esa opción en la lista.

Lo realmente interesante es que puedo obtener audio de la toma de auriculares seleccionando el dispositivo correcto usando aplay. Los dispositivos encontrados por 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

[Ignore el audio HDMI; ese es el soporte de audio de la GPU, que realmente funciona, siempre que quiera reproducir sonido por los altavoces del monitor]

Si elijo el dispositivo de audio hw: 1,1, puedo obtener una reproducción para reproducir un archivo wav y escucharlo a través de los auriculares en el conector frontal:

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

Entonces, si de alguna manera pudiera hacer que los diversos mezcladores de todo el sistema se usaran hw:1,1como salida, todo funcionaría bien (creo).

Vi que este chipset tiene algunos problemas en Linux y leí este (largo) informe de errores del kernel . Entonces, tal vez todo esto se solucionaría usando la topic/usb-trx40rama dehttps://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/? Pero dudo en seguir ese camino si hay una manera sencilla de hacerlo funcionar aquí.

Resumen: el sonido del panel frontal funciona si selecciono manualmente el dispositivo correcto usando aplay -D, no puedo averiguar cómo hacer que cualquier otro mezclador use ese dispositivo.

Respuestas

2 BrendanDolan-Gavitt Aug 19 2020 at 18:45

Logré arreglar esto con la siguiente combinación de parches ALSA, PulseAudio y kernel:

  1. ALSA: https://github.com/alsa-project/alsa-ucm-conf/pull/25. No reconstruí el paquete, simplemente coloqué los dos archivos nuevos /usr/share/alsa/ucm2/USB-Audio/.
  2. PulseAudio: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/292. Solía apt-get source pulseaudioobtener la fuente, apliqué el parche y luego solía dpkg-source --commitdecirle a dpkg sobre la información del parche. Luego reconstruí los paquetes de pulseaudio dpkg-buildpackage -rfakerooty los instalé.
  3. La topic/usb-trx40rama de este árbol del núcleo:https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=topic/usb-trx40. Esto es un poco complicado porque estoy usando ZFS, así que tuve que aplicar los parches de ZFS así como se documentan aquí:https://forum.level1techs.com/t/building-custom-kernel-with-zfs-built-in/117464

No estoy completamente seguro de que los tres sean necesarios, pero son suficientes. ¡El sonido funciona ahora!