Nenhum áudio analógico com AMD E1 - HDMI “assume”

1

Estou com problemas relacionados a configurações de áudio no meu notebook com todas as distros, já usei Ubuntu e Xubuntu (14 e 16), Kubuntu 16, Ubuntu Studio (14 e 15), Elementary (0.32) e MINT (17.3 Cinnamon e MATE), e todas as distros mostraram problemas relacionados ao áudio analógico, já que somente HDMI funciona após o login (em sistemas com som de login, o som funciona quando eu faço login, mas alguns instantes depois, o som analógico não funciona mais.

Meu notebook é um Acer E1 421 com AMD APU, e tanto a saída analógica quanto a saída HDMI parecem usar o mesmo módulo de áudio, e HDMI, sendo a placa 0 com ALSA, só funciona.

Meu lspci audio

lspci | grep Audio
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler HDMI Audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)

Meu aplay -l

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: CX20584 Analog [CX20584 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

Até encontrei algumas soluções para "consertar" o problema, mas não tive sorte, já que a "correção" era temporária ou as coisas pioravam, como remover o pulseaudio e perder os ícones de volume na barra de tarefas ...

Existe uma maneira de reverter os dispositivos? Parece que o sistema está enviando áudio direto para o cartão 0 (HDMI) Então, seria possível consertá-lo para reverter a ordem dos dispositivos?

Eu até encontrei um script para alterar a ordem dos dispositivos aqui (no Stackexchange) O som não funciona quando a placa de som e o HDMI usam o driver Intel HDA. Como trocar a ordem de carregamento do dispositivo?

Seria parecido com

alias char-major-116 snd
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel

options snd cards_limit=2

options snd-hda-intel id=SB index=0
options snd-hda-intel id=HDMI index=1

Mas não sei como isso se aplicaria no meu cenário e, mesmo usando um script para reverter o pedido, o áudio analógico não funciona

Ele aparece na configuração do som, mas o teste mostra que não há áudio, apesar de a configuração do som mostrar atividade de áudio, não há som nos alto-falantes.

Se não houver nenhuma maneira, existe uma maneira de bloquear somente a saída HDMI? Lembre-se de que ambas as saídas usam o mesmo módulo, por isso é impossível colocar o próprio módulo na lista negra.

Eu vi algumas pessoas dizendo sobre recompilar o kernel sem suporte HDMI alterando a configuração do menu.

Se for possível alguém poderia me dizer o que eu posso fazer recompilar e usar um novo kernel? Pelo menos como recompilar no Mint e no Elementary, já que são minhas distros preferidas.

Tks

    
por Cris Orlando 21.01.2016 / 12:12

2 respostas

0

Eu acredito que você precisa alterar o seu dispositivo de som ALSA padrão.

Eu tive um problema semelhante com a minha Sound Blaster Audigy 2 um tempo atrás.

Coloque isso no seu /etc/asound.conf (ou ~/.asoundrc apenas para o seu usuário), criando o arquivo se ele não existir:

pcm.!default {
    type plug
    slave.pcm {
        @func getenv
        vars [ ALSAPCM ]
        default "hw:Generic_1"
    }
}

Isso deve definir o segundo dispositivo (o CX20584 analógico, denominado Generic_1 ) como o padrão, e ele procurará por esse nome, que não será alterado, mesmo que o ID do dispositivo mude.

Ele também permitirá que você altere o dispositivo que deseja usar para saída, definindo a variável de ambiente ALSAPCM antes de iniciar um programa.

    
por 21.01.2016 / 16:17
0

Eu costumava usar uma solução baseada em /etc/modprobe.d/ , mas achei extremamente difícil configurar e sensível a atualizações e outras alterações de configuração. Então eu encontrei um jeito melhor.

Você pode usar as regras do udev para pedir seus dispositivos de som, mesmo que ambos estejam usando o mesmo driver. As regras necessárias ficariam assim:

# Make the HDMI audio the second sound device...
ACTION=="add", SUBSYSTEM=="sound", DRIVERS=="snd_hda_intel", KERNEL=="card*", KERNELS=="0000:00:01.1", ATTR{number}="1", ATTR{id}="HDMI"
# ... and the analog audio chip the first one.
ACTION=="add", SUBSYSTEM=="sound", DRIVERS=="snd_hda_intel", KERNEL=="card*", KERNELS=="0000:00:14.2", ATTR{number}="0", ATTR{id}="Analog"

Se você deseja que o PulseAudio ignore completamente o áudio HDMI, adicione uma vírgula e ENV{PULSE_IGNORE}="1" ao final da primeira regra do udev.

Coloque essas regras em, e. /etc/udev/rules.d/51-local-sound.rules , atualize seu initramfs com sudo update-initramfs -u e reinicie. Agora você deve encontrar seus dispositivos de som ALSA solicitados para que o chip de áudio analógico seja o dispositivo # 0 e, na lista aplay -l , eles devem agora ser nomeados como "analógico" e "HDMI" em vez de "Generic_1" e "Generic" , respectivamente.

    
por 03.11.2018 / 22:26

Tags