USB в Linux
Материал из Xgu.ru
- Короткий URL: usb/linux
Содержание |
[править] Об использовании USB-устройств в Linux.
Просмотр информации об USB-устройствах:
lsusb
Показать устройства в виде дерева:
lsusb -t
[править] Створення серверу USB через ІР на Linux
Уявіть ситуацію, коли існує віртуальна машина, а до неї потрібно приєднати USB-пристрій, який знаходиться на значній відстані. На думку одразу спадає використати апаратний сервер типу DIGI AnywhereUSB або програмний продукт типу USB Redirector, але це вимагає значних коштів. В мережі було знайдено безкоштовний проект USBoverIP (http://usbip.sourceforge.net/)
За допомогою цього пакета на базі Linux системи можна створити USB сервер, який буде обслуговувати USB-пристрої через ІР для клієнтів Linux і Windows.
[править] Налаштування сервера
Завантажте останній пакет за посиланням http://sourceforge.net/projects/usbip/files/
якщо у Вас Debian або Ubuntu, то достатньо встановити пакет з репозитарію.
usbip:~$ sudo apt-get install usbip
Завантажуємо наступні модулі для керування USB портами
usbserver:~$ cd /lib/modules/3.2.0-4-amd64/kernel/drivers/staging/usbip usbserver:~$ sudo modprobe usbip-core usbserver:~$ sudo modprobe usbip-host
Запускаємо usbip як системний сервіс:
usbserver:~$sudo usbipd -D
Тепер потрібно обрати bus-ID пристрою, який буде розшарено.
1- Підключіть USB-пристрій до комп’ютера
2- Виконайте команду
usbserver:~$ sudo usbip list -l Local USB devices ================= - busid 9-1 (12d1:1003) 9-1:1.0 -> option 9-1:1.1 -> option 9-1:1.2 -> usb-storage
bus-ID - USB-пристрій. У цьому випадку :"9-1".
Підключаємо пристрій до серверу
usbserver:~$ sudo usbip bind --busid=9-1
Сервер передає інформацію про USB-пристрій віддаленим клієнтам.
usbserver:~$netstat -nlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3240 0.0.0.0:* LISTEN 4057/usbipd
[править] Налаштування клієнтів
- Клієнт MS Windows
Завантажте клієнта за посиланням https://www.dropbox.com/s/j82oo1z95fom37b/usbip.zip
Потрібно зробити дві дії:
Перша:
В архіві є файл "USBIPEnum.inf", який вам потрібно встановити як "System device" у своїй системі.
Друга:
Запустити наступну команду:
path-to-usbip:> usbip.exe -l <server-ip>
В результаті отримаємо всі пристрої з bus-ID, знайдені на сервері.
Підключаємо пристрій наступною командою:
path-to-usbip:> usbip.exe -a <server-ip> USB-ID
USB-ID у нашому випадку 3-1.
Тепер у системі з’явиться новий USB-пристрій.
- Клієнт Gnu/Linux
Встановлюємо пакет usbip
$ sudo apt-get install usbip
Підключаємо модуль "vhci-hcd":
$ sudo modprobe vhci-hcd
Переглядаємо список USB-пристроїв
$ sudo usbip -l <server-ip>
Підключіть потрібний пристрій наступною командою:
$ sudo usbip -a <server-ip> X-Y
[править] Дополнительная информация
- lsusb(8) (англ.) — man lsusb
- USB Redirector for Linux (англ.)