Я должен выставить свой интерфейс USB моему контейнеру LXD, и я использую машину Ubuntu 16.04. Работая "lsusb", я вижу то же интерфейсы и на моем хосте и на контейнере.
В моем контейнере я использую программное обеспечение, которое использует этот интерфейс USB (и связанное подключенное устройство), но во время выполнения поэтапно осуществляют сказанное сообщение:
"Открытый USB перестал работать: недостаточные полномочия"
Как добавить постоянно необходимую передачу?
Любые предложения будут цениться
Большое спасибо
GitHub LXD имеет много документации, связанной с конфигурацией.
https://Поиск github.com/lxc/lxd/blob/master/doc/configuration.md
там USB и Вы найдете то, в чем Вы нуждаетесь.
кавычка: конфигурация Устройств
LXD будет всегда предоставлять контейнеру основные устройства, которые требуются, чтобы работала стандартная система POSIX. Они не видимы в контейнере или представляют конфигурацию и не могут быть переопределены.
Они включают:
/dev/null (character device)
/dev/zero (character device)
/dev/full (character device)
/dev/console (character device)
/dev/tty (character device)
/dev/random (character device)
/dev/urandom (character device)
/dev/net/tun (character device)
/dev/fuse (character device)
lo (network interface)
Что-либо еще должно быть определено в контейнерной конфигурации или в одном из ее профилей. Профиль по умолчанию будет обычно содержать сетевой интерфейс для становления eth0 в контейнере.
Для добавления дополнительных устройств к контейнеру записи устройства могут быть добавлены непосредственно к контейнеру, или к профилю.
Устройства могут быть добавлены или удалены, в то время как контейнер работает.
Каждая запись устройства определяется уникальным именем. Если то же имя используется в последующем профиле или в собственной конфигурации контейнера, целая запись переопределяется новым определением.
Записи устройства добавляются через: устройство конфигурации lxc добавляет [key=value]...
= = = заканчивают кавычку = = =
команда в качестве примера:
устройство профиля lxc добавляют [key=value]...
кроме того, если бы Вы используете LXD, я настоятельно рекомендовал бы, подписываются на lxc-пользовательский почтовый псевдоним, поскольку разработчики контролируют это и отвечают на Q& ежедневная газета.
https://lists.linuxcontainers.org /
Наконец, существует LXD sub-reddit в Reddit (при использовании Reddit?), который не является для поддержки, но действительно обеспечивает много большой информации о LXD.
Примите во внимание, что я плохо знаком с ответом, таким образом отредактируйте по мере необходимости.
Недавно, я должен был добавить контроллер PS3 к контейнеру и смог сделать так через следующее:
Сначала мы должны найти нашу информацию об устройствах. а именно, это vendorid
и productid
поэтому давайте работать lsusb
Вывод должен быть подобен этому:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 001 Device 006: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller
Для нашего контейнера мы интересуемся идентификационной частью. Таким образом в моем случае 054c:0268
054c
будет нашим "vendorid" и 0268
наш "productid"
Таким образом основанный на документации по настройке, мы должны закончить с командой как это для добавления нашего устройства
lxc config device add \
<ContainerName> \
<DeviceName> \
usb \
vendorid=<vendorid>
Это - минимум, должно было добавить устройство, НО так как только vendorid указан, это добавит ВСЕ устройства с соответствием vendorid., если Вы захотите только, что одно определенное устройство можно также указать productid также.
Таким образом для моего случая (для показа конкретного примера) я имею:
lxc config device add \
pcsx2 \
ps3controllerblack \
usb \
vendorid=054c \
productid=0268
Как показано мой ContainerName является "pcsx2", и DeviceName может быть чем-либо, что Вы хотите, он не имеет к corresond ни к чему, таким образом, мой установлен на "ps3controllerblack", что-то легкое для меня для запоминания
Одна последняя вещь отметить состоит в том, что даже с устройством, добавленным к контейнеру, чтобы мой контроллер правильно работал, я также должен был добавить, что это - файл устройств к контейнеру также.
Таким образом для меня я должен был найти файл устройств, решить, что это - тип (символ Unix или блок Unix), и затем добавьте его.
Мой контроллер обеспечивает устройство посимвольного ввода-вывода в /dev/input/js0
таким образом, моя команда заканчивает тем, что была:
lxc config device add \
pcsx2 \
joystickdevice \
unix-char \
path=/dev/input/js0
И с этим у меня должен быть доступ к моему USB-устройству. Может быть необходимо добавить больше к конфигурации и указать режим, uid или ценуроз так, чтобы надлежащие пользователи в контейнере могли получить доступ к нему.
Если Вы, оказывается, вводите неправильную информацию в команду и должны переделать ее, сначала удалить устройство и затем попробовать еще раз
lxc config device remove <ContainerName> <DeviceName>
Пример:
lxc config device remove pcsx2 ps3controllerblack