當前位置:
首頁 > 知識 > 如何使得支持OpenGL的Flatpak應用和遊戲在專有Nvidia驅動下工作

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

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

一些支持 OpenGL 並打包為 Flatpak 的應用和遊戲無法使用專有 Nvidia 驅動啟動。本文將介紹如何在不安裝開源驅動(Nouveau)的情況下啟動這些 Flatpak 應用或遊戲。

-- Logix

這有個例子。我在我的 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」:

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

這裡還沒完成。我們只是找到了 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技術 的精彩文章:

【每日安全資訊】2018年DDoS攻擊活動同比減少13%
開始使用 TaskBoard 吧,一款輕量級看板

TAG:Linux技術 |