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/tty0
jego brak, i nie mogę mknod
tego urządzenia u gościa, ponieważ dostaję odmowę dostępu, nawet gdy robię to jako root.
źródło
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!
/tmp
jako dodatkowy system plików w konfiguracji gościa, który przechodzi do/tmp
hosta.xhost +
w oknie terminala.DISPLAY=:0 Xephyr :2 -screen 1024x768 -dpi 96 &
DISPLAY=:2 /etc/X11/xinit/Xsession
wewnątrz gościa (zastępując oba
2
s 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).
źródło