USBIP
USB/IP выполняет задачу подключения USB-устройства к удаленному компьютеру через локальную сеть (проброс USB-устройств по локальной сети).
В качестве пробрасываемых устройств могут быть:
- USB-накопители (fdisk, mkfs, mount/umount, операции с файлами);
- USB-клавиатуры и USB-мыши;
- USB веб-камеры и динамики;
- USB-принтеры, USB-сканеры, USB-конвертеры последовательных интерфейсов и адаптеры USB-Ethernet.
На сервере USB/IP можно выводить перечень устройств, устанавливать и убирать их привязки. На клиенте USB/IP можно выводить перечень устройств, экспортированных серверами USB/IP, присоединять и отсоединять их.
Установка
Настройка сервера
Установить пакеты usbip, usbipd:
# apt-get install usbip usbipd
Подгрузить модули драйверов USB:
# modprobe usbip-core
# modprobe usbip-host
Запустить сервис usbipd и добавить его в автозапуск:
# systemctl enable --now usbipd
Настройка клиента
Установить пакеты usbip, usbip-client:
# apt-get install usbip usbip-client
Подгрузить модули драйверов USB:
# modprobe usbip-core
# modprobe vhci-hcd
Управление устройствами
Сервер
Вывести информацию о подключенных локальных устройствах:
# usbip list -l
- busid 1-1.1 (0402:9665)
ALi Corp. : Gateway Webcam (0402:9665)
- busid 1-1.4 (13fe:4300)
Kingston Technology Company Inc. : unknown product (13fe:4300)
- busid 2-1.2 (090c:1000)
Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)
Сделать устройство с ID 2-1.2 доступным:
# usbip bind --busid 2-1.2
usbip: info: bind device on busid 2-1.2: complete
Теперь к устройству можно получить доступ с клиента.
Закрыть доступ к устройству:
# usbip unbind --busid 2-1.2
usbip: info: unbind device on busid 2-1.2: complete
Клиент
Получить список доступных устройств на указанном IP-адресе можно, выполнив команду:
# usbip list --remote <IP>
Например:
# usbip list --remote 192.168.0.118
Exportable USB devices
======================
- 192.168.0.118
2-1.2: Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)
: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
: (Defined at Interface level) (00/00/00)
Команда подключения к доступному USB-устройству:
# usbip attach --remote <IP> --busid <ID>
Например:
# usbip attach --remote 192.168.0.118 --busid 2-1.2
Получить список подключенных устройств:
# usbip port
Imported USB devices
====================
Port 00: <Port in Use> at High Speed(480Mbps)
Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)
3-1 -> usbip://192.168.0.118:3240/2-1.2
-> remote bus/dev 002/003
Команда отключения устройства:
# usbip detach --port <Port_number>
Например:
# usbip detach --port 00
usbip: info: Port 0 is now detached!