Problema:
Não ouço nada no meu sistema de som durante a reprodução de áudio.
Pergunta:
Qual é o conjunto mínimo de programas necessários para reproduzir algo no conector de áudio ou na saída S/PDIF da minha máquina?
Como cheguei lá?
Meu sistema é um sistema Debian Stretch atualizado que foi criado com debootstrap
. O sistema é um Intel NUC5CPYH que supostamente possui um chipset Intel Braswell .
eu corri
apt-get install --no-install-recommends sox libsox-fmt-all
para instalar o sox
reprodutor de áudio. Quando tentei reproduzir um arquivo, recebi
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default
play FAIL formats: can't open output file `default': snd_pcm_open error: No such file or directory
então, depois de olhar para as dependências de sox
e libsox-fmt-all
, corri
apt-get install libsndio6.1 pulseaudio
Agora, a saída de sox
parece que está reproduzindo um arquivo bem quando solicitado, exceto que não recebo nenhuma saída de som no meu sistema de som. (O sistema de som está bem configurado.)
Editar #1
A saída de cat /proc/asound/cards
é
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0x81414000 irq 313
Editar #2
A saída de aplay -l
é
aplay: device_list:270: no soundcards found...
Solução
Eu fiz funcionar. Agora posso dizer que houve dois problemas:
- Meu usuário não tinha direitos suficientes para acessar o dispositivo de som. ( Esta resposta a outra pergunta me disse isso.)
- Meu dispositivo de som foi silenciado. (marquei a resposta que me dizia isso como "correta")
Então, apesar de tudo, os passos que eu tive que dar foram
apt-get install --no-install-recommends sox libsox-fmt-all alsa-utils
- Adicionar-me ao
audio
grupo:usermod --append --groups audio <username>
- Alterar o volume alsa:
alsamixer
- Toque a música com
sox
:play <filename>
Já verificou as configurações de volume? Os padrões do sistema foram escolhidos para serem silenciosos ou totalmente sem som porque as pessoas ficavam aborrecidas por serem prejudicadas pela saída de som em volume total em sistemas novos e não configurados.
Como
/proc/asound/cards
indica que o nome da sua placa de som integrada ao chipset é "PCH", tente isto (instalealsamixer
primeiro se necessário):Isso deve abrir um mixer de som baseado em texto com vários controles deslizantes: use as teclas de seta para manipulá-los. A tecla M alternará a configuração de "mudo" nos canais que os possuem.
O controle deslizante rotulado como "PCM" precisa estar no máximo para obter uma saída de som normal: o controle deslizante "Master" é aquele a ser usado para ajustar o nível de volume geral. Se você encontrar canais cujo nome inclui S/PDIF, pode ser necessário alternar o status mudo para obter a saída S/PDIF.
Depois de encontrar boas configurações padrão, execute
alsactl store
como root para salvar as configurações como novos padrões do sistema.Seu ambiente de área de trabalho também pode armazenar suas configurações de áudio de uma sessão para outra, mas definir bons volumes padrão em todo o sistema nunca é demais.
A instalação do PulseAudio em um sistema sem ele, onde o som já não funciona, provavelmente não resolverá muitos problemas. Além disso, se o Pulse fosse realmente exigido pelo sox, ele teria sido instalado automaticamente junto com o sox.
O PulseAudio roteia o som através do ALSA, que controla o hardware de som na maioria dos sistemas, e o ALSA não consegue detectar nenhum hardware de som ou está configurado incorretamente para ele, então você tem problemas mais profundos do que a instalação do pulso resolveria. O Pulse está permitindo que o aplicativo seja iniciado e executado, mas não possui dispositivos (se minha interpretação do problema estiver correta) que ele possa encontrar para a saída de áudio, portanto, você não obtém som.
Eu primeiro desinstalaria o PulseAudio por enquanto (instale-o assim que o som estiver funcionando, se você quiser).
Em seguida, verifique se você possui OSS (outro sistema de som) em execução em sua máquina. Se for, impedirá que o ALSA interaja com o hardware de áudio corretamente. Se for, e você não usa OSS, remova-o. O nome do pacote na minha instalação Debian (sid) é
oss4-base
.Com tudo isso removido, reinicie o computador se puder, embora provavelmente não importe, a menos que o OSS tenha sido instalado.
Em seguida, execute
aplay -l
(parte doalsa-utils
pacote) e veja o que ele gera. No meu computador, ele gera:Se você não obtiver nenhum dispositivo listado, ainda terá problemas. Não tenho ideia de como abordar a correção sem mais informações.
No meu sistema, acho que o pulseaudio geralmente desativa a única saída de áudio em funcionamento real. Este é um bug no pulseaudio, mas não olhei com detalhes suficientes para saber qual é o bug real, então o tenho ignorado na maior parte do tempo.
A maneira como obtenho o som é iniciando
alsamixer
, uma ferramenta CLI para gerenciar os níveis de volume ALSA, em seguida, pressione 'F6' para escolher a placa de áudio ALSA real em vez da placa de áudio virtual quebrada e, em seguida, habilite ospeaker
mixer e aumente o volume de zero.