è attualmente possibile configurare contenitori LXC con funzionalità X11? Non vedo l'ora di trovare il container X11 più leggero disponibile (dal punto di vista della memoria), l'accelerazione hardware è un vantaggio ma non essenziale.
Se non è attualmente possibile, o prontamente disponibile, è noto quale funzionalità deve essere ancora implementata per supportarla?
Risposta accettata:
sì, è possibile eseguire un ambiente desktop X11 completo all'interno di un contenitore LXC.
In questo momento, lo faccio su Arch Linux. Non dirò che è "leggero" perché non sono arrivato al punto di provare a rimuovere le cose dall'installazione standard del gestore di pacchetti, ma posso confermare che funziona molto bene.
Devi installare tutti i driver del kernel sull'HOST e nel contenitore. Cose come il driver grafico (io uso nvidia). Devi rendere accessibili i nodi del dispositivo in dev all'interno del contenitore configurando il tuo container.conf per consentirlo. Devi quindi assicurarti che quei nodi del dispositivo siano creati all'interno del contenitore (cioè mknod).
Quindi, per rispondere alla tua domanda:SÌ, funziona. Se posso aiutare ulteriormente o fornire maggiori dettagli per favore fatemelo sapere.
— informazioni aggiuntive fornite —
Nel mio contenitore...
/etc/inittab si avvia nel livello di esecuzione 5 e avvia "slim"
Slim è configurato per utilizzare 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
Non sto usando un secondo display X sul mio attuale vt, ma uno completamente diverso (posso passare da uno all'altro usando CTRL+ALT+Fn).
Se non stai usando slim, puoi usare un costrutto come questo per avviare X su un altro vt:
/usr/bin/startx -- :10 vt10
Questo avvierà X sul display:10 e lo metterà su vt10 (CTRL+ALT+F10).
Non è necessario che corrispondano ma penso che sia più ordinato se lo fanno.
Hai bisogno della configurazione del tuo contenitore per rendere disponibili i dispositivi pertinenti, come questo:
# 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
E devi realizzare i dispositivi nel tuo contenitore:
# 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
Ho anche configurato manualmente i dispositivi di input (poiché non abbiamo udev nel
container)
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
Quanto sopra in un file /etc/X11/xorg.conf.d/10-input.conf
Correlati:come eseguire le applicazioni X11 in remoto?Non sono sicuro che tutto ciò possa aiutare, ma buona fortuna!