Как подключить одно USB-устройство к контейнеру LXC?

ТЛ;ДР

  • У меня есть два программных радиоустройства, подключенных к моему серверу Linux.
  • У меня есть контейнер LXC, работающий на сервере Linux.
  • Оба программных радиомодуля имеют одинаковые идентификаторы продукта и поставщика.
  • Как прикрепить к контейнеру LXC только одну программную радиостанцию?

Почему?

Потому что я хочу, чтобы!

Более серьезный ответ: я даю менее доверенным пользователям доступ к контейнеру LXC, а не к хосту LXD. Я хочу, чтобы эти пользователи видели только одно из программных радиомодулей.

Отладка

Санитарная проверка

  • Я использую стороннюю утилиту, которая прошивает радио через USB.
  • Сначала я подключаю/разрешаю USB для обоих радиомодулей.
    • команда:lxc config device add my-container usrpUSB usb productid=6010 vendorid=0403
  • Запускаю утилиту для перепрошивки, и она работает
  • Я отключаю USB
    • команда:lxc config device remove my-container usrpUSB
  • Запускаю утилиту для перепрошивки, но она не работает
  • Вывод: USB-разъем lxc работает как положено.

Находим, что изменилось

  • Идея: если я смогу найти файлы, которыеlxc configизменилось в контейнере, возможно, я смогу сделать это вручную, поэтому:
  • Подключите USB (см. команду выше)
  • Получение списка файлов-контейнеров
    • find / -ls > /tmp/find_with_usb.txt
  • Отключите USB (см. команду выше)
  • Получение списка файлов-контейнеров
    • find / -ls > /tmp/find_without_usb.txt
  • Сравните два
    • Есть более ста новых файлов
    • Ни один из них не/dev/ttyUSB*устройства
    • Файлы в основном находятся в/var/lib/lxcfsи/sys/fs/cgroupкаталоги
    • Я не уверен, какой у них источник в системе LXD.
  • Вывод: ручное сопоставление пути/символа-устройства не будет работать.

Так?

  • Есть ли другой способ сделать это?
  • Я не вижу никаких вариантов дальнейшего ограничения USB-устройств (источник)

0 ответов

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