Blog Linux Avante

Como fazer aplicativos e jogos Flatpak desenvolvidos com OpenGL funcionar com drivers gráficos proprietários da Nvidia

29 de junho de 2018

Flatpak

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.

  • Esta etapa depende da distribuição Linux que você está usando e não posso cobrir todos os casos. As instruções abaixo são orientadas para o Ubuntu (e versões do Ubuntu), mas espero que você possa descobrir por si mesmo a versão dos drivers da Nvidia instalada 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:

Guia de drivers adicionais nvidia proprietária Ubuntu

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):

Comandos para usar no terminal

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:

Comandos para usar no terminal

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:

  • Para sistemas de 64 bits:

Comandos para usar no terminal

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:

Comandos para usar no terminal

flatpak install flathub org.freedesktop.Platform.GL.nvidia-390-48

  • Para sistemas de 32 bits (ou para poder executar aplicativos ou jogos de 32 bits em 64 bits), instale o tempo de execução de 32 bits usando:

Comandos para usar no terminal

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:

Comandos para usar no terminal

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.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda