Linux中國

如何使得支持 OpenGL 的 Flatpak 應用和遊戲在專有 Nvidia 圖形驅動下工作

這有個例子。我在我的 Ubuntu 18.04 桌面上使用專有的 Nvidia 驅動程序 (nvidia-driver-390),當我嘗試啟動以 Flatpak 形式安裝的最新版本 Krita 4.1 (構建了 OpenGL 支持)時,顯示了如下錯誤:

$ /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

Winepak 遊戲(以 Flatpak 方式打包的綁定了 Wine 的 Windows 遊戲)似乎也受到了這個問題的影響,這個問題從 2016 年出現至今。

要修復使用 OpenGL 和專有 Nvidia 圖形驅動時無法啟動的 Flatpak 遊戲和應用的問題,你需要為已安裝的專有驅動安裝一個運行時環境。以下是步驟。

1、如果尚未添加 FlatHub 倉庫,請添加它。你可以在此處找到針對 Linux 發行版的說明。

2、現在,你需要確定系統上安裝的專有 Nvidia 驅動的確切版本。

這一步取決於你使用的 Linux 發行版,我無法涵蓋所有​​情況。下面的說明是面向 Ubuntu(以及 Ubuntu 風格的版本),但希望你可以自己弄清楚系統上安裝的 Nvidia 驅動版本。

要在 Ubuntu 中執行此操作,請打開 「軟體與更新」,切換到 「附加驅動」 選項卡並記下 Nvidia 驅動包的名稱。

比如,你可以看到我的是 「nvidia-driver-390」:

這裡還沒完成。我們只是找到了 Nvidia 驅動的主要版本,但我們還需要知道次要版本。要獲得我們下一步所需的確切 Nvidia 驅動版本,請運行此命令(應該適用於任何基於 Debian 的 Linux 發行版,如 Ubuntu、Linux Mint 等):

apt-cache policy NVIDIA-PACKAGE-NAME

這裡的 「NVIDIA-PACKAGE-NAME」 是 「軟體與更新」 中列出的 Nvidia 驅動包名稱。例如,要查看 「nvidia-driver-390」 包的確切安裝版本,請運行以下命令:

$ 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

在這個命令的輸出中,查找 「Installed」 部分並記下版本號(不包括 「-0ubuntu3」 之類)。現在我們知道了已安裝的 Nvidia 驅動的確切版本(我例子中的是 「390.48」)。記住它,因為下一步我們需要。

3、最後,你可以從 FlatHub 為你已安裝的專有 Nvidia 圖形驅動安裝運行時環境。

要列出 FlatHub 上所有可用的 Nvidia 運行時包,你可以使用以下命令:

flatpak remote-ls flathub | grep nvidia

幸運地是 FlatHub 上提供這個 Nvidia 驅動的運行時環境。你現在可以使用以下命令繼續安裝運行時:

針對 64 位系統:

flatpak install flathub org.freedesktop.Platform.GL.nvidia-MAJORVERSION-MINORVERSION

將 「MAJORVERSION」 替換為 Nvidia 驅動的主要版本(在上面的示例中為 390),將 「MINORVERSION」 替換為次要版本(步驟2,我例子中的為 48)。

例如,要為 Nvidia 圖形驅動版本 390.48 安裝運行時,你必須使用以下命令:

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

對於 32 位系統(或能夠在 64 位上運行 32 位的應用或遊戲),使用以下命令安裝 32 位運行時:

flatpak install flathub org.freedesktop.Platform.GL32.nvidia-MAJORVERSION-MINORVERSION

再說一次,將 「MAJORVERSION」 替換為 Nvidia 驅動的主要版本(在上面的示例中為 390),將 「MINORVERSION」 替換為次要版本(步驟2,我例子中的為 48)。

比如,要為 Nvidia 圖形驅動版本 390.48 安裝 32 位運行時,你需要使用以下命令:

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

以上就是你要運行支持 OpenGL 的 Flatpak 的應用或遊戲的方法。

via: https://www.linuxuprising.com/2018/06/how-to-get-flatpak-apps-and-games-built.html

作者:Logix 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國