Fast X для гостя LXC на локальном хосте?

12

Как эффективно запустить X-приложения в контейнере LXC?

ssh -Y guest

слишком медленный - нет графического ускорения ssh -Y- все должно путешествовать по виртуальной сети с традиционным протоколом X11.

Возможность копировать-вставлять между хост-и гостевыми приложениями желательна, но не обязательна. Запуск двух X-серверов, один для хоста и один для гостя, (для моих целей) является необходимым.

Я не могу запустить собственный Xorg изнутри гостя, потому что он жалуется /dev/tty0на отсутствие, и я не могу запустить это mknodустройство в госте, потому что я получаю отказ в разрешении, даже когда выполняю его как root.

Робин Грин
источник

Ответы:

12

Вы можете попробовать xpra или NX, VNC и т. Д. Также обратите внимание на VirtualGL, если вы хотите ускорение GL.

Если вы можете поделиться каталогом с хостом, вы можете использовать mmap с xpra (указав путь к файлу mmap), что обеспечивает очень значительное улучшение производительности.

totaam
источник
Может кто-нибудь поделиться безопасным примером того, как использовать Xpra и Xephyr с LXC?
baptx
3

ПРИМЕЧАНИЕ : этот подход немного взломан. Он также не поддерживает копирование и вставку между хостом и гостем - и абсолютно небезопасен!

  1. Добавьте /tmpв качестве дополнительной файловой системы гостевую конфигурацию, которая проходит через /tmpхост.
  2. Убедитесь, что ваш X-сервер не настроен на прием сетевых подключений любого типа, поскольку следующий шаг отключает X-безопасность.
  3. Введите xhost +в окне терминала.
  4. Запустить гостя LXC
  5. Войдите в систему в качестве обычного пользователя в гостевой системе (то есть не в качестве пользователя root) и введите

DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &

DISPLAY=:2 /etc/X11/xinit/Xsession

внутри гостевой системы (заменив оба параметра 2на номер экрана, который следует использовать, если вы используете его для подключения к нескольким виртуальным машинам LXC.) Настройте параметры resolution ( -screen) и DPI ( -dpi) в соответствии с требованиями.

Это устанавливает «прокси» соединения с вложенным X-сервером Xephyr, работающим в гостевой системе (которые используют как доменные сокеты UNIX, и расширение MIT-SHM), так и другим соединением Xephyr с вашим X-сервером хоста (который использует доменные сокеты UNIX). , но не могу, насколько я могу определить, использовать MIT-SHM из-за конструкции LXC). Кажется, это самая быстрая конфигурация, возможная с гостем LXC, по крайней мере с драйвером с открытым исходным кодом для моего оборудования (nvidia).

Робин Грин
источник
Есть ли безопасный способ использовать Xephyr с LXC? Изоляция X11 с Xephyr поддерживается firejail, поэтому я думаю, что мы можем сделать это правильно и с LXC.
baptx