Szybki X dla gościa LXC na localhost?

12

Jak mogę efektywnie uruchamiać aplikacje X w kontenerze LXC?

ssh -Y guest

jest zbyt wolny - nie ma akceleracji grafiki ssh -Y- wszystko musi poruszać się po sieci wirtualnej przy użyciu tradycyjnego protokołu X11.

Możliwość kopiowania i wklejania między aplikacjami hosta i gości jest pożądana, ale nie niezbędna. Uruchomienie dwóch serwerów X, jednego dla hosta i jednego dla gościa, jest (dla moich celów) niezbędne.

Nie mogę uruchomić natywnego Xorga z poziomu gościa, ponieważ narzeka na /dev/tty0jego brak, i nie mogę mknodtego urządzenia u gościa, ponieważ dostaję odmowę dostępu, nawet gdy robię to jako root.

Robin Green
źródło

Odpowiedzi:

12

Możesz wypróbować xpra lub NX, VNC itp. Spójrz także na VirtualGL, jeśli chcesz przyspieszenia GL.

Jeśli możesz udostępnić katalog hostowi, możesz użyć mmap z xpra (określając ścieżkę do pliku mmap), co zapewnia bardzo znaczną poprawę wydajności.

Totaam
źródło
Czy ktoś może podać bezpieczny przykład korzystania z Xpra i Xephyr z LXC?
baptx
3

UWAGA : To podejście jest trochę włamaniem. Nie obsługuje także kopiowania i wklejania między gospodarzem a gościem - i jest całkowicie niepewny!

  1. Dodaj /tmpjako dodatkowy system plików w konfiguracji gościa, który przechodzi do /tmphosta.
  2. Upewnij się, że Twój serwer X nie jest skonfigurowany do przyjmowania jakichkolwiek połączeń sieciowych, ponieważ następny krok wyłącza zabezpieczenia X.
  3. Wpisz xhost +w oknie terminala.
  4. Uruchom gościa LXC
  5. Zaloguj się jako gość zwykły w gościu (tzn. Nie jako root) i wpisz

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

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

wewnątrz gościa (zastępując oba 2s numerem ekranu, który ma być używany, jeśli używasz go do łączenia się z wieloma maszynami wirtualnymi LXC.) Dostosuj parametry rozdzielczości ( -screen) i DPI ( -dpi), aby dopasować.

W ten sposób konfigurowane są połączenia „proxy” z zagnieżdżonym serwerem X Xephyr X uruchomionym na gościu (które używają zarówno gniazd domeny UNIX, jak i rozszerzenia MIT-SHM) oraz innym połączeniem Xephyr z serwerem X hosta (który korzysta z gniazd domeny UNIX , ale nie mogę, o ile mogę ustalić, używać MIT-SHM, ze względu na konstrukcję LXC). To wydaje się być najszybszą możliwą konfiguracją z gościem LXC, przynajmniej ze sterownikiem open source dla mojego sprzętu (NVIDIA).

Robin Green
źródło
Czy istnieje bezpieczny sposób używania Xephyr z LXC? Izolacja X11 z Xephyr jest obsługiwana przez firejail, więc myślę, że możemy to zrobić również poprawnie w LXC.
baptx