Nessun suono dal jack per cuffie anteriore su MSI TRX40 Pro WiFi

Aug 18 2020

Sto cercando di far funzionare il suono dal jack per cuffie anteriore in Ubuntu 20.04 su un WiFi MSI TRX40 Pro. La scheda madre ha una configurazione un po 'traballante in cui l'audio proviene apparentemente da un dispositivo audio USB, quindi si presenta nei vari mixer (alsamixer, il pannello Suono in Impostazioni) come "Audio USB". Quando le cuffie sono collegate, il sistema rileva correttamente che sono collegate, ma dalle cuffie non esce alcun suono.

Dalla ricerca su Google, ho trovato consigli per disabilitare il silenziamento automatico in alsamixer, ma alsamixer non ha affatto questa opzione elencata.

La cosa davvero interessante è che posso ottenere l'audio dal jack delle cuffie selezionando il dispositivo giusto utilizzando aplay. I dispositivi trovati da 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

[Ignora l'audio HDMI; questo è il supporto audio della GPU, che funziona davvero, a patto che io voglia riprodurre il suono dagli altoparlanti del monitor]

Se scelgo il dispositivo audio hw: 1,1 posso fare in modo che aplay riproduca un file wav e lo ascolto attraverso le cuffie sul jack frontale:

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

Quindi, se potessi in qualche modo far sì che i vari mixer di sistema utilizzino hw:1,1come output tutto funzionerebbe bene (credo).

Ho visto che questo chipset ha alcuni problemi in Linux e ho letto questo (lungo) rapporto sui bug del kernel . Quindi forse tutto questo sarebbe stato risolto usando il topic/usb-trx40ramo dihttps://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/? Ma sono riluttante a seguire quella strada se c'è un modo semplice per farlo funzionare qui.

Riepilogo: il suono del pannello frontale funziona se seleziono manualmente il dispositivo giusto utilizzando aplay -D, non riesco a capire come ottenere un altro mixer per utilizzare quel dispositivo.

Risposte

2 BrendanDolan-Gavitt Aug 19 2020 at 18:45

Sono riuscito a risolvere questo problema con la seguente combinazione di patch ALSA, PulseAudio e kernel:

  1. ALSA: https://github.com/alsa-project/alsa-ucm-conf/pull/25. Non ho ricostruito il pacchetto, ho semplicemente inserito i due nuovi file /usr/share/alsa/ucm2/USB-Audio/.
  2. PulseAudio: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/292. Ero solito apt-get source pulseaudioottenere i sorgenti, applicare la patch e poi dpkg-source --commitcomunicare a dpkg le informazioni sulla patch. Quindi ho ricostruito i pacchetti pulseaudio con dpkg-buildpackage -rfakeroote li ho installati.
  3. Il topic/usb-trx40ramo di questo albero del kernel:https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=topic/usb-trx40. Questo è un po 'complicato perché sto usando ZFS, quindi ho dovuto applicare le patch ZFS così come documentato qui:https://forum.level1techs.com/t/building-custom-kernel-with-zfs-built-in/117464

Non sono del tutto sicuro che tutti e tre siano necessari, ma sono sufficienti. Il suono ora funziona!