Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление



Предупреждение
В данной статье рассматривается предоставление удалённого доступа к USB-устройствам с помощью сервиса USB-over-IP. При принятии решения о возможности использования этого сервиса следует помнить, что доступ к USB-устройствам предоставлятся без авторизации, что может противоречить принятой политике безопасности. В статье приводятся примеры автоматического запуска службы, однако следует помнить, что после перезагрузки компьютера к нему могут оказаться подключны совсем другие устройства с теми же идентификаторами.



Информация
titleИнструкция применима к:
  • ОС ОН Орёл 2.12 и выше
  • ОС СН Смоленск 1.6 + update 5


Установка пакетов на сервере и на клиенте

На сервере и на клиенте должен быть установлен пакет 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, и перечислить в нём названия загружаемых модулей:

Блок кода
title/etc/mudules-load.d/usb-over-ip-load.conf
usbip-core
usbip-host
vhci-hcd

Запустить процесс как сервисную службц:

Command
sudo usbipd -D

Для того, чтобы usbipd запускался автоматически при старте компьютера можно оформить его в виде системного юнита, для чего:

  1. Создать файл /etc/systemd/system/usbipd.service со следующим содержимым:

    Блок кода
    [Unit] 
    Description=USBIPd 
    
    [Service] 
    ExecStart=/usr/bin/usbipd -D 
    Type=oneshot 
    RemainAfterExit=yes 
    
    [Install] 
    WantedBy=multi-user.target


  2. Обновить конфигурацию сервисов и разрешить запуск созданного юнита:

    Command
    sudo systemctl daemon-reload
    sudo systemctl enable usbipd



Проверка подключенных  к локальному компьютеру USB -устройств: 

Command
Titlesudo usbip list -l
busid 1-2 (03f0:4c17)
Hewlett-Packard : EWS UPD (03f0:4c17)

Идентификаторы busid далее используются для привязки эскпортируемых устройств.

Информация

Если при выполнении указанной  выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:

Command

sudo mkdir -p /usr/share/hwdata
sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids


Далее привязать устройство:

Command
sudo usbip bind -b <bus ID устройства>


Информация
Если используется межсетевой экран, то для корректной работы usbipd должен быть открыт порт 3240.

Настройка клиента

Установить пакеты и загрузить необходимые модули ядра:

Command
sudo apt install linux-tools-`uname -r`
sudo modprobe usbip-core
sudo modprobe vhci-hcd

Автоматическую загрузку модулей ядра можно сделать так же, как и для сервера.

Проверить видимость устройств, подключенных к серверу, можно выполнив на клиентском компьютере команду:

Command
Titlesudo usbip list -r <server ip>

Exportable USB devices
======================
 - 192.168.122.45
               3-1: Aktiv : Rutoken ECP (0a89:0030)
                                  : /sys/devices/pci0000:00/0000:00:05.1/usb3/3-1
                                  : (Defined at Interface level) (00/00/00)


Информация

Если при выполнении указанной  выше команды выдаётся сообщение об ошибке открытия по пути /usr/share/hwdata//usb.ids, то создать каталог /usr/share/hwdata/ и создать в нём ссылку на нужный файл:

Command

sudo mkdir -p /usr/share/hwdata
sudo ln -s /var/lib/usbutils/usb.ids /usr/share/hwdata/usb.ids


Смонтировать USB-устройство на клиенте:

Command
sudo usbip attach -r <server> -b <bus ID>

Проверить, к какому порту присоединено устройство:

Command
sudo usbip port

Отмонтировать устройство (используется номер порта):

Command
sudo usbip -p 00



При отмонтировании usb клиентом устройство может больше не определяться до повторного физического подключения на сервере.