Há muito tempo, tenho enfrentado um problema com os alto-falantes SubWoofers do meu Alienware x17 R1. Esse problema não está relacionado ao Kubuntu em si, pois tive o mesmo problema no Manjaro e no Fedora.
Meu laptop tem um controlador de áudio Realtek ALC3281, com dois amplificadores para os diferentes alto-falantes. O alto-falante principal usa o chip ALC3281, e os alto-falantes SubWoofer usam um Realtek ALC1309. Os alto-falantes SubWoofer não existem para Linux e o único chip detectado parece ser o ALC3281 (chamado ALC289). Procurando uma solução, consegui fazê-lo funcionar com apenas duas modificações.
Adicione isto ao GRUB_CMDLINE_LINUX_DEFAULT:
snd_intel_dspcfg.dsp_driver=1
Use HDAJackRetask para substituir o ID do PIN 0x17 e defini-lo como LFE ou alto-falantes traseiros.
Com os ajustes acima, os alto-falantes SubWoofer são detectados como alto-falantes SubWoofer ou Traseiros, dependendo da seleção, e testá-los por meio da configuração de som funciona, mas não funciona totalmente.
O som é quase perfeito, próximo ao som do Windows, mas o controle de volume se limita apenas aos alto-falantes "frontais", mantendo ambos os subwoofers no volume máximo o tempo todo. Fazendo alguns testes com o alsamixer, percebi que os alto-falantes frontais têm controle de volume, mas o subwoofer não.
Também notei que os controles de volume Master e Speaker estão alterando o volume dos alto-falantes frontais, enquanto o alto-falante SubWoofer ainda está no volume máximo, enquanto o volume PCM é capaz de modificar o volume de todos os quatro alto-falantes ao mesmo tempo.
Aqui entendo que existem duas maneiras de resolver o problema:
- Corrigir o controle de volume do SubWoofer
- Altere o controle de volume para gerenciar o volume PCM em vez do volume Master. Consigo fazer isso com o AlsaMixer, mas é desconfortável e o controle do KDE está substituindo as alterações em alguns eventos (por exemplo, retomada do modo de suspensão).
Como posso corrigir isso? Estou bloqueado e minhas buscas não foram frutíferas, então não sei o que fazer.
EDIT: com a ajuda do Gemini, encontrei uma solução alternativa para alterar o controle de volume para um baseado em software e parece funcionar. Não sei se é a melhor opção, então esperarei alguns dias após postar a solução para ver se há uma opção melhor.
Ainda funciona bem, então aqui estão os passos que segui para fazê-lo funcionar no Kubuntu 24.04. Os mesmos passos funcionarão para todas as versões do Ubuntu e passos semelhantes funcionarão também em outras distribuições, como o Fedora, por exemplo.
Primeiro temos que editar o arquivo de configuração do grub em
/etc/default/grub
:Neste arquivo modificaremos a
GRUB_CMDLINE_LINUX_DEFAULT
entrada adicionando ao final isto:Agora temos que regenerar a configuração do grub com:
e reiniciaremos o computador.
Após o computador reiniciar, teremos que instalar o HDAJackRetask com o seguinte comando:
Uma vez instalado, abriremos o programa HDAJackRetask e o configuraremos da seguinte forma:
Ele
Show unconnected pins
mostrará todos os pinos, incluindo o 0x17, que é necessário para fazê-lo funcionar.Agora precisamos pressionar
Apply Now
primeiro para testar se as alterações funcionarão em nosso sistema e, em seguida, poderemos alterar a configuração de som para selecionar entre 2.1 e 4.0. Com essas configurações, poderemos usar otest
botão para verificar se os alto-falantes estão funcionando:Se tudo funcionar, teremos que pressionar o
Install Boot Override
botão no programa HDAJackRetask para torná-lo permanente.Neste ponto, poderemos habilitar o som dos subwoofers, mas o som estará no volume máximo (motivo pelo qual abrimos este tópico). Para corrigir o problema, teremos que modificar a configuração do Alsa no Wireplumber para usar o mixer de som. Para isso, basta copiar o arquivo de configuração atual para o arquivo de configuração do seu perfil:
Se a pasta não existir, basta criá-la:
edite o novo arquivo criado:
e descomente a
api.alsa.soft-mixer
linha alterando seu valor paratrue
.Reinicie e finalmente aproveite seu Alienware x17 r1 com o som correto.
Atenciosamente.