Alguns aplicativos e jogos desenvolvidos com suporte OpenGL e empacotados como Flatpak falham ao iniciar com drivers Nvidia proprietários. Este artigo explica como fazer com que esses aplicativos Flatpak ou jogos os iniciem, sem instalar os drivers de código aberto (Nouveau).
Aqui está um exemplo. Estou usando os drivers proprietários da Nvidia em meu desktop Ubuntu 18.04 (nvidia-driver-390
) e quando tento iniciar o Krita 4.1 mais recente instalado como Flatpak (que é construído com suporte a OpenGL), os seguintes erros são exibidos:
$ /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=krita --file-forwarding org.kde.krita
Gtk-Message: Failed to load module "canberra-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Could not initialize GLX
Jogos Winepak (jogos do Windows incluídos no Wine como pacotes Flatpak) também parecem afetados por este problema no Flatpak, que ainda está aberto desde 2016.
Para consertar jogos e aplicativos Flatpak que não iniciam ao usar OpenGL com drivers de gráficos Nvidia proprietários, você precisará instalar um runtime para os drivers Nvidia proprietários instalados atualmente. Veja como fazer isso.
1. Adicione o repositório FlatHub se ainda não o fez. Você pode encontrar instruções exatas para a sua distribuição Linux aqui.
2. Agora você precisa descobrir a versão exata dos drivers proprietários da Nvidia instalados em seu sistema.
Para fazer isso no Ubuntu, abra Software & Updates
, mude para a guia Additional Drivers
e anote o nome do pacote de driver da Nvidia.
Por exemplo, é nvidia-driver-390
no meu caso, como você pode ver aqui:
Isso não é tudo. Nós apenas descobrimos a versão principal dos drivers da Nvidia, mas também precisaremos saber a versão secundária. Para obter a versão exata do driver da Nvidia, que precisaremos na próxima etapa, execute este comando (deve funcionar em qualquer distribuição Linux baseada em Debian, como Ubuntu, Linux Mint e assim por diante):
apt-cache policy NOME-DO-PACOTE-NVIDIA
Onde NOME-DO-PACOTE-NVIDIA é o nome do pacote de drivers Nvidia listado em Software & Updates
. Por exemplo, para ver a versão exata instalada do pacote nvidia-driver-390
, execute este comando:
$ apt-cache policy nvidia-driver-390
nvidia-driver-390:
Installed: 390.48-0ubuntu3
Candidate: 390.48-0ubuntu3
Version table:
***390.48-0ubuntu3 500
500 http://ro.archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages
100 /var/lib/dpkg/status
Na saída deste comando, procure a seção Installed
e observe os números da versão (excluindo -0ubuntu3
e qualquer coisa semelhante). Agora sabemos a versão exata dos drivers Nvidia instalados (390.48
no meu exemplo). Lembre-se disso porque precisaremos disso na próxima etapa.
3. E, finalmente, você pode instalar o tempo de execução Nvidia para seus drivers gráficos proprietários Nvidia instalados, a partir de FlatHub
Para listar todos os pacotes de tempo de execução da Nvidia disponíveis no FlatHub, você pode usar este comando:
flatpak remote-ls flathub | grep nvidia
Esperançosamente, o tempo de execução dos drivers da Nvidia instalados está disponível no FlatHub. Agora você pode prosseguir com a instalação do runtime usando este comando:
flatpak install flathub org.freedesktop.Platform.GL.nvidia-VERSAOPRINCIPAL-VERSAOSECUNDARIA
Substitua VERSAOPRINCIPAL pela versão principal do driver da Nvidia instalada no seu computador (390 no meu exemplo acima) e VERSAOSECUNDARIA com a versão secundária (48 no meu exemplo da etapa 2).
Por exemplo, para instalar o runtime do driver gráfico Nvidia versão 390.48, você teria que usar este comando:
flatpak install flathub org.freedesktop.Platform.GL.nvidia-390-48
flatpak install flathub org.freedesktop.Platform.GL32.nvidia-VERSAOPRINCIPAL-VERSAOSECUNDARIA
Mais uma vez, substitua VERSAOPRINCIPAL pela versão principal do driver da Nvidia instalada em seu computador (390 no meu exemplo acima) e VERSAOSECUNDARIA pela versão secundária (48 no meu exemplo da etapa 2).
Por exemplo, para instalar o tempo de execução de 32 bits para o driver gráfico Nvidia versão 390.48, você teria que usar este comando:
flatpak install flathub org.freedesktop.Platform.GL32.nvidia-390-48
Isso é tudo que você precisa fazer para executar aplicativos ou jogos empacotados como Flatpak que são desenvolvidos com OpenGL.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Get Flatpak Apps And Games Built With OpenGL To Work With Proprietary Nvidia Graphics Drivers