如何解决vulkan 在 lxc / lxd 容器中不可用,但 opengl 是
我正在使用带有 lxc / lxd 蒸汽容器的 ubuntu 18:04。效果很好,我按照本教程对网络内容进行了一些更改。
https://blog.simos.info/running-steam-in-a-lxd-system-container/
Steam 适用于 opengl 游戏,但不适用于 vulkan 游戏。 lutris 也一样。
主机端:
===========
VULKAN INFO
===========
Vulkan Instance Version: 1.1.70
Instance Extensions:
====================
Instance Extensions count = 16
容器端:
ubuntu@steam:~$ vulkaninfo
===========
VULKAN INFO
===========
Vulkan Instance Version: 1.1.70
ERROR: setupLoaderTermPhysDevs: Failed to detect any valid GPUs in the current config
ERROR: setupLoaderTrampPhysDevs: Failed during dispatch call of 'vkEnumeratePhysicalDevices' to lower layers or loader to get count.
/build/vulkan-UL09PJ/vulkan-1.1.70+dfsg1/demos/vulkaninfo.c:2700: failed with VK_ERROR_INITIALIZATION_FAILED
OpenGL 工作得很好,游戏运行得很快,所以它必须在系统中找到我唯一的 gpu。我是否必须为容器单独启用 vulkan?
宿主在 vulkan 烟雾测试中也没有问题:
user@host:~$ vulkan-smoketest
7223 presents in 5.00039 seconds (FPS: 1444.49)
解决方法
该指南在 LXD 容器中手动添加了必要的 OpenGL 共享库,并且这样做不会添加 Vulkan 共享库。
LXD 现在支持 NVidia 容器运行时(由 NVidia 提供),因此您可以改用它。按照 https://blog.simos.info/running-x11-software-in-lxd-containers/
上的最新指南进行操作 ,一位名叫 zakk 的 reddit 用户在 https://blog.simos.info/running-steam-in-a-lxd-system-container/ 的评论中写了一个解决方案。
做了一些跟踪后,我注意到它无法打开文件 /dev/dri 容器权限错误;在主机上那些 文件有一个允许当前用户访问它们的 ACL 集, 容器没有。所以要修复:在容器中运行
sudo setfacl -m "u:ubuntu:rw-" /dev/dri/*
每次启动 lxc 时都必须执行 setfacl 命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。