Linux

Linux-LXC;用最小的 X11 部署鏡像

  • August 3, 2018

目前是否可以設置具有 X11 功能的LXC 容器?我期待最輕的可用 X11 容器(記憶體方面),硬體加速是一個加分項,但不是必需的。

如果目前不可行或不可用,是否知道需要實現哪些功能才能支持它?

是的,可以在 LXC 容器內執行完整的 X11 桌面環境。

現在,我在 Arch Linux 上執行此操作。我不會說它是“輕量級的”,因為我還沒有嘗試從標準包管理器安裝中刪除東西,但我可以確認它確實工作得很好。

您必須在主機和容器中安裝任何核心驅動程序。諸如圖形驅動程序之類的東西(我使用nvidia)。您必須通過配置您的 container.conf 來使 dev 中的設備節點在容器內可訪問以允許它。然後,您需要確保在容器內創建了這些設備節點(即 mknod)。

所以,回答你的問題:是的,它確實有效。如果我可以提供更多幫助或提供更多詳細資訊,請告訴我。

— 提供額外資訊 —

在我的容器中… /etc/inittab 從執行級別 5 啟動並啟動“slim” Slim 配置為使用 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

我沒有在我目前的 vt 上使用第二個 X 顯示器,而是一個完全不同的顯示器(我可以使用 CTRL+ALT+Fn 在其中的許多顯示器之間切換)。

如果你不使用 slim,你可以使用這樣的結構在另一個 vt 上啟動 X:

/usr/bin/startx -- :10 vt10

這將在 display :10 上啟動 X 並將其放在 vt10 (CTRL+ALT+F10) 上。這些不需要匹配,但我認為如果它們匹配會更整潔。

您確實需要您的容器配置以使相關設備可用,如下所示:

# 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

您需要在容器中製作設備:

# 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

我還手動配置了輸入設備(因為我們在容器中沒有 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

上面的文件 /etc/X11/xorg.conf.d/10-input.conf

不知道這是否會有所幫助,但祝你好運!

引用自:https://unix.stackexchange.com/questions/18003