Я выполняю lxc2.0 контейнер (привилегированный) на 32-разрядной Ubuntu 16.0.4LTS.
В контейнере я установил mesa-utils
это имеет glxgears
приложение.
мой контейнерный файл конфигурации /var/lib/lxc/mk7i_container/config
:
Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template: --no-validate
# For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)
# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.arch = x86
lxc.cgroup.devices.allow = c 1:1 rwm
lxc.cgroup.devices.allow = c 130:* rwm
lxc.cgroup.devices.allow = c 124:* rwm
lxc.cgroup.devices.allow = c 122:* rwm
lxc.cgroup.devices.allow = c 123:* rwm
lxc.cgroup.devices.allow = c 126:* rwm
lxc.cgroup.devices.allow = c 127:0 rwm
lxc.cgroup.devices.allow = c 120:0 rwm
# Container specific configuration
lxc.rootfs = /var/lib/lxc/mk7i_container/rootfs
lxc.rootfs.backend = dir
lxc.utsname = mk7i_container
# Network configuration
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:c8:fd:1e
#mounts for XServer DISPLAY
lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry = /tmp/.X11-unix tmp/.X11-unix none bind,optional,create=dir
lxc.mount.entry = /dev/video0 dev/video0 none bind,optional,create=file
Для входа в систему в контейнер как пользователь 'Ubuntu' я использую следующую команду:
sudo lxc-console -n mk7i_container
После входа в систему я установил DISPLAY
огибающая переменная как:
export DISPLAY=":0.0"
И выполненный glxgears
и это хорошо работает. Я вижу Xwindow с механизмами, перемещающимися в него.
Однако после этого я перехожу к корневому режиму через sudo su
команда. И попытайтесь выполнить glxgears, но я получаю следующую ошибку:
No protocol specified
Error: couldn't open display :0.0
Не уверенный, почему эта ошибка прибывает. Если пользователь ubuntu
выполнения x прекрасные приложения, я ожидал, что корень сделает то же.
Кто-либо знает что случилось здесь?
Я смог зафиксировать его и работать glxgears
в корневом режиме. Проблема была с xauth.
хост-система уже имела xauth
.The идея состоит в том, чтобы использовать ключ уже доверяемого пользователя, который в моем случае был manik
в хост-системе.
команда xauth list
Using дала мне следующий вывод:
manik/unix:0 MIT-MAGIC-COOKIE-1 a4f6256398303725763c5595f404afbb
я собираюсь использовать ключ в шестнадцатеричном числе (право большая часть записи выше) в моей учетной записи пользователя root в контейнере.
я установил xauth пакет в контейнере:
sudo apt-get install xauth
Внутренний root
пользователь запрашивают в контейнере:
export DISPLAY=":0"
xauth add $DISPLAY . a4f6256398303725763c5595f404afbb
И теперь glxgears
хорошо работает в корневом режиме.