Blog Linux Avante

Corrigir problema de ausência de som (saída fictícia) no Ubuntu com SND HDA Intel

30 de abril de 2020

Configurações de som do Ubuntu

Depois de configurar um novo computador com Ubuntu 18.04, percebi que não há som saindo (de alto-falantes, fones de ouvido ou HDMI). Olhando nas configurações de som (nas configurações do Gnome), percebi que há apenas uma saída fictícia como dispositivo de saída de som.

A primeira coisa que fiz foi procurar soluções online, como esta, mas nenhuma funcionou (embora essa solução possa funcionar para você, então experimente). Então me lembrei que há um tempo consegui consertar o som do meu desktop antigo (que foi atualizado para as versões mais novas do Ubuntu em vez de uma instalação limpa), então tentei essa solução e ... funcionou!

Aqui está o que eu fiz para fazer o som funcionar no Ubuntu 18.04 - espero que isso funcione para alguns de vocês também.

Devo também mencionar que meu computador usa o módulo de kernel snd_hda_intel (codec Realtek ALC892). Explicarei como verificar se você está executando isso também, abaixo (etapa 0).

Eu só tive que usar essa correção no Ubuntu, mas presumo que funcione em outras distribuições Linux também. Pelo menos, também deve resolver problemas semelhantes no Linux Mint, elementaryOS e provavelmente também no Debian (mas deve se aplicar a muitas outras distribuições Linux, embora eu não possa testar isso).

Atualização para nenhum som após desconectar o cabo HDMI. Caso você tenha conectado um cabo HDMI e, em seguida, desconectado e não esteja mais recebendo nenhum som no desktop Ubuntu, a solução é bastante simples. Conecte o dispositivo HDMI novamente e você poderá alternar de volta para os alto-falantes integrados/externos, então você pode desconectar o cabo HDMI novamente.

[Atualização: março de 2020] Há uma regressão do kernel (no Linux 5.3.0-41 e provavelmente nas versões mais recentes em execução no Ubuntu 19.10) que causa um novo problema de "saída fictícia" no Ubuntu 19.10. Eu atualizei este artigo com uma correção para este problema - você pode encontrá-la perto do final do artigo (intitulado # 2 Correção PCI/placa de som interna não detectada (saída fictícia) com kernel Ubuntu 5.3.0-41 e mais recente em Ubuntu 19.10). Edição nº 2: isso parece acontecer também no Ubuntu 18.04 e, possivelmente, no Ubuntu 20.04.

1 Corrigindo o problema de falta de som no Ubuntu (saída fictícia)

  1. Esta correção sem som no Ubuntu funciona se seu computador estiver usando o módulo de kernel snd_hda_intel. Portanto, antes de tentar aplicar essa correção, verifique se o módulo do kernel snd_hda_intel está em uso. Para isso, você pode executar:

Comandos para usar no terminal

lsmod | grep snd_hda_intel

Que deve exibir pelo menos uma entrada snd_hda_intel. Esta é a saída do meu computador:

$ lsmod | grep snd_hda_intel
snd_hda_intel          40960  8
snd_hda_codec         126976  4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core           81920  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_pcm                98304  4 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi
snd                    81920  27 snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_rawmidi,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_pcm

Você também pode executar:

Comandos para usar no terminal

lspci -nnk | grep -A2 Audio

Que deve exibir os dispositivos de áudio junto com o módulo/driver do kernel em uso. Esta é a saída do meu sistema:

$ lspci -nnk | grep -A2 Audio
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05)
Subsystem: Dell 6 Series/C200 Series Chipset Family High Definition Audio Controller [1028:04a7]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
  1. Se você obtiver snd_hda_intel na saída dos comandos acima e não obtiver nenhum som (e apenas uma saída fictícia) no Ubuntu, aqui está o que você pode tentar consertar. Você precisa adicionar options snd-hda-intel model=generic no final do arquivo /etc/modprobe.d/alsa-base.conf. Não modifique mais nada neste arquivo!

Você pode adicionar options snd-hda-intel model=generic no final de /etc/modprobe.d/alsa-base.conf executando este comando:

Comandos para usar no terminal

echo "options snd-hda-intel model=generic" | sudo tee -a /etc/modprobe.d/alsa-base.conf

Execute este comando apenas uma vez porque ele adiciona esta linha cada vez que você o executa! Se você quiser modificá-lo, abra /etc/modprobe.d/alsa-base.conf como root com um editor de texto.

  1. Depois disso, reinicie o sistema. Esperançosamente, seu som agora funciona no Ubuntu e você não obtém mais apenas um dispositivo de saída fictício no System Settings > Sound.

Se você continuar a não obter nenhuma saída de som e ainda ver apenas a Saída fictícia em Configurações do sistema, você pode tentar definir o model para auto em vez de generic, então edite o arquivo /etc/modprobe.d/alsa-base.conf com um editor de texto (como root) e altere-o. Você pode encontrar uma lista de outros modelos que você pode experimentar dependendo do hardware do seu computador aqui.

2 Corrigir PCI/placa de som interna não detectada (saída simulada) com kernel Ubuntu 5.3.0-41 e -42 no Ubuntu 19.10/18.04

Há uma regressão (obrigado JustNiz por me notificar) no kernel 5.3.0-41 e -42 que causa um novo problema de "saída fictícia" no Ubuntu 19.10 e 18.04. As explicações para esse bug estão disponíveis neste relatório de bug, portanto, não entrarei em detalhes e direi diretamente como corrigi-lo.

[Atualização] Parece que isso também pode acontecer com alguns usuários do Ubuntu 20.04.

A solução para esta regressão de "saída fictícia" é:

  1. Edite /etc/modprobe.d/alsa-base.conf como root e adicione options snd-hda-intel dmic_detect=0 no final deste arquivo. Você pode fazer isso com um único comando, usando (execute este comando apenas uma vez):

Comandos para usar no terminal

echo "options snd-hda-intel dmic_detect=0" | sudo tee -a /etc/modprobe.d/alsa-base.conf

  1. Edite /etc/modprobe.d/blacklist.conf como root e adicione blacklist snd_soc_skl no final do arquivo. Você pode fazer isso com um único comando, usando (execute este comando apenas uma vez):

Comandos para usar no terminal

echo "blacklist snd_soc_skl" | sudo tee -a /etc/modprobe.d/blacklist.conf

  1. Depois de fazer essas alterações, reinicie o sistema.

Os desenvolvedores estão trabalhando para consertar isso. A versão corrigida do kernel provavelmente será 5.3.0-43. Quando isso acontecer, desfaça essas alterações.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.