tasks:usbip
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версия | |||
tasks:usbip [21.04.2023 16:44] – [Вопросы/ответы] viacheslav | tasks:usbip [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== USB через IP ====== | ||
+ | ===== Сервер Linux===== | ||
+ | <code bash> | ||
+ | # Установка | ||
+ | apt install linux-tools-common linux-tools-generic | ||
+ | # Версия | ||
+ | usbip version | ||
+ | |||
+ | # Вкл модуль ядра для сервера: | ||
+ | modprobe usbip-host | ||
+ | echo " | ||
+ | # Вкл службу | ||
+ | usbipd -D | ||
+ | |||
+ | # Вкл модуль ядра для клиента: | ||
+ | modprobe vhci-hcd | ||
+ | echo " | ||
+ | #modprobe usbip-vudc | ||
+ | #echo " | ||
+ | </ | ||
+ | |||
+ | ===== Клиент Windows ===== | ||
+ | <WRAP round info 100%> | ||
+ | Ставить сертификат и отключать цифровую подпись драйверов не нужно с версии usbip-win 0.3.6-dev | ||
+ | ++++ Установка сертификата и отключение цифровой подписи | | ||
+ | <code powershell> | ||
+ | # На клиенте | ||
+ | $cert = " | ||
+ | $certPass = ConvertTo-SecureString -AsPlainText " | ||
+ | Import-PfxCertificate -FilePath " | ||
+ | Import-PfxCertificate -FilePath " | ||
+ | |||
+ | # Ошибка отключения подписи драйверов | ||
+ | bcdedit /set TESTSIGNING ON | ||
+ | Произошла ошибка при задании данных элемента. | ||
+ | Значение защищено политикой безопасной загрузки и не может быть изменено или удалено. | ||
+ | # Решение - вход в загрузочное меню (Shift + reboot) и отключение подписи там. | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # Список локальных USB-устройств | ||
+ | usbip list -l | ||
+ | |||
+ | # Расшарить девайс из списка | ||
+ | usbip bind -b 1-1 | ||
+ | # Убрать общий доступ | ||
+ | usbip unbind -b 1-1 | ||
+ | |||
+ | # Список девайсов на сервере с клиента | ||
+ | usbip list -r 192.168.1.24 | ||
+ | # Примонтировать на клиенте | ||
+ | usbip attach -r 192.168.1.24 -b 1-1 | ||
+ | # Список примонтированных девайсов | ||
+ | usbip port | ||
+ | # Отмонтировать девайс по номеру порта из списка | ||
+ | usbip detach -p 1 | ||
+ | </ | ||
+ | |||
+ | Идея монтирования скриптом по фильтрации ID устройства (здесь: | ||
+ | < | ||
+ | Exportable USB devices | ||
+ | ====================== | ||
+ | - 10.1.0.236 | ||
+ | 3-4: Aladdin Knowledge Systems : HASP copy protection dongle (0529:0001) | ||
+ | : / | ||
+ | : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00) | ||
+ | |||
+ | 3-3: Aladdin Knowledge Systems : HASP copy protection dongle (0529:0001) | ||
+ | : / | ||
+ | : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00) | ||
+ | : | ||
+ | </ | ||
+ | |||
+ | ===== Решение проблем ===== | ||
+ | ==== Сервер - failed to open usb.ids ==== | ||
+ | <code bash> | ||
+ | usbip: error: failed to open / | ||
+ | # Решение: | ||
+ | mkdir / | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | ==== Клиент - cannot find device ==== | ||
+ | При попытке монтирования с клиента возникает ошибка | ||
+ | <code powershell> | ||
+ | .\usbip.exe -a 10.1.0.236 3-3 | ||
+ | usbip err: usbip_windows.c: | ||
+ | # При этом устройство с клиента видно | ||
+ | .\usbip.exe -l 10.1.0.236 | ||
+ | - 10.1.0.236 | ||
+ | 3-3: Aladdin Knowledge Systems : HASP v0.06 (0529:0001) | ||
+ | : / | ||
+ | : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00) | ||
+ | </ | ||
+ | Проблема решается путем проброса USB-девайса //на сервере// | ||
+ | <code bash> | ||
+ | usbip attach --remote=localhost --busid=3-3 | ||
+ | sleep 3 | ||
+ | usbip detach --port=00 | ||
+ | usbip: info: Port 0 is now detached! | ||
+ | </ | ||
+ | |||
+ | ==== Клиент - usbvbus interface is not registered ==== | ||
+ | При попытке монтирования с клиента возникает ошибка | ||
+ | <code powershell> | ||
+ | .\usbip.exe -a 10.1.0.236 3-3 | ||
+ | usbip err: usbip_windows.c: | ||
+ | usbip err: usbip_windows.c: | ||
+ | usbip err: usbip_windows.c: | ||
+ | </ | ||
+ | |||
+ | Решение - необходимо поставить в систему " | ||
+ | |||
+ | Если просто установить usbipenum.inf, | ||
+ | ===== Ссылки ===== | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | https:// | ||
+ | https:// | ||
+ | |||
+ | ===== NIO Electronics EUSB4ep ===== | ||
+ | https:// | ||
+ | |||
+ | Модель NIO-EUSB 4ep | ||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | <code bash> | ||
+ | root@usb:~# lsb_release -a | ||
+ | LSB Version: | ||
+ | Distributor ID: poky | ||
+ | Description: | ||
+ | Release: | ||
+ | Codename: | ||
+ | |||
+ | root@usb:~# uname -a | ||
+ | Linux usb 5.15.48 #1 SMP Thu Jun 16 11:30:35 UTC 2022 armv7l GNU/Linux | ||
+ | |||
+ | root@usb:~# cat / | ||
+ | processor | ||
+ | model name : ARMv7 Processor rev 4 (v7l) | ||
+ | BogoMIPS | ||
+ | Features | ||
+ | CPU implementer : 0x41 | ||
+ | CPU architecture: | ||
+ | CPU variant | ||
+ | CPU part : 0xc07 | ||
+ | CPU revision | ||
+ | |||
+ | processor | ||
+ | model name : ARMv7 Processor rev 4 (v7l) | ||
+ | BogoMIPS | ||
+ | Features | ||
+ | CPU implementer : 0x41 | ||
+ | CPU architecture: | ||
+ | CPU variant | ||
+ | CPU part : 0xc07 | ||
+ | CPU revision | ||
+ | |||
+ | Hardware | ||
+ | Revision | ||
+ | Serial | ||
+ | |||
+ | root@usb:~# cat / | ||
+ | MemTotal: | ||
+ | MemFree: | ||
+ | MemAvailable: | ||
+ | ... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | {{: | ||
+ | |||
+ | <code bash> | ||
+ | root@usb:~# cat / | ||
+ | AutoAttachToKernel=1 | ||
+ | ClaimPorts=0 | ||
+ | DisableEasyFind=1 | ||
+ | HideClientInfo=${VHHideClientInfo} | ||
+ | License=${VHLicense} | ||
+ | MDNSServiceName=_rhusb._tcp | ||
+ | ServerName=${VHServerName} | ||
+ | TCPPort=${VHTCPPort} | ||
+ | UseAVAHI=${VHUseAVAHI} | ||
+ | UseAvahiServiceFile=0 | ||
+ | clientAuthorization=/ | ||
+ | clientDeauthorization=/ | ||
+ | onChangeNickname=/ | ||
+ | onDeviceIgnore=/ | ||
+ | onDeviceKick=/ | ||
+ | onServerRename=/ | ||
+ | It=1600598652 | ||
+ | EasyFindId=KX1vnwHEhNimJz3HjRcHJ5 | ||
+ | EasyFindPin=3yfYna | ||
+ | |||
+ | root@usb:~# cat / | ||
+ | VHLicense=02450942d681, | ||
+ | VHHideClientInfo=0 | ||
+ | VHTCPPort=17602 | ||
+ | VHServerName=usb | ||
+ | VHUseAVAHI=0 | ||
+ | SSLCert=/ | ||
+ | SSLPort=17601 | ||
+ | |||
+ | root@usb:~# cat / | ||
+ | cat: can't open '/ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | root@usb:~# cat / | ||
+ | Mar 1 17:05:19 niousb syslog.info syslogd started: BusyBox v1.31.1 | ||
+ | Mar 1 17:05:19 niousb cron.info crond[172]: (CRON) STARTUP (1.5.5) | ||
+ | Mar 1 17:05:19 niousb cron.info crond[172]: (CRON) INFO (Syslog will be used instead of sendmail.) | ||
+ | Mar 1 17:05:19 niousb cron.info crond[172]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 59% if used.) | ||
+ | Mar 1 17:05:24 niousb user.info vhusbdarmpi2[214]: | ||
+ | Mar 1 17:05:24 niousb user.info vhusbdarmpi2[214]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:25 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:31 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:05:40 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:09:29 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:10:26 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:10:27 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:10:29 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:11:04 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:11:15 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:23:51 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:23:53 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:23:57 niousb user.info vhusbdarmpi2[217]: | ||
+ | Mar 1 17:30:01 niousb cron.info CROND[281]: (root) CMD (/ | ||
+ | Mar 1 17:36:19 niousb auth.info sshd[287]: User root authorized keys /dev/null is not a regular file | ||
+ | Mar 1 17:36:22 niousb auth.info sshd[287]: Accepted password for root from 192.168.1.138 port 55473 ssh2 | ||
+ | </ | ||
+ | ==== Клиент ==== | ||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | <code powershell> | ||
+ | # Имя службы | ||
+ | rhclient | ||
+ | # Отображаемое имя | ||
+ | USB Hub Over Network USB Sharing | ||
+ | # Описание | ||
+ | Provides virtualized access to USB devices over a network | ||
+ | # Параметры запуска службы | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Help | ||
+ | < | ||
+ | USB Hub Over Network 5.2.8, USB Hub Over Network | ||
+ | Usage: rhcl64 [-h][-c < | ||
+ | [-r < | ||
+ | |||
+ | -h, --help | ||
+ | -c, --config=< | ||
+ | -a, --admin | ||
+ | -t, --control=< | ||
+ | -p, --preferipv6 | ||
+ | -q, --language=< | ||
+ | -e, --autofind-off | ||
+ | -g, --start-minimized | ||
+ | -r, --redirect=< | ||
+ | -l, --log=< | ||
+ | -m | ||
+ | -d, --install-drivers | ||
+ | -x, --extract-drivers | ||
+ | -i, --install-service | ||
+ | -b, --install-service-na | ||
+ | -u, --uninstall-service | ||
+ | -y, --uninstall-drivers | ||
+ | -w | ||
+ | -n | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | rhcl.ini | ||
+ | <code ini> | ||
+ | [General] | ||
+ | AutoFind=0 | ||
+ | MainFrameWidth=400 | ||
+ | MainFrameHeight=250 | ||
+ | MainFrameX=1096 | ||
+ | MainFrameY=82 | ||
+ | SSLClientCert= | ||
+ | SSLCAFile= | ||
+ | QualifyByName=1 | ||
+ | QualifyByInterface=0 | ||
+ | AutoUseDelaySec=0 | ||
+ | RetryAutoUseDelaySec=2 | ||
+ | AutoRefreshLookupPeriod=30 | ||
+ | BonjourLookupTimeout=4 | ||
+ | BonjourResolverTimeout=2 | ||
+ | Language=RU-RU | ||
+ | SSLPort=17601 | ||
+ | ReverseLookup=0 | ||
+ | AutoMinimize=1 | ||
+ | [Settings] | ||
+ | ManualHubs=usb.example.com: | ||
+ | [AutoShare] | ||
+ | usb.212=0 | ||
+ | usb.1.1321.212=0 | ||
+ | usb.1.1321=0 | ||
+ | All=1 | ||
+ | [Transport] | ||
+ | PingInterval=3 | ||
+ | PingTimeout=10 | ||
+ | CompressionLimit=384 | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Решение проблем ==== | ||
+ | Есть ERP-система Галактика, | ||
+ | <code dos> | ||
+ | reg add HKLM\SYSTEM\CurrentControlSet\Services\HWServer /v DependOnService /t REG_MULTI_SZ /d rhclient /f | ||
+ | </ | ||
+ | |||
+ | Решение - переключить службу ключа ERP в ручной запуск, | ||
+ | <code dos> | ||
+ | ping 127.0.0.1 -n 20 | ||
+ | net start hwserver | ||
+ | </ | ||
+ | |||
+ | ==== Вопросы/ | ||
+ | // | ||
+ | Настройки, | ||
+ | |||
+ | //Если задавать алиас для USB-устройства, | ||
+ | В разделе Admin ACL в разделе Rename можно добавить доверенный IP, и можно с этого IP с клиента без рестарта переименовывать устройства. | ||
+ | |||
+ | //Без рестарта только с клиента? | ||
+ | Переименовывать alias да, смена acl и description не требует рестарт. | ||
+ | |||
+ | // | ||
+ | Keepalived переключает мастер на слейв при потере мастером сети или недоступностью мастера. Ноды равнозначны, | ||
+ | |||
+ | // | ||
+ | Конфигурирование проводилось на кластерном IP. Почему алиас не прописывается на устройстве?// | ||
+ | Необходимо обновить веб-страницу (Ctrl-R). Полоса загрузки сверху каждые несколько секунд - это проверка информации о подключенных usb-портах.\\ | ||
+ | Постоянно конфигурацию считывать смысла нет, переименование со стороны клиента это скорее как внешнее событие, | ||
+ | |||
+ | //Где можно найти changelog прошивок?// | ||
+ | [[https:// |