Проброс USB устройства в гостевую систему openvz


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 контейнера

 
# man vzctl

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *