|
|
51CTO旗下网站
|
|
移动端

如何使得支持OpenGL的Flatpak应用和游戏在专有Nvidia图形驱动下工作

一些支持 OpenGL 并打包为 Flatpak 的应用和游戏无法使用专有 Nvidia 驱动启动。本文将介绍如何在不安装开源驱动(Nouveau)的情况下启动这些 Flatpak 应用或游戏。

作者:Logix来源:Linux中国|2019-03-14 13:50

https://s4.51cto.com/oss/201903/14/3d36073d680f722534acce7b7042c83a.png-wh_651x-s_3319679241.png

一些支持 OpenGL 并打包为 Flatpak 的应用和游戏无法使用专有 Nvidia 驱动启动。本文将介绍如何在不安装开源驱动(Nouveau)的情况下启动这些 Flatpak 应用或游戏。

这有个例子。我在我的 Ubuntu 18.04 桌面上使用专有的 Nvidia 驱动程序 (nvidia-driver-390),当我尝试启动以 Flatpak 形式安装的***版本 Krita 4.1 (构建了 OpenGL 支持)时,显示了如下错误:

  1. $ /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=krita --file-forwarding org.kde.krita
  2. Gtk-Message: Failed to load module "canberra-gtk-module"
  3. Gtk-Message: Failed to load module "canberra-gtk-module"
  4. libGL error: No matching fbConfigs or visuals found
  5. libGL error: failed to load driver: swrast
  6. 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 等):

  1. apt-cache policy NVIDIA-PACKAGE-NAME

这里的 “NVIDIA-PACKAGE-NAME” 是 “软件与更新” 中列出的 Nvidia 驱动包名称。例如,要查看 “nvidia-driver-390” 包的确切安装版本,请运行以下命令:

  1. $ apt-cache policy nvidia-driver-390
  2. nvidia-driver-390:
  3. Installed: 390.48-0ubuntu3
  4. Candidate: 390.48-0ubuntu3
  5. Version table:
  6. *** 390.48-0ubuntu3 500
  7. 500 http://ro.archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages
  8. 100 /var/lib/dpkg/status

在这个命令的输出中,查找 “Installed” 部分并记下版本号(不包括 “-0ubuntu3” 之类)。现在我们知道了已安装的 Nvidia 驱动的确切版本(我例子中的是 “390.48”)。记住它,因为下一步我们需要。

3、***,你可以从 FlatHub 为你已安装的专有 Nvidia 图形驱动安装运行时环境。

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

  1. flatpak remote-ls flathub | grep nvidia

幸运地是 FlatHub 上提供这个 Nvidia 驱动的运行时环境。你现在可以使用以下命令继续安装运行时:

针对 64 位系统:

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

将 “MAJORVERSION” 替换为 Nvidia 驱动的主要版本(在上面的示例中为 390),将 “MINORVERSION” 替换为次要版本(步骤2,我例子中的为 48)。

例如,要为 Nvidia 图形驱动版本 390.48 安装运行时,你必须使用以下命令:

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

对于 32 位系统(或能够在 64 位上运行 32 位的应用或游戏),使用以下命令安装 32 位运行时:

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

再说一次,将 “MAJORVERSION” 替换为 Nvidia 驱动的主要版本(在上面的示例中为 390),将 “MINORVERSION” 替换为次要版本(步骤2,我例子中的为 48)。

比如,要为 Nvidia 图形驱动版本 390.48 安装 32 位运行时,你需要使用以下命令:

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

以上就是你要运行支持 OpenGL 的 Flatpak 的应用或游戏的方法。

【编辑推荐】

  1. 在Ubuntu下如何开发配置OpenGL环境?
  2. 英特尔开源OpenGL驱动快于苹果驱动
  3. Snap、Flatpak 这种通吃所有发行版的打包方式真的有用吗?
  4. 真有用?Snap和Flatpak通吃所有发行版的打包方式
  5. 三款新星Linux解决方案:Snappy、Flatpak和AppImage
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

Visual Studio 2005+SQL Server 2005数据库应用系

本书主要介绍采用Visual Studio 2005的C#语言为前台,SQL Server 2005数据库为后台的数据库系统开发技术。 全书分为15章,内容包括走进.NE...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客