Depois de atualizar o kernel 5.15 para o 5.16, o Fedora passou a utilizar o driver nouveau. Veja nessa dica como utilizar o driver proprietário novamente.
Atualização: bug resolvido na versão 510.47.03 do driver.
A relação dos drivers NVIDIA com o Linux, sempre foi caótica. Volta e meia, quando há alguma atualização de kernel, o driver proprietário quebra e na próxima reinicialização, aparece o bendito nouveau, trabalhando a todo vapor!
Não vou entrar na questão do conflito que há entre o nouveau e a nvidia, pois este assunto é antigo e muito mal esclarecido, ainda.
No momento, vou focar na resolução do problema que envolve a versão 5.16 do kernel linux com o Fedora 35, e a versão 495.46 do driver nvidia, que é a que estou utilizando nesse exato momento.
Se você utiliza uma versão mais antiga do driver, pode ser que essa dica resolva o seu problema também, embora eu só tenha testado com a versão mencionada.
Corrigindo o driver nvidia
Para voltar a ter o driver funcionando na versão 5.16, precisaremos editar o código fonte do módulo nvidia para remover algumas linhas de código.
Nessa dica, estou utilizando o kernel 5.16.5. Se estiver usando uma versão mais recente do kernel, atente-se em trocar o 5.16.5 pela versão utilizada.
Antes de prosseguir, logue-se como root no terminal, pois será necessário executar todos os comandos abaixo como superusuário.
Crie uma pasta temporária:
|
|
Copie o módulo nvidia compactado para a pasta recém criada:
|
|
Entre na pasta temporária:
|
|
Descompacte o módulo nvidia:
|
|
Agora vem a parte divertida: precisamos remover a constante MIGRATE_PFN_LOCKED do arquivo kernel/nvidia-uvm/uvm_migrate_pageable.c.
Essa constante foi removida da versão 5.16 do kernel, e é o real motivo pelo qual o akmod falha ao compilar o módulo nvidia para essa versão.
Para remover, podemos utilizar o comando sed:
|
|
Após essa alteração, podemos compactar novamente o módulo:
|
|
Mova o arquivo recém compactado para a pasta do akmod:
|
|
Agora, podemos recompilar os módulos nvidia para o kernel 5.16:
|
|
Depois que compilar, certifique-se que os arquivos .ko do módulo foram criados para o kernel 5.16:
|
|
O resultado deve ser o mesmo que:
|
|
Após isso, basta reinicializar o sistema que o driver nvidia será carregado normalmente.
Créditos: reddit.com