Швидкий X для гостя LXC на localhost?


12

Як я можу ефективно запускати програми X усередині контейнера LXC?

ssh -Y guest

занадто повільно - з цим немає прискорення графіки ssh -Y- все має подорожувати по віртуальній мережі за допомогою традиційного протоколу X11.

Можливість копіювати та вставляти між хост-додатками та гостьовими програмами бажано, але не є важливим. Запуск двох серверів X, одного для хоста та одного для гостя, є (для моїх цілей) важливим.

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

Відповіді:


12

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

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


Чи може хтось поділитися захищеним прикладом того, як використовувати 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

всередині гостя (замінюючи обидва 2s номером екрана, який буде використано, якщо ви використовуєте це для підключення до декількох вітрин LXC.) Відрегулюйте параметри роздільної здатності ( -screen) та DPI ( -dpi) відповідно.

Для цього потрібно встановити "проксі" підключення до Xephyr вкладеного X-сервера, що працює в гості (які використовують як розетки домену UNIX, так і розширення MIT-SHM) та інше з'єднання Xephyr з вашим хост-сервером X (який використовує сокети домену UNIX , але не можу, наскільки я можу визначити, використовувати MIT-SHM, завдяки дизайну LXC). Здається, це найшвидша конфігурація, яка можлива для гостя LXC, принаймні, з драйвером з відкритим кодом для мого обладнання (nvidia).


Чи є безпечний спосіб використання Xephyr з LXC? Ізоляція X11 за допомогою Xephyr підтримується firejail, тому, мабуть, ми можемо це зробити належним чином і з LXC.
baptx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.