Как сделать USB видимым в контейнере LXD

В зависимости от оболочки переменные COLUMNSLINES) могут быть автоматически установлены при изменении размера окна. bash, zsh, ksh do. dash не делает. tcsh этого не делает.

Из man bash:

COLUMNS Используется командой select compound для определения ширины терминала при печати списков выделения. Автоматически устанавливается, если Опция checkwinsize включена или в интерактивной оболочке при получение SIGWINCH.

и

LINES

Используется командой select compound для определения столбца длина для печати списков выбора. Автоматически устанавливается, если Опция checkwinsize включена или в интерактивной оболочке при получение SIGWINCH.

Я нахожу полезным следующий псевдоним:

$ alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
$ ttystat
/dev/pts/2 xterm 192x51
3
20.07.2016, 10:34
2 ответа

Это довольно старый вопрос, но сегодня я наткнулся на тот же вариант использования и нашел решение настолько простым, что, вероятно, оно было недоступно 7 месяцев назад.

По этой ссылке можно найти дополнительную информацию, но по сути это так:

скажем, у нас есть модемное устройство (AT-команды) на / dev / ttyUSB2 и контейнер «xenial1» , можно добавить ttyUSB2 в контейнер с помощью следующей команды:

$ lxc config device add xenial1 ttyUSB2 unix-char path=/dev/ttyUSB2

не имеет значения, запущен контейнер или нет

Эта конфигурация постоянно сохраняется в профиле контейнера по умолчанию:

$ lxc config show xenial1
architecture: x86_64
config:
  security.privileged: "true"
  volatile.base_image: <numbers>
  volatile.eth0.hwaddr: xx:xx:xx:xx:xx:xx
  volatile.idmap.base: "0"
  volatile.idmap.next: '[]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
devices:
  root:
    path: /
    type: disk
  ttyUSB1:
    path: /dev/ttyUSB1
    type: unix-char
  ttyUSB2:
    path: /dev/ttyUSB2
    type: unix-char
ephemeral: false
profiles:
- default

Чтобы удалить устройство используйте команду «удалить» вместо «добавить».

ПРИМЕЧАНИЕ: мой контейнер является «привилегированным», поэтому это решение может не работать с непривилегированными контейнерами

4
27.01.2020, 21:12

если вы используете непривилегированный контейнер, вы также можете установить правильные разрешения для этого устройства... я убедился, что это было так, когда я пытался использовать веб-камеру в контейнере... может быть, это также помогает здесь...

lxc config device add containerName yourNameForTheDevice unix-char path=/path/to/device

lxc config device set containerName yourNameForTheDevice mode 666

также имейте в виду тот факт, что прохождение USB -работает только с lxd 2.5 или выше, как пишет Стефан Грабер в https://stgraber.org/(, прокрутите вниз до USB-устройств в контейнерах ). так что, возможно, вам также нужно добавить репозиторий от разработчиков lxd -.... на данный момент «обычные» репозитории ubuntu -xenial имеют только lxd -версии 2.0.9

проверьте, какая у вас версия с помощью

dpkg -l lxd

взгляните на эту страницу и рассмотрите возможность использования этого репозитория :https://launchpad.net/~ubuntu-lxc/+archive/ubuntu/lxd-stable

если вы это сделаете, вы можете обновить его до версии 2.15

3
27.01.2020, 21:12

Теги

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