je v současné době možné nastavit kontejnery LXC s funkcemi X11? Těším se na nejlehčí dostupný kontejner X11 (vzhledem k paměti), hardwarová akcelerace je výhodou, ale není nezbytná.
Pokud to v současné době není možné nebo je snadno dostupné, je známo, jaké funkce je třeba ještě implementovat, aby je podporovaly?
Přijatá odpověď:
ano, je možné spustit kompletní desktopové prostředí X11 v kontejneru LXC.
Právě teď to dělám na Arch Linuxu. Neřeknu, že je to „lehké“, protože jsem nezašel tak daleko, abych se pokusil odstranit věci ze standardní instalace správce balíčků, ale mohu potvrdit, že to funguje velmi dobře.
Všechny ovladače jádra musíte nainstalovat na HOST i do kontejneru. Takové věci jako ovladač grafiky (používám nvidii). Musíte zpřístupnit uzly zařízení ve vývojáři uvnitř kontejneru tak, že nakonfigurujete soubor container.conf tak, aby to umožňoval. Poté se musíte ujistit, že tyto uzly zařízení jsou vytvořeny uvnitř kontejneru (tj. mknod).
Takže, abych odpověděl na vaši otázku:ANO, funguje to. Pokud mohu ještě pomoci nebo poskytnout další podrobnosti, dejte mi prosím vědět.
— poskytnuty další informace —
V mém kontejneru…
/etc/inittab se spustí v úrovni běhu 5 a spustí „slim“
Slim je nakonfigurován pro použití vt09:
# Path, X server and arguments (if needed)
# Note: -xauth $authfile is automatically appended
default_path /bin:/usr/bin:/usr/local/bin
default_xserver /usr/bin/X
xserver_arguments -nolisten tcp vt09
Na svém aktuálním vt nepoužívám druhý displej X, ale úplně jiný (mezi mnoha z nich mohu přepínat pomocí CTRL+ALT+Fn).
Pokud nepoužíváte slim, můžete použít konstrukci jako je tato ke spuštění X na jiném vt:
/usr/bin/startx -- :10 vt10
Tím se spustí X na displeji :10 a přepne se na vt10 (CTRL+ALT+F10).
Nemusí se shodovat, ale myslím, že je to lepší, pokud ano.
Ke zpřístupnění příslušných zařízení potřebujete konfiguraci kontejneru, jako je tento:
# XOrg Desktop
lxc.cgroup.devices.allow = c 4:10 rwm # /dev/tty10 X Desktop
lxc.cgroup.devices.allow = c 195:* rwm # /dev/nvidia Graphics card
lxc.cgroup.devices.allow = c 13:* rwm # /dev/input/* input devices
A musíte vytvořit zařízení ve svém kontejneru:
# display vt device
mknod -m 666 /dev/tty10 c 4 10
# NVIDIA graphics card devices
mknod -m 666 /dev/nvidia0 c 195 0
mknod -m 666 /dev/nvidiactl c 195 255
# input devices
mkdir /dev/input # input devices
chmod 755 /dev/input
mknod -m 666 /dev/input/mice c 13 63 # mice
Také jsem ručně nakonfiguroval vstupní zařízení (protože v
kontejneru nemáme udev)
Section "ServerFlags"
Option "AutoAddDevices" "False"
EndSection
Section "ServerLayout"
Identifier "Desktop"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "gb"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Výše uvedené se nachází v souboru /etc/X11/xorg.conf.d/10-input.conf
Související:Jak vzdáleně spouštět aplikace X11?Nejsem si jistý, jestli něco z toho pomůže, ale hodně štěstí!