Передача USB-устройства LXC

Я пытаюсь создать контейнер LXC, работающий mythtv (сервер).. .which нужен доступ к тюнерам USB

Кажется, существует недостаток информации о том, как передать USB-устройства до контейнера LXC

Это сообщение обсуждает потребность установить cgroups соответственно https://unix.stackexchange.com/questions/137931/usb-passthrough-for-lxc-containers

Хостом является Ubuntu 14.04 (Надежный человек), который успешно работает, другие непривилегированные контейнеры LXC получили доступ через X2Go и прямо к X11 (1 из каждого типа, работающего "постоянно" и работающего хорошо). Основная конфигурация была (только) изменена для размещения, контейнерное устройство хранения данных в пользовательском месте (выделил раздел LVM).

Рассматриваемый контейнер привилегированный (b) (a), у рабочего Надежного человека Ubuntu AMD64 (c) есть набор cgroups в файле конфигурации "lxc.cgroup.devices.allow = c 189:* rwm", который кажется соответствующим, учитывая, что майор / незначительные идентификаторы рассматриваемых USB-устройств найдены с помощью "ls - la/dev/bus/usb/003 /"

Apparmor, кажется, не основная проблема (хотя я мог быть неправым), я попытался установить "lxc.aa_profile = неограниченный", который, казалось, не помог. Я также создал пользовательский профиль Apparmor, который просто привел к серии cgroup ошибок. Я озадачен и даже не знаю, где запустить - поиски Google поднимаются, обсуждения Libvirt основывали передачу USB и патч для LXC передача USB, но никакие инструкции для non-Libvirt ситуаций

Мог кто-то советовать, как пойти об этом.

Спасибо

5
задан 13 April 2017 в 05:37

1 ответ

В основном ответ - то, что -

  1. необходимо связать, монтируют устройства хоста, к которым Вы хотите получить доступ, например,

    mount --bind /dev/dvb /path_to_your_container/rootfs/dev/dvb

.... не забывают создавать целевой каталог сначала

  1. , Гарантируют, что Вы или используете привилегированный контейнер, или Вы предоставили хост owner из непривилегированного контейнерного доступа к устройству (устройствам), которое Вы смонтировали выше
  2. , Добавляет соответствующая cgroup запись в Вашем контейнерном файле конфигурации (или /etc/lxc/lx.conf для всех привилегированных контейнеров) т.е. lxc.cgroup.devices.allow = c xxx:* rwm, где xxx = "главная" часть major:minor идентификатора, найденного с помощью ls -la /dev/dvb, говорит..... 212 для DVB или 189 для USB (в моей системе), таким образом для моего случая, dvb доступ предоставлен через lxc.cgroup.devices.allow = c 212:* rwm

, изменения Apparmor являются ненужными.. связывание монтируется, и cgroup запись были достаточны для включения контейнерного доступа к устройствам DVB (которые, оказывается, USB-устройства, НО не было необходимо включить доступ к устройствам "USB" также... просто устройства DVB в/dev/dvb)

3
ответ дан 23 November 2019 в 10:28

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

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