O som no meu ThinkPad Yoga X1 costumava funcionar há algum tempo. Não sei o que mudou, mas agora não funciona mais. Ele ainda funciona continuou funcionando por algum tempo na instalação paralela do Ubuntu 18.04 (sim, eu tenho a mesma distribuição instalada duas vezes). Ele ainda funciona na instalação paralela do Windows 10.
Quando eu pressiono os botões de volume no meu teclado, ele altera o volume de um dispositivo "Dummy Output".
lspci
lista o dispositivo de áudio:
$ lspci | grep -A8 Audio
00:1f.3 Audio device: Intel Corporation Device 9dc8 (rev 11)
00:1f.4 SMBus: Intel Corporation Device 9da3 (rev 11)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 9da4 (rev 11)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-LM (rev 11)
03:00.0 Non-Volatile memory controller: Micron/Crucial Technology Device 2263 (rev 03)
05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
Mas aplay não encontra
sudo aplay -l
[sudo] password for generic:
aplay: device_list:270: no soundcards found...
$ pacmd list-sinks
1 sink(s) available.
* index: 0
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1000
volume: front-left: 46332 / 71% / -9.04 dB, front-right: 46332 / 71% / -9.04 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max request: 344 KiB
max rewind: 344 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
module: 14
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
Estou executando o Ubuntu 18.04 com ZFS na raiz. Isso significa que posso tentar uma solução e reverter se não funcionar. O que significa que tentei várias soluções.
Links relacionados que não ajudaram:
O que eu tentei:
sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils && reboot
sudo apt-get install build-essential linux-headers-
uname -ralsa-base alsa-firmware-loaders alsa-oss alsa-source alsa-tools alsa-tools-gui alsa-utils alsamixergui
adicionando o usuário
generic
ao grupoaudio
os três acima combinados
ambas as correções no post linuxuprising
modprobe snd_hda_intel && modprobe sof_pci_dev
Adicionando
snd_hda_intel.dmic_detect=0
aos argumentos de inicialização do GRUBInstalando uma coleção de pacotes
ppa:nilarimogard/webupd8
conforme recomendado aquiReinstalando pacotes relacionados ao alsa, usando dkms. Veja aqui
Reinstalando
pavucontrol
epulseaudio
de acordo com este QA
Meu sistema é
$ uname -r
5.3.0-51-generic
Possivelmente não relacionado, possivelmente relacionado:
meus controles de brilho da tela também desapareceram. Eles foram quebrados uma vez antes, e eu consertei isso adicionando e atualizando acpi_backlight=video
o grub e reinicializando. Mas essa correção ainda está em vigor e ainda está quebrada novamente.GRUB_CMDLINE_LINUX_DEFAULT
/etc/default/grub
Como posso fazer o som funcionar novamente?
Quando eu inicializo um live stick do Ubuntu 18.04, o som funciona novamente.
# live system version:
$ uname -a
Linux ubuntu 5.3.0-28-generic #30-18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# aplay output on live system:
ubuntu@ubuntu:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC285 Analog [ALC285 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
(No sistema não ativo) /var/log/apt/term.log
e /var/log/apt/history.log
e /var/log/dpkg.log
estão todos vazios quando visualizados com sudo vim <filepath>
. Mas há um arquivo history.log.1.gz
que contém todo o histórico. Estou analisando, mas não sei o que procurar.
Eu inicializei o instantâneo zfs mais antigo que tenho atualmente no laptop (não incrivelmente antigo, devido a complicações com o zfs na época) e o som também não funciona lá. Também não funciona quando inicializo com a versão mais antiga do kernel 5.3.0-28
que é a mesma do pendrive ao vivo.
git diff --no-index apt_live.txt apt_tank.txt
onde os arquivos contêm as respectivas saídas de apt list --installed
me dá muita saída. Muitos números de versão foram alterados.
Eu adicionei as tags 19.04e 20.04em retrospecto, pois a correção também se aplica a elas, de acordo com as fontes.
Esta resposta corrige o som, mas interrompe o controle de brilho.
Estou deixando-o aqui para fins de documentação
e espero poder revisá-lo mais tarde, quando encontrar uma correção melhor.Por favor, considere esta resposta de acompanhamento !
Já havia tentado isso antes sem sucesso. Ele agora funcionou pela segunda vez depois que eu não apenas fiz o acima, mas também segui o conselho de Adam de executar
pulseaudio --start
após a reinicialização .Observe que isso pode levar alguns segundos até que o som comece a funcionar.
Como poderia ser que apenas o conselho de Adam fosse importante, removi a linha
options snd-hda-intel dmic_detect=0
novamente e reiniciei. Parou de funcionar novamente. Então eu editei novamente e reiniciei outra vez. E dessa vez o som funcionou sem precisar rodarpulseaudio --start
.Eu não entendo isso, mas esta parece ser a correção. Se for necessário executar
pulseaudio --start
todas as vezes na inicialização, apenas adicionarei esse comando ao meu.profile
ou.bashrc
. Embora depois de reiniciar algumas vezes para testar isso, tenho certeza de que você não precisa dopulseaudio --start
- apenas espere algum tempo após a inicialização. Aproximadamente um minuto.Em relação à parte "possivelmente relacionada" da minha pergunta
Logo depois que notei que as teclas de volume agora estão funcionando e fazendo um som, pressionei uma tecla de brilho. E não funcionam mais. Vou tentar a correção que foi vinculada em um dos meus artigos citados nesta resposta e editar minha resposta assim que souber se funcionou.
Em relação ao atraso após a inicialização até o som funcionar: Talvez isso tenha a ver com isso.
Minha primeira tentativa foi esta resposta que corrigiu o som, mas interrompeu os controles de brilho.
Mais tarde, notei um comportamento estranho em combinação com meus diferentes menus do carregador de inicialização do grub e comecei a escrever uma nova pergunta. Enquanto escrevia essa pergunta, fiz mais testes até que ela se tornasse mais uma postagem de blog do que uma pergunta, pois também contém várias respostas para perguntas implícitas.
Você vai encontrá-lo abaixo da linha horizontal.
TL;DR
Removendo
nomodeset
eacpi_backlight=video
fez o truque para mim. Os controles de som e brilho agora funcionam - possivelmente à custa da hibernação.Longa redação de como testar isso
Esta é uma nova perspectiva sobre a questão originalmente colocada como placa de som não detectada no Ubuntu 18.04 . Ficou muito mais estranho. Mas para você entender minha total confusão, você vai precisar de algum pretexto:
Eu tenho três partições com o Ubuntu 18.04 em cada uma. No final, vou me livrar de dois deles, mas eles são
EXT 4
,ZFS unencrypted
,ZFS encrypted
. Cada um tem um plano de fundo diferente para que eu saiba em qual estou logado.Eu também tenho o grub instalado em dois lugares. Provavelmente porque não configurei uma partição de inicialização separada para o sistema EXT4. Então eu tenho,
/dev/nvme0n1p8/boot
mas também/dev/nvme0n1p5 (boot partition)
. Ambos contêm um kernel e initrd5.3.0-51-generic
. Op5
contém também5.3.0-53-generic
e op8/boot
contém também53.0-28-generic
e alguns antigos4-15-0-101-generic
. No entanto, nem tenho certeza se essas partições de inicialização importam muito.Para distinguir os dois grubs, adicionei um tema ao do
p5
.Quando inicio o laptop, ele inicializa na GUI do grub no
p5
. Ele tem alguns problemas em listar corretamente várias partições zfs, então fiz uma entrada personalizada, mas isso também não deve importar aqui.Para abrir a GUI do grub
p8
, eu pressiono Escpara chegar ao terminal do grub e lá eu entroQuando inicializo a partir do grub
p5
, as teclas de brilho e o som estão quebrados.Quando eu inicializo a partir do grub
p8
, eles funcionam perfeitamente.Certifiquei-me de usar o mesmo kernel e sistema em ambas as instâncias. Na verdade, eu tentei várias vezes na esperança de que isso possa ser devido a algum argumento de inicialização do kernel.
O problema não está vinculado a uma das três instalações do Ubuntu. Posso inicializar qualquer um deles para que o som funcione e para que não funcione, dependendo do grub que estou usando.
O problema não está vinculado a uma versão do kernel. Eu posso inicializar de ambos
51
e53
em qualquer partição e o som funciona ou não, dependendo do grub que estou usando.O problema não é devido a diferentes imagens de kernel da mesma versão. Eu posso inicializar a partir do
p8
grub com o kernel53
localizado nap5
partição e o som funcionará.Teste
Vamos considerar apenas a partição ext4 simples por enquanto. A partição zfs criptografada se comporta da mesma forma (e a partição zfs não criptografada eu não verifiquei).
Em primeiro lugar, tentei várias combinações de argumentos de inicialização, mas acho que os três testes a seguir devem ser suficientes para essa pergunta.
old
para o ext4-menuentry com grub ativadop8
ounew1
para o ext4-menuentry com grub onp5
.kernel partition
foi definido8
editando o menuentry para conterset root=(hd0,gpt8)
logo antes da linha começando comlinux
e prefixando o caminho para o kernel e para o initrd com/boot
.Analogamente, o
kernel partition
foi definido5
inserindoset root=(hd0,gpt5)
e removendo o prefixo/boot
dos caminhos kernel e initrd.]kernel version, sound works?[
é sobre a presença do respectivo argumento de inicialização do kernel. Esses são argumentos que foram definidos em pelo menos uma das entradas do menu grub, mas como você pode ver na tabela, o comportamento permaneceu o mesmo sem eles.Também testei se a presença de
quiet splash
tem algum efeito, mas também não parece ter nenhum.Para ter certeza absoluta de que os argumentos de inicialização não têm nenhum impacto, tentei inicializar diretamente do terminal grub.
As teclas de som e brilho funcionam dessa maneira.
As teclas de som e brilho também funcionam dessa maneira! (inesperado neste momento)
As teclas de som e brilho também funcionam dessa maneira. (esperado desde o início do grub em
p8
).As teclas de som e brilho ainda funcionam dessa maneira! (inesperado!). Agora, se eu não abrir o terminal grub e editar diretamente a entrada, o mesmo comportamento. Portanto, não há mágica envolvida com o
normal
comando.Além disso, não escrever o
set root=(hd0,gpt5)
parece ser bom.When I run the entry as it was generated in the grub GUI on
p5
, the brightness and sound do not work. So I shall now try and build that entry from the ground up. (Prepare for lots of typing)Sound and brightness keys still work.
Sound and brightness keys still work.
Boots into emergency mode with "Failed to mount /boot/efi" (wrong fs type, bad option, bad superblock on /dev/nvme0n1p2 ...)
So I remove the
gfxmode $linux_gfx_mode
again and continue:Sound and brightness keys still work.
Sound and brightness keys still work.
I have inserted the
gfxmode $linux_gfx_mode
again and it still boots well and the Sound and Brightness Keys still work.And the screen brightness and Sound no longer work!
Again, without
nomodeset
:The Sound and Brightness keys still work.
Sound and Brightness keys still work.
Worth noting that I only had
acpi_backlight=video
there in the first place because the brightness keys were not working. And I hadnomodeset
(which currently seems to be the culprit) there because it fixes hibernation. Maybenomodeset
broke my brightness keys and sound, which I then tried to fix usingacpi_backlight=video
?So including
nomodeset
again:The sound and brightness are now not working, so it is unclear to me why the brightness fix with
acpi_backlight=video
worked for me last time. I applied it May 9 and thenomodeset
was already in March... perhaps I removed and re-added that some time and didn't realize the effects it had on the brightness keys.I would prefer having one problem over having two problems, so here's again removing
nomodeset acpi_backlight=video
and adding the final argument:As expected, sound and brightness work again. I have not tested hibernation now. I assume it will either work due to the recent bios and firmware update by lenovo, or still not work in the same way as in my question about it. But that will be a different problem for a different day.
Agora para a pergunta que permanece: por que parecia que funcionou no antigo bootloader?
Bom... acontece que na maioria dos meus testes não modifiquei "nomodeset". Mas em um que você pode ver na tabela acima, o som não funcionou com o
p5
bootloader, kernel 51 dop8
, semacpi_backlight
e semnomodeset
.Não consigo mais reproduzir isso. Talvez eu tenha cometido um erro ao fazer anotações.