确保在 apt 中移除 Vulkan

确保在 apt 中移除 Vulkan

我已经安装了“vulkan mesa drivers”进行尝试,然后将其删除。 https://linuxconfig.org/improve-your-wine-gaming-on-linux-with-dxvk 一切都很好,但是 Firefox 无法再启动。(Thunderbird 也一样)所有其他软件均不受影响(游戏等)。错误消息:

ATTENTION: default value of option mesa_glthread overridden by environment.
Exiting due to channel error.

有人能帮我了解发生了什么吗?我可以降级到 Firefox 75,但它无法使用我的配置文件。重新安装最新版本没有帮助。我终于安装了 Flatpack 版本,并手动将我的旧配置文件复制到 Flat 版本。但这只是临时解决方案,我想恢复正常情况。我还需要恢复 Thunderbird。

答案1

您链接到的页面建议使用 oibaf ppa。我假设您已经习惯ppa-purge oibaf将其删除。

我还假设您拥有 AMD 或 Intel GPU,而不是 NVIDIA;因为 NVIDIA 覆盖了大多数 Mesa 库。

如果您拥有 NVIDIA,请重新安装 NV 驱动程序;因为在您安装时,Mesa 驱动程序可能会被放置在 NV 驱动程序之上;NV 不会喜欢这样。

解决方案:

确保在 apt 中移除 Vulkan

sudo apt remove --purge libvulkan1 libvulkan-dev vulkan-utils mesa-vulkan-drivers

这 4 个包都不应该安装。

安装 Vulkan

以下命令就足够了:

sudo apt install mesa-vulkan-drivers

拥有 Vulkan 驱动程序并不是一件坏事。但是,如果您不想安装 Vulkan,请继续阅读。

重新安装 Mesa 的 OpenGL

sudo apt install --reinstall libgl1-mesa-glx libgl1-mesa-dri libglu1-mesa libglx-mesa0 xserver-xorg-video-radeon xserver-xorg-video-intel xserver-xorg-video-all

删除任何剩余的 Vulkan

删除 vulkan 后,以下文件夹和文件不应存在。如果存在,请删除它们(或备份它们):

  • 〜/ .local/共享/vulkan /
  • /etc/vulkan/
  • /usr/共享/vulkan/
  • /usr/local/共享/vulkan/
  • /usr/lib/x86_64-linux-gnu/libvulkan.so
  • /usr/lib/x86_64-linux-gnu/libvulkan.so.* (注意通配符)
  • /usr/lib/x86_64-linux-gnu/libvulkan_intel.so
  • /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so
  • /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
  • /usr/share/lintian/overrides/mesa-vulkan-drivers/

如果一切失败,请调试

分析输出LD_DEBUG=libs可能会帮助您通过查看正在加载的可疑库来找到罪魁祸首:

LD_DEBUG=libs firefox 2> output_to_analyze

例如,我已经安装了 Vulkan,所以我的显示为:

      8323: find library=libvulkan.so.1 [0]; searching
      8323:  search cache=/etc/ld.so.cache
      8323:   trying file=/usr/lib/x86_64-linux-gnu/libvulkan.so.1
...
unrelated stuff
...
      8323: calling init: /usr/lib/x86_64-linux-gnu/libvulkan.so.1

即使 Vulkan 根本不是罪魁祸首,此环境变量的输出也可能有助于您找出问题所在。例如,如果它在加载特定库后立即崩溃,那就非常可疑了。

如果您可以启动虚拟机或使用另一台计算机将您的机器的输出与健康机器的输出进行比较;它也可能帮助您找到问题。

另外glxinfo | grep string:应该提示一下正在使用真正的 Mesa GL 驱动程序,例如我的是:

server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 6800 XT (sienna_cichlid, LLVM 14.0.1, DRM 3.46, 5.18.11+)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.0.5 - kisak-mesa PPA
OpenGL core profile shading language version string: 4.60
OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.0.5 - kisak-mesa PPA
OpenGL shading language version string: 4.60
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.0.5 - kisak-mesa PPA
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

我正在使用 Kisak 的 PPA,这个输出告诉我确实正在使用 Mesa,并AMD Radeon RX 6800 XT (sienna_cichlid, LLVM 14.0.1, DRM 3.46, 5.18.11+)告诉我它是硬件加速的(如果它说llvmpipe或者swrast那么你有一个巨大的配置错误需要修复)

欢呼并祝你好运。

答案2

问题不在于 Vulkan 的驱动程序,而在于 oibaf PPA。所以不要使用此 PPA。首先,删除 PPA:

sudo ppa-purge ppa:oibaf/graphics-drivers 

但它不会删除 oibaf 软件包。要做到这一点,请列出残留软件包:

 apt list | grep oibaf

然后通过以下方式手动重新安装所有列出的包apt 安装强制版本(“=版本“在软件包名称后面),指的是你的 ubuntu 版本https://packages.ubuntu.com/focal-updates/allpackages

以目前的 ubntu20.04 为例:

sudo apt install libdrm-common=2.4.107-8ubuntu1~20.04.2 libdrm-intel1=2.4.107-8ubuntu1~20.04.2 libdrm2=2.4.107-8ubuntu1~20.04.2 libegl-mesa0=21.2.6-0ubuntu0.1~20.04.2 libgbm1=21.2.6-0ubuntu0.1~20.04.2 libgl1-mesa-dri=21.2.6-0ubuntu0.1~20.04.2 libglapi-mesa=21.2.6-0ubuntu0.1~20.04.2 libglx-mesa0=21.2.6-0ubuntu0.1~20.04.2 libva-drm2=2.7.0-2 libva-wayland2=2.7.0-2 libva-x11-2=2.7.0-2 libva2=2.7.0-2

如果某些列出的包在你的 Ubuntu 版本中不存在,只需清除它,例如:

sudo apt purge libllvm14*

现在系统已恢复到之前的状态并正常运行。

相关内容