Nenhum som do conector de fone de ouvido frontal no MSI TRX40 Pro WiFi
Estou tentando fazer o som funcionar a partir do fone de ouvido frontal no Ubuntu 20.04 em um MSI TRX40 Pro WiFi. A placa-mãe tem uma configuração um pouco instável, onde o áudio aparentemente vem de um dispositivo de áudio USB, então ele aparece em vários mixers (também como o painel de som em Configurações) como "Áudio USB". Quando os fones de ouvido são conectados, o sistema detecta corretamente que eles estão conectados, mas nenhum som é emitido pelos fones de ouvido.
Pesquisando no Google, encontrei um conselho para desativar o mudo automático no alsamixer, mas o alsamixer não tem essa opção listada.
O que é realmente interessante é que posso obter áudio da entrada do fone de ouvido selecionando o dispositivo certo usando aplay
. Os 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 o áudio HDMI; esse é o suporte de áudio da GPU, que realmente funciona - contanto que eu queira reproduzir o som nos alto-falantes do monitor]
Se eu escolher o dispositivo de áudio hw: 1,1, posso fazer com que o aplay reproduza um arquivo wav e ouvi-lo pelos fones de ouvido na entrada frontal:
aplay -Dhw:1,1 a2002011001-e02.wav
Então, se eu pudesse de alguma forma fazer com que os vários mixers de todo o sistema usassem hw:1,1
como saída, tudo funcionaria bem (eu acho).
Eu vi que este chipset tem alguns problemas no Linux e li este (longo) relatório de bug do kernel . Então, talvez tudo isso fosse consertado usando o topic/usb-trx40
branch dehttps://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/? Mas hesito em seguir esse caminho se houver uma maneira simples de fazê-lo funcionar aqui.
Resumo: o som do painel frontal funciona se eu selecionar manualmente o dispositivo certo usando aplay -D
, não consigo descobrir como fazer com que outro mixer use esse dispositivo.
Respostas
Consegui consertar isso com a seguinte combinação de ALSA, PulseAudio e patches de kernel:
- ALSA: https://github.com/alsa-project/alsa-ucm-conf/pull/25. Eu não recompilei o pacote, apenas coloquei os dois novos arquivos no
/usr/share/alsa/ucm2/USB-Audio/
. - PulseAudio: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/292. Eu costumava
apt-get source pulseaudio
pegar o código-fonte, aplicar o patch e entãodpkg-source --commit
dizer ao dpkg sobre as informações do patch. Então eu reconstruí os pacotes pulseaudiodpkg-buildpackage -rfakeroot
e os instalei. - O
topic/usb-trx40
ramo desta árvore do kernel:https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=topic/usb-trx40. Isso é um pouco complicado porque estou usando ZFS, então tive que aplicar os patches ZFS, bem como documentado aqui:https://forum.level1techs.com/t/building-custom-kernel-with-zfs-built-in/117464
Não estou totalmente certo de que todos os três são necessários, mas são suficientes. O som funciona agora!