Driver da Nvidia atravancando o progresso do Linux

Desde o kernel 5.14, lançado em 29 de agosto de 2021, existe o driver Direct Rendering Manager (DRM) genérico simpledrm, que usa o framebuffer fornecido pelo VBIOS/UEFI.

Em distribuições que ativem-no (CONFIG_DRM_SIMPLEDRM=y e CONFIG_SYSFB_SIMPLEFB=y), adicionar nomodeset nas opções de inicialização passa a ser verdadeiramente um modo de segurança gráfico, que funciona com o Wayland: driver DRM nativo da GPU — como i915, amdgpu, etc. — não é carregado e o simpledrm fornece um dispositivo DRM funcional[1]. LLVMpipe (Mesa) completa o time fornecendo OpenGL via software. Acaba beneficiando também o Xorg, pois seus drivers do espaço de usuário vesa e fbdev (há muito tempo com manutenção precária) não são mais requeridos.

[    0.599209] [drm] Initialized simpledrm 1.0.0 20200625 for simple-framebuffer.0 on minor 0
[    0.600186] simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device

https://fedoraproject.org/wiki/Changes/ReplaceFbdevDrivers

Fedora 36 adotou essa configuração. Desde lá, bugs foram consertados no kernel, Xorg, Plymouth, Kwin, GDM, tornando as coisas azeitadas o suficiente para, na versão 39, a limpeza ir adiante removendo os referidos drivers do Xorg:

https://fedoraproject.org/wiki/Changes/LegacyXorgDriverRemoval

Agora o problema: os módulos do driver da Nvidia, tanto o proprietário quanto este aqui[2] (não é o comunitário nouveau). A partir da versão 525, há alguma cooperação com o simpledrm, porém ainda problemática. Por causa disso, o Arch Linux, que distribui ambos no repositório oficial, não usa a nova configuração.

O kernel do Fedora tem um patch quebra-galho para não carregar o simpledrm quando a opção de inicialização nvidia-drm.modeset=1 for especificada. Para tanto, precisou reativar os obsoletos drivers fbdev no kernel (CONFIG_FB_EFI=y e CONFIG_FB_VESA=y).

Medida saneadora sendo prejudicada pela lentidão da Nvidia em tornar seu código compatível.


[1] Com BIOS, ao usar nomodeset, é necessário especificar também vga=<modo> ou vga=ask.
[2] Código fonte aberto disponibilizado a partir da versão 515 (Turing+).

Comentários

  1. No Linux Nvidia é atraso de vida. Colocar uma GPU AMD na minha estação de trabalho foi a melhor coisa que eu fiz, sossego total.

    ResponderExcluir

Postar um comentário