如何让使用 OpenGL 构建的 Flatpak 应用程序和游戏与专有的 Nvidia 图形驱动程序一起工作

一些使用 OpenGL 支持构建并打包为 Flatpak 的应用程序和游戏无法使用专有的 Nvidia 驱动程序启动。 本文解释了如何在不安装开源驱动程序 (Nouveau) 的情况下启动此类 Flatpak 应用程序或游戏。

这是一个例子。 我在我的 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 游戏(与 Wine 作为 Flatpak 软件包捆绑的 Windows 游戏)似乎也受到此 Flatpak 问题的影响,该问题自 2016 年以来仍然开放。

要修复在将 OpenGL 与专有 Nvidia 图形驱动程序一起使用时无法启动的 Flatpak 游戏和应用程序,您需要为当前安装的专有 Nvidia 驱动程序安装运行时。 这是如何做到这一点的。

1. 如果您还没有添加 FlatHub 存储库,请添加。 您可以在此处找到有关您的 Linux 发行版的确切说明。

2. 现在您需要确定系统上安装的专有 Nvidia 驱动程序的确切版本。

这一步取决于您使用的 Linux 发行版,我无法涵盖所有​​情况。 下面的说明是面向 Ubuntu(和 Ubuntu 风格)的,但希望您能自己弄清楚系统上安装的 Nvidia 驱动程序版本。

要在 Ubuntu 中执行此操作,请打开
Software & Updates

, 切换到
Additional Drivers

选项卡并记下 Nvidia 驱动程序包的名称。

例如,这是
nvidia-driver-390

就我而言,您可以在此处看到: