一些支持OpenGL并打包为Flatpak的应用程序和游戏无法使用专有的Nvidia驱动程序启动。本文将解释如何在不安装开源驱动程序(Nouveau)的情况下启动这些Flatpak应用程序或游戏。这是一个例子。我在我的Ubuntu18.04桌面上使用专有的Nvidia驱动程序(nvidia-driver-390),当我尝试启动作为Flatpak安装的最新版本的Krita4.1(内置OpenGL支持)时,它显示以下错误:$/usr/bin/flatpakrun--branch=stable--arch=x86_64--command=krita--file-forwardingorg.kde.kritaGtk-Message:无法加载模块“canberra-gtk-module”Gtk-Message:Failedtoloadmodule"canberra-gtk-module"libGL错误:找不到匹配的fbConfigs或视觉对象这个问题自2016年以来一直存在。要修复使用OpenGL和专有Nvidia图形驱动程序时无法启动的Flatpak游戏和应用程序,您需要为已安装的专有驱动程序安装运行时环境。这是步骤。1.如果您还没有添加FlatHub仓库,请添加。您可以在此处找到适用于您的Linux发行版的说明。2.现在,您需要确定系统上安装的专有Nvidia驱动程序的确切版本。此步骤取决于您使用的Linux发行版,我无法涵盖所有??情况。下面的说明适用于Ubuntu(和Ubuntu版本),但希望您可以自己弄清楚您的系统上安装了哪个Nvidia驱动程序版本。要在Ubuntu中执行此操作,请打开“软件和更新”,切换到“其他驱动程序”选项卡并记下Nvidia驱动程序包的名称。例如,你可以看到我的是“nvidia-driver-390”:还没有完成。我们刚刚找到了Nvidia驱动程序的主要版本,但我们还需要知道次要版本。要获得下一步所需的确切Nvidia驱动程序版本,请运行此命令(应该适用于任何基于Debian的Linux发行版,如Ubuntu、LinuxMint等):apt-cachepolicyNVIDIA-PACKAGE-NAME"NVIDIA-PACKAGE-NAME"是软件和更新中列出的Nvidia驱动程序包名称。例如,要查看“nvidia-driver-390”包的确切安装版本,请运行以下命令:$apt-cachepolicynvidia-driver-390nvidia-driver-390:Installed:390.48-0ubuntu3Candidate:390.48-0ubuntu3版本表:***390.48-0ubuntu3500500http://ro.archive.ubuntu.com/ubuntubionic/restrictedamd64Packages100/var/lib/dpkg/status在此命令的输出中,查找“已安装"部分和注意版本号(不包括“-0ubuntu3”等)。现在我们知道安装的Nvidia驱动程序的确切版本(在我的示例中为“390.48”)。记住它,因为我们在下一步中需要它。3.最后,您可以从FlatHub为您安装的专有Nvidia图形驱动程序安装运行时环境。要列出FlatHub上所有可用的Nvidia运行时包,您可以使用以下命令:flatpakremote-lsflathub|grepnvidia幸运的是,这个Nvidia驱动的运行时环境在FlatHub上可用。您现在可以使用以下命令继续安装运行时:对于64位系统:flatpakinstallflathuborg.freedesktop.Platform.GL.nvidia-MAJORVERSION-MINORVERSION将“MAJORVERSION”替换为Nvidia驱动程序的主要版本(在上面的示例是390),将“MINORVERSION”替换为次要版本(在我的示例中为步骤2、48)。例如,要为Nvidia图形驱动程序版本390.48安装运行时,必须使用以下命令:flatpakinstallflathuborg.freedesktop.Platform.GL.nvidia-390-48for32-bitsystems(or32-bitcapableofrunning在64位应用程序或游戏上),使用以下命令安装32位运行时:flatpakinstallflathuborg.freedesktop.Platform.GL32.nvidia-MAJORVERSION-MINORVERSION(在上面的示例中是390),将“MINORVERSION”替换为次要版本(在我的示例中为步骤2、48)。例如安装Nvidia显卡驱动版本390.48的32位运行时,需要使用如下命令:运行支持OpenGL方法的Flatpak。
