Видео драйвер под контейнером lxc?

Поскольку LXC (Linux Containers) является супер-chroot уровня ядра, мне было интересно, какой тип видеодрайвера имеют контейнеры:

Мой хост - Ubuntu 12.04 64-битный компьютер с графическим процессором ATI. Будет ли контейнер LXC иметь доступ к тому же драйверу? Или они должны быть установлены на каждом контейнере?

4
задан 14 December 2012 в 12:23

3 ответа

Технологии виртуализации на основе контейнеров, такие как OpenVZ и LXC, не виртуализируют никакое оборудование, в отличие от Xen, KVM, VMware и т. Д. Еще одно важное отличие заключается в том, что контейнеры LXC / OpenVZ работают в одном и том же экземпляре одного Linux ядро, в то время как реальные виртуальные машины работают с собственным ядром.

Поскольку контейнеры находятся внутри одного и того же ядра и не управляют каким-либо оборудованием, они «работают» с одним и тем же драйвером, но у них нет никакого знания об этом. Все процессы просто хромируются, и это полностью не зависит от аппаратных драйверов (модулей ядра).

0
ответ дан 14 December 2012 в 12:23

Пожалуйста, взгляните на этот скрипт, чтобы создать контейнер LXC, который запускает пар с ускорением звука и видео:

http://bazaar.launchpad.net/~ubuntu-lxc/lxc / steam-lxc / view / head: / steam-lxc

Волшебство приходит сюда:

Вне LXC:

    # Add the bind mounts to the container's fstab
    self.container.set_config_item("lxc.mount.entry",
                                   "/tmp/.X11-unix tmp/.X11-unix "
                                   "none bind,ro")
    self.container.set_config_item("lxc.mount.entry",
                                   "/dev/dri dev/dri none bind,ro")
    self.container.set_config_item("lxc.mount.entry",
                                   "%s/pulse.socket home/%s/.pulse_socket "
                                   "none bind,ro" % (self.config_path,
                                                     self.user.pw_name))

Мы экспортируем X11 с bind mount каталог /tmp/.X11-unix, чтобы позволить контейнеру использовать хост X11. Сделайте то же самое с каталогом /dev/dri и аудиоразъемом.

Внутри LXC:

    # Get pulseaudio to listen on the socket
    with self.user_privileges():
        subprocess.call(['pactl', 'load-module',
                        'module-native-protocol-unix',
                        'socket=%s' % self.pulse_socket,
                        'auth-cookie-enabled=0'])

    # Start steam
    self.run_command(
        ["steam"], {'DISPLAY': os.environ['DISPLAY'],
                    'PULSE_SERVER': "/home/%s/.pulse_socket" %
                                    self.user.pw_name})

Использует pactl для использования сокета Unix для связи с хост-сервером импульсного аудио-сервера, а затем экспортирует сокет и переменную среды DISPLAY, чтобы позволить steam использовать локальный сервер X11. и сокет для аудио сервера.

Взгляните на сценарий и наслаждайтесь им:)

С этими переменными среды внутри LXC вы можете (теоретически) играть практически во все игры.

С наилучшими пожеланиями!

0
ответ дан 14 December 2012 в 12:23

Насколько мне известно, контейнеры lxc будут иметь доступ к водителю. проверьте этот сайт для получения дополнительной информации http://libvirt.org/drvlxc.html

0
ответ дан 14 December 2012 в 12:23

Другие вопросы по тегам:

Похожие вопросы: