В данной статье я детально расскажу вам о командах USB-Redirector для Linux, приведу конкретные примеры и продемонстрирую использование утилиты «usbsrv».
При выполнении команды usbsrv -help отображается полный перечень доступных команд программы usbsrv, включая описание каждого параметра и инструкцию по использованию:
Подробно рассмотрим значение каждой команды:
usbsrv -s <device> | <deviceid> или usbsrv -share <device> | <deviceid> - Предоставляет общий доступ к указанному устройству.
usbsrv -t <device> | <deviceid> или usbsrv -unshare<device> | <deviceid> - Отключает общий доступ к указанному устройству.
usbsrv -auto-share on|off - Включает или отключает автоматический общий доступ к usb-устройству.
usbsrv -create-callback <address>:<port> - Создает соединение обратного вызова с удаленным USB-клиентом.
usbsrv -close-callback <address>:<port> | <client> | <clientid> | all - Закрывает соединение обратного вызова с удаленным USB-клиентом.
usbsrv -remote-auto-connect on|off <client> | <clientid> - Включает или отключает автоматическое подключение устройств на указанном удаленном клиенте, если оно было подключено через обратный вызов.
usbsrv -connect-to <client> <device> | <clientid>-<deviceid> - Подключает указанное устройство к указанному клиенту. Клиент должен быть уже подключен к этому серверу.
usbsrv -disconnect-from <device> | <deviceid> | all - Отключает указанное USB устройство от клиентов.
usbsrv -add-exclusion <device> | <deviceid> - Добавляет указанное устройство в список исключений.
usbsrv -remove-exclusion <device> | <deviceid> - Удаляет указанное устройство из списка исключений.
usbsrv -l или usbsrv -list-devices - Отображает список всех usb-устройств в системе.
usbsrv -list-clients - Отображает список подключенных клиентов.
usbsrv -set-tcp-port <port> - Устанавливает номер TCP-порта, используемого программой в сервере.
usbsrv -set-nickname "<nickname>" <device> - Назначить псевдоним для указанного устройства. Если указать пустую строку «""» - удаляется назначенный псевдоним.
usbsrv -set-timeout <timeout> <device> | <deviceid> - Устанавливает время ожидания бездействия для устройства. Значение времени ожидания указано в секундах. Установите нулевое значение, чтобы отключить время ожидания бездействия.
usbsrv -info - Отображает сводную информацию о текущей конфигурации.
usbsrv -version - Отображает версию программы.
<device>
<device> - это комбинация одного или нескольких из следующих параметров, которые идентифицируют usb-устройство:
-vid <vendor id> - Идентификатор поставщика usb-устройства, отображаемый командой usbsrv -list-devices.
-pid <productid> - Идентификатор продукта usb-устройства, отображаемый командой usbsrv -list-devices.
-usb-port <port> - Номер порта Usb, отображаемый командой usbsrv -list-devices.
-serial < serial> - Серийный номер Usb-устройства, отображаемый командой usbsrv -list-devices.
-device-name "<name>" - Имя Usb-устройства, отображаемое командой usbsrv -list-devices (Имя должно быть заключено в двойные кавычки).
<client>
<client> - это один из следующих параметров, который идентифицирует usb-клиент, подключенный к этому серверу:
-client <address>:<port> - Адрес удаленного клиента и номер порта.
-clientid <id> - Идентификатор удаленного клиента, отображаемый командой usbsrv -list-clients.
Начало:
Чтобы разрешить или запретить общий доступ к USB-устройству, сначала необходимо определить его уникальный идентификатор (id).
Просмотреть список всех USB-устройств в системе можно с помощью следующей команды:
usbsrv -list-devices
Предоставление или отключение общего доступ к USB устройству.
Предоставить общий доступ:
usbsrv -share 1
Закрыть общий доступ:
usbsrv -unshare 1
Автоматическое включение и отключение общего доступа к USB-устройству.
Из описания команда включение или отключение автоматического общего доступа к USB-устройству должна будет автоматически предоставлять или закрывать общий доступ к этому устройству, при подключении его к системе в USB порт.
Включить автоматический общий доступ к USB-устройствам:
usbsrv -auto-share on
Выключить автоматический общий доступ к USB-устройствам:
usbsrv -auto-share off
Создание и закрытие соединения с удаленным USB-клиентом.
Команда устанавливает связь с удалённым USB-Redirector'ом, облегчая процедуру подключения пользователя к USB-серверу, поскольку не требуется прямое подключение клиента для настройки соединения с USB-сервером:
Открыть связь с удалённым USB-Redirector'ом клиента:
usbsrv -create-callback 192.168.1.13:32032
Закрыть связь с удалённым USB-Redirector'ом клиента:
usbsrv -close-callback 192.168.1.13:32032
Чтоб закрыть связь всем подключенным клиентам:
usbsrv -close-callback all
Включение или отключение автоматическое подключение устройств.
Исходя из описания, эта команда включает или отключает автоматическое подключение устройств на удалённом клиенте, если устройство первоначально было подключено через обратный вызов. Таким образом, устройство фиксируется за указанным клиентом и автоматически возвращается к нему после временного использования другим пользователем.
Включение автоматического подключения USB-устройства у клиента:
usbsrv -remote-auto-connect on 1
Выключение автоматического подключения USB-устройства у клиента:
usbsrv -remote-auto-connect off 1
Подключение и отключение указанного устройства к указанному клиенту.
Эта команда предназначена для ручного подключения конкретного USB-устройства, расположенного на USB-сервере, к указанному клиенту.
Подключение USB-устройства к указанному клиенту:
usbsrv -connect-to 1-1
Отключение USB-устройства от клиентов:
usbsrv -disconnect-from 1
Отключение всех USB-устройства:
usbsrv -disconnect-from all
Добавление указанного устройство в список исключение, а также удаление этого устройства из этого списка.
Эта команда позволяет добавлять в список исключения или исключать из этого списка USB-устройство, размещённое на USB-сервере, защищая от случайного открытие общего доступа к этому устройству.
Добавление USB-устройство в список исключения:
usbsrv -add-exclusion 1
Исключить USB-устройство из списка исключения:
usbsrv -remove-exclusion 1
Отображение списков.
Без знания последующих команд выполнение предыдущих будет похоже на стрельбу вслепую — эффективность и точность окажутся крайне низкими.
Отобразить список всех USB-устройств:
usbsrv -l
или
usbsrv -list-devices
Отобразить список всех клиентов подключенных к USB-серверу:
usbsrv -list-clients
или
usbsrv -clients
Отобразить сводную информацию о сервере:
usbsrv -info
Отобразить версию программы:
usbsrv -version
Смена порта сервера и перезапуск служб.
Следующая команда предназначена для смены порта сервера, все подключенные клиенты после перезапуска службы потеряют USB-сервер, кроме тех, кто подключен к серверу через обратную связь. Стандартный порт сервера 32032.
usbsrv -set-tcp-port 32033
Перезапускаем службу USB-сервера:
sudo systemctl restart usbsrvd
Проверяем статус службы:
sudo systemctl status usbsrvd
Назначение псевдонима для устройства.
Данная команда облегчает поиск USB-устройства, как и в списке устройств так и в списке пользователя.
Назначить псевдоним USB-устройству:
usbsrv -set-nickname test 1
Сбросить псевдоним устройства:
usbsrv -set-nickname "" 1
Время ожидания бездействия для USB-устройству
Эта команда применяется, когда USB-устройство подключено к удалённому клиенту, но фактически не используется. Именно тогда и инициируется отсчёт времени ожидания бездействия устройства.
Установить таймер бездействия на 5 секунд:
usbsrv -set-timeout 5 1
В списке устройств видно, что на USB-устройство установлен таймер бездействия:
Как только период ожидания неактивности устройства истечёт у клиента, USB-сервер откроет доступ к данному устройству для остальных клиентов:
Для отключения таймера бездействия устанавливаем 0 секунд:
usbsrv -set-timeout 0 1
Заключение:
Подведём итог. В данной статье мы рассмотрели ключевые команды USB-Redirector для Linux, изучили конкретные примеры их применения и познакомились с функциональностью утилиты «usbsrv». Надеюсь, материал поможет вам освоить основы работы с USB-Redirector и упростил настройку взаимодействия с удалёнными USB-устройствами. Успехов в дальнейшем изучении и применении этих знаний!