Я пытаюсь создать контейнер 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 ситуаций
Мог кто-то советовать, как пойти об этом.
Спасибо
В основном ответ - то, что -
необходимо связать, монтируют устройства хоста, к которым Вы хотите получить доступ, например,
mount --bind /dev/dvb /path_to_your_container/rootfs/dev/dvb
.... не забывают создавать целевой каталог сначала
owner
из непривилегированного контейнерного доступа к устройству (устройствам), которое Вы смонтировали выше /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)