Передача USB для контейнера LXD на Ubuntu 16.04

Я должен выставить свой интерфейс USB моему контейнеру LXD, и я использую машину Ubuntu 16.04. Работая "lsusb", я вижу то же интерфейсы и на моем хосте и на контейнере.

В моем контейнере я использую программное обеспечение, которое использует этот интерфейс USB (и связанное подключенное устройство), но во время выполнения поэтапно осуществляют сказанное сообщение:

"Открытый USB перестал работать: недостаточные полномочия"

Как добавить постоянно необходимую передачу?

Любые предложения будут цениться

Большое спасибо

1
задан 20 March 2017 в 19:24

2 ответа

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.

https://www.reddit.com/r/LXD /

0
ответ дан 7 December 2019 в 13:35

Примите во внимание, что я плохо знаком с ответом, таким образом отредактируйте по мере необходимости.

Недавно, я должен был добавить контроллер 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
2
ответ дан 7 December 2019 в 13:35

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

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