#gpu #vulkan #lxc #lxd
#графический процессор #vulkan #lxc #lxd
Вопрос:
Я использую ubuntu 18: 04 с контейнером steam lxc / lxd. Он отлично работает, я следовал этому руководству и внес некоторые изменения в сетевые материалы.
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 работает просто отлично, игры запускаются быстро, поэтому он должен найти мой единственный графический процессор в системе. Должен ли я отдельно включать vulkan для контейнера?
У хоста также нет проблем с vulkan smoketest:
user@host:~$ vulkan-smoketest
7223 presents in 5.00039 seconds (FPS: 1444.49)
Ответ №1:
Это руководство вручную добавляет необходимые разделяемые библиотеки OpenGL в контейнер LXD и при этом не добавляет разделяемые библиотеки Vulkan.
LXD теперь поддерживает среду выполнения контейнера NVidia (предоставляемую NVidia), поэтому вы можете использовать ее вместо этого. Следуйте более свежему руководству по адресу https://blog.simos.info/running-x11-software-in-lxd-containers /
Ответ №2:
Пользователь reddit по имени zakk написал решение в комментариях https://blog.simos.info/running-steam-in-a-lxd-system-container /.
После выполнения некоторых трассировок я заметил, что не удается открыть файлы в / dev / dri, контейнер имеет неправильные разрешения; на хосте у этих файлов есть набор ACL, который позволяет текущему пользователю получать к ним доступ, контейнер — нет. Итак, чтобы исправить: в контейнере запустите
sudo setfacl -m "u:ubuntu:rw-" /dev/dri/*
Вы должны выполнять команду setfacl каждый раз, когда запускаете lxc.