Às vezes, quando eles são instalados novos kernels em nosso equipamento com as respectivas atualizações de nossa distribuição, algum dispositivo de hardware pode parar de funcionar ou funcionar incorretamente. Por que isso acontece? Bem, é simples, porque os drivers de hardware foram alterados com a atualização do kernel. Os kernels genéricos que as distribuições geralmente instalam são configurados para funcionar com a maioria dos computadores, mas não são otimizados.
Às vezes, se você tiver um motorista específico para alguns dispositivos, ele pode mudar com a nova versão do kernel e você pode ver como sua webcam, sua placa de rede, sua placa de som ou qualquer outro dispositivo parou de funcionar repentinamente quando costumava funcionar corretamente, bem, o mais certo é que o o módulo correspondente ao driver daquele dispositivo foi descartado por ser considerado obsoleto ou por qualquer outro motivo, talvez seja apenas um dispositivo raro e o kernel genérico não tenha sido configurado para carregá-lo.
Não se preocupe, se com a versão mais antiga do kernel seu dispositivo funcionou, é fácil de consertar. Por exemplo, imagine que sua placa de rede, placa de som, webcam ou qualquer outro dispositivo parou de funcionar repentinamente e costumava funcionar. Se isso aconteceu após uma atualização do kernel, você pode descobrir que o módulo não está mais presente na nova versão. Você pode verificar com (por exemplo, supondo que o que não está funcionando é a placa de rede cujo driver é ath5k):
sudo modprobe ath5k && dmseg | grep ath
Se nos parece que módulo não existe, significa que não está presente em nosso kernel. Em seguida, verifique se o kernel detecta seu dispositivo, porque ele pode não funcionar e essa é a causa. Por exemplo:
lsmod
Y procure a lista O dispositivo específico que você está procurando, por exemplo se é a placa de rede, procura algo como Ethernet, WiFi, Wireless ou no nosso caso Atheros ... Se estiver listado foi detectado, portanto, faremos o seguinte, que é excluir ou eliminar a versão mais recente do kernel e seus cabeçalhos.
dpkg --get-selections | grep linux-image
Com isso, os kernels que instalamos são listados. Vamos imaginar que nossa versão problemática é a 4.10.0-28 que aparece nessa lista, mas que com a versão anterior 4.10.0-2-genérica o driver funcionou corretamente, uma vez que vamos deletar:
sudo apt-get remove --purge linux-image-4.10.0-28-generic linux-image-extra-4.10.0-28-generic
Então fazemos o mesmo para cabeçalhos de kernel, procuramos e da lista eliminamos aqueles que correspondem ao kernel chato, para isso:
dpkg --get-selections | grep linux-headers sudo apt-get remove --purge linux-headers-4.10.0-28 linux-headers-4.10.0-28-generic sudo update-grub2
Finalmente diga ao GRUB para inicializar o sistema usando a versão visualização do kernel que não deu problemas:
sudo nano /etc/default/grup
Dentro desse arquivo, altere a linha GRUB_DEFAULT = 0 para GRUB_DEFAULT = salvo. Em seguida, vá para o final do arquivo e adicione outra nova linha que contenha GRUB_SAVEDEFAULT = true. Salve as alterações e saia. Agora, atualizamos novamente para que as alterações tenham efeito:
sudo update-grub2
Reinicie e vá… Agora tudo deve funcionar. Obviamente isso só é válido para distros que possuem vários kernels disponíveis, se você tiver apenas um você não poderá fazer isso, é lógico ... Por isso é sempre bom não descartar os kernels antigos após as atualizações, eles podem servir como um backup a qualquer momento.
Isso evitará que você baixe, configure e compile um novo kernel manualmente para instalar em sua distro. Não se esqueça de deixar seus comentários com dúvidas ou casos específicos em que você teve problemas após atualizar para um novo kernel ...