Proxmox 3.3
Проброс USB устройств в openvz контейнер
ВАЖНО: Если вы подключаете к гостевой системе более одного устройства, то лучше напрямую править конфиг openvz контейнера, без использования vzctl. Объясняется это тем, что при использовании vzctl опция DEVICES в конфиге перезаписывается и нужно все устройства добавлять одной командой, иначе в конфиге будет только последнее добавленное устройство.
Проброс устройства в общем случае:
# vzctl set [VEID] --devices b|c:major:minor|all:[r|w|rw|none]
где [VEID] — id контейнера openvz, b — блочное устройство, c — символьное. major:minor — эти значение можно посмотреть в выводе команды:
# ls -l /dev/bus/usb/[Bus]/[Device]
Например:
# ls -l /dev/bus/usb/002/014 crw-rw-r-T 1 root adb 189, 141 Apr 9 13:00 /dev/bus/usb/002/014
, а [Bus] и [Device] в выводе команды:
# lsusb Bus 002 Device 014: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1] 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 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0b39:1001 Omnidirectional Control Technology, Inc. Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Пример пробороса по имени девайса (в /dev/):
# vzctl set [VEID] --devnodes ttyACM0:rw --save
имя девайса можно узнать из вывода команды dmesg после подключения устройства, например:
usb 2-1.3: new high speed USB device number 14 using ehci_hcd usb 2-1.3: New USB device found, idVendor=04e8, idProduct=6860 usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-1.3: Product: SAMSUNG_Android usb 2-1.3: Manufacturer: SAMSUNG usb 2-1.3: SerialNumber: 7f4197c6 usb 2-1.3: configuration #1 chosen from 1 choice cdc_acm 2-1.3:1.1: This device cannot do calls on its own. It is not a modem. cdc_acm 2-1.3:1.1: ttyACM0: USB ACM device
Пример по коду major:minor :
# vzctl set [VEID] --devices c:189:141:rw --save
Пример проброса напрямую правкой конфига:
# vipw /etc/pve/openvz/[VEID].conf DEVNODES="ttyACM0:rw " DEVNODES="c:189:all:rw "
Для проброса USB устройства в работающий контейнер необходимо:
Смонтировать из хост-системы в гостевую
# mount -o bind /dev/ [VE_ROOT]/dev/
, где [VE_ROOT] — корень openvz контейнера. В proxmox как правило располагается здесь:
/var/lib/vz/root/[VEID] .
[VEID] — id контейнера