Оглавление |
---|
Предупреждение |
---|
В данной статье рассматривается предоставление удалённого доступа к USB-устройствам с помощью сервиса USB-over-IP. При принятии решения о возможности использования этого сервиса следует помнить, что доступ к USB-устройствам предоставлятся без авторизации, что может противоречить принятой политике безопасности. В статье приводятся примеры автоматического запуска службы, однако следует помнить, что после перезагрузки компьютера к нему могут оказаться подключны совсем другие устройства с теми же идентификаторами. |
Информация | ||
---|---|---|
| ||
|
Установка пакетов на сервере и на клиенте
На сервере и на клиенте должен быть установлен пакет linux-tools соответствующий версии используемого ядра. При наличии подключенных репозиториев установить пакет можно выполнив на сервере и клиенте команду:
Command |
---|
sudo apt install linux-tools-`uname -r` |
Настройка сервера
На сервере загрузить необходимые модули ядра, для чего выполнить команду:
Command |
---|
sudo modprobe usbip-core sudo modprobe usbip-host sudo modprobe vhci-hcd |
Для того, чтобы модули загружались автоматически при загрузке ОС можно создать в каталоге /etc/mudules-load.d/ файл с именем, например, /etc/mudules-load.d/usb-over-ip-load.conf, и перечислить в нём названия загружаемых модулей:
Блок кода | ||
---|---|---|
| ||
usbip-core usbip-host vhci-hcd |
Запустить процесс как сервисную службц:
Command |
---|
sudo usbipd -D |
Для того, чтобы usbipd запускался автоматически при старте компьютера можно оформить его в виде системного юнита, для чего:
Создать файл /etc/systemd/system/usbipd.service со следующим содержимым:
Блок кода [Unit] Description=USBIPd [Service] ExecStart=/usr/bin/usbipd -D Type=oneshot RemainAfterExit=yes [Install] WantedBy=multi-user.target
- Обновить информацию о юнитах
Обновить конфигурацию сервисов и разрешить запуск созданного юнита:
Command sudo systemctl daemon-reload
sudo systemctl enable usbipd
Проверка подключенных к локальному компьютеру USB -устройств:
Command | ||
---|---|---|
| ||
busid 1-2 (03f0:4c17) Hewlett-Packard : EWS UPD (03f0:4c17) |
Идентификаторы busid далее используются для привязки эскпортируемых устройств.
Информация | ||
---|---|---|
Если при выполнении указанной выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:
|
Далее привязать устройство:
Command |
---|
sudo usbip bind -b <bus ID устройства> |
Информация |
---|
Если используется межсетевой экран, то для корректной работы usbipd должен быть открыт порт 3240. |
Настройка клиента
Загрузить Установить пакеты и загрузить необходимые модули ядра:
Command |
---|
sudo modprobe sudo apt install linux-tools-`uname -r` sudo modprobe usbip-core sudo modprobe vhci-hcd |
Автоматическую загрузку модулей ядра можно сделать так же, как и для сервера.
Проверить видимость устройств, подключенных к серверу, можно выполнив на клиентском компьютере команду:
Command | ||
---|---|---|
| ||
Exportable USB devices |
Информация | ||
---|---|---|
Если при выполнении указанной выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:
|
Смонтировать USB-устройство на клиенте:
Command |
---|
sudo usbip attach -r <server> -b <bus ID> |
При отмонтировании usb клиентом устройство может больше не определяться до повторного физического подключения на сервере.