NixOS + NVIDIA antiga: como sobreviver ao driver 595 (GTX 750 Ti / Maxwell)
Recentemente enfrentei um problema ao atualizar meu sistema
NixOS: após atualizar os flakes, o driver da
NVIDIA foi atualizado automaticamente da versão
580.142 para
595.58.03, e minha GPU (GTX 750 Ti, arquitetura Maxwell) simplesmente parou de funcionar.
Ao tentar carregar o módulo manualmente:
modprobe nvidia
Recebi o erro:
modprobe: ERROR: could not insert 'nvidia': No such device
Apesar disso, o sistema ainda apresentava vídeo normalmente usando
framebuffer em baixa resolução.
Causa do problema
A causa não é um erro de configuração, mas sim uma mudança recente da NVIDIA:
- A arquitetura Maxwell foi considerada "feature-complete"
- Drivers mais novos (como 595) não garantem mais suporte real
- O módulo carrega, mas não reconhece a GPU
Ou seja, o driver
existe, mas não contém mais suporte efetivo ao hardware.
Solução
A solução é usar a versão mais recente ainda compatível com a GPU que no meu caso é a
580.142.
No
NixOS, isso pode ser feito usando a função
mkDriver.
{ config, pkgs, ... }:
{
services.xserver.videoDrivers = [ "nvidia" ];
hardware.graphics.enable = true;
nixpkgs.config.nvidia.acceptLicense = true;
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
open = false;
nvidiaSettings = true;
# GPUs antigas não usam GSP
gsp.enable = false;
nvidiaPersistenced = true;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "580.142";
sha256_64bit = "sha256-IJFfzz/+icNVDPk7YKBKKFRTFQ2S4kaOGRGkNiBEdWM=";
settingsSha256 = "sha256-BnrIlj5AvXTfqg/qcBt2OS9bTDDZd3uhf5jqOtTMTQM=";
persistencedSha256 = "sha256-il403KPFAnDbB+dITnBGljhpsUPjZwmLjGt8iPKuBqw=";
};
};
}
De acordo com o site oficial, a última versão suportada de fato é a
580.142.
Observações importantes
1. GSP precisa ser desabilitado
GPUs antigas não possuem suporte a firmware GSP.
Sem isto:
gsp.enable = false;
o build falha com:
This version of NVIDIA driver does not provide a GSP firmware
2. Como descobrir os hashes
Use:
pkgs.lib.fakeSha256
e deixe o
Nix falhar. Ele mostrará o
hash correto para substituir.
Conclusão
Se você possui uma GPU mais antiga (como a
GTX 750 Ti), atualizar o
NixOS pode quebrar o driver
NVIDIA sem aviso claro.
A solução não é usar um driver
"legacy" antigo, mas sim fixar a versão mais recente ainda compatível com o seu hardware. No caso da arquitetura Maxwell, isso está na faixa da série
580.
A
Nvidia falou que ainda vai dar três anos de atualizações de segurança para essas GPUs, mas não vai haver novas versões. Temos até 2028 para usar
essas placas.
Referências
Outras dicas deste autor
Partições BTRFS Nativamente no Windows
Cuidado com nomes de arquivos no Linux
Como verificar senha no shell script
Servidor web simples sem instalar nada
Alterar resolução de tela pelo Xorg
Leitura recomendada
Modem SpeedStream 5200 pode ser um roteador
Instalar driver da Nvidia no Debian 5 Lenny Linux
Instalação manual dos drivers Broadcom B43 Wireless no Debian Squeeze
Compiz Debian 6 squeeze ATI Radeon HD
Configurando scroll do mouse no Slackware 10
Comentários
Nenhum comentário foi encontrado.