Como posso fazer com que minha placa de som não suportada funcione com ALSA?

Como posso fazer com que minha placa de som não suportada funcione com ALSA?

Não ouço som nos alto-falantes do meu laptop Lenovo Legion 7i, que alsamixer me diz que está usando umRealtek ALC287.

Eu tentei várias distribuições Linux e combinações de kernel, incluindo Ubuntu 16.04, 18.04 e 20.04, com os kernels padrão e principal (5.7.x e 5.8.x) e Manjaro com 5.6.x, 5.7.x e 5.8.x grãos.

Em cada caso, certifiquei-me de desativar o Auto-Mute no alsamixer e colocar todos os níveis de volume no máximo. Em todos os casos, não recebo nenhum som dos alto-falantes (executando teste de alto-falante, tocando música, etc.). EUsoucapaz de obter som através de fones de ouvido e HDMI (embora eu acredite que o HDMI seja através de uma placa de som diferente).

Além disso, posso ver que há algum tipo de atividade sonora ocorrendo quando olho para o pavucontrol (a barra laranja-avermelhada que indica que um som está sendo reproduzido), mas não há nenhum som real produzido pelos alto-falantes.

Meus resultados alsa-info.sh (de Manjaro em 5.6.15) estão aqui (ignore isto, o mais recente abaixo):

http://alsa-project.org/db/?f=ba86fe76a9d9cf1cced56600edf82eb206a36a72

Fico feliz em executar o script novamente (ou qualquer outra ferramenta) a partir de uma combinação diferente de distro/kernel. Deixe-me saber o que seria útil.

Eu já registrei umrelatório de bug com as mesmas informações, mas infelizmente as únicas respostas vieram de outras pessoas com o mesmo problema.

O que posso fazer para que meu som funcione?Tenho experiência com desenvolvimento de software, mas não com drivers ou espaço de kernel. Disposto a aprender e tentar qualquer coisa neste momento.

ATUALIZAR

alsa-info.sh usando um kernel mais recente:

http://alsa-project.org/db/?f=4272343a3590cc08f192f98113dedfc0418afe52

Responder1

Resposta parcial:

As informações que você forneceu possuem uma seção sobre o codec e informa que esse codec específico não é reconhecido:

Codec: Realtek Generic
...
Vendor Id: 0x10ec0287
Subsystem Id: 0x17aa3813
Revision Id: 0x100002

No meu sistema, a primeira linha diz

Codec: Realtek ALC892

O código para os patches que lidam com os vários codecs está em /sound/pci/hda/patch_realtek.c, pelo menos para o kernel relativamente antigo que uso no momento.

Então, para que seu som funcione, você precisa depurar o que está errado com o codec, depois escrever um patch e incluí-lo no código, para que todos os outros com esse hardware possam fazê-lo funcionar.

As informações do codec podem ser despejadas com arquivos cat /proc/asound/card*/codec\#*. Leia sobre como funciona um codec Intel HDA e depure-o.

Eu recomendo desativar o Pulseaudio. hda-verbdo alsa-toolspacote (pelo menos é assim que é chamado no Debian) também pode ajudar.

Você pode pesquisar no Google planilhas de dados de codecs mais antigos para entender como eles funcionam.

informação relacionada