Без рубрики

Использование OpenWRT роутера как шлюза USB-over-IP

В этой статье мы рассмотрим применение бесполезно валяющегося у меня роутера Asus RT-AC51U как шлюза USB-over-IP

Часть 1. Настройка роутера.

Как прошить роутер на OpenWRT вы найдёте сами, статья не про это.

Переходим в System -> Software и нажимаем «Update lists»

После чего в поле «Filter» вводим «usbip»

Устанавливаем client и server, всё остальное должно подтянуться зависимостями. На всякий случай оставлю скриншот как должно быть.

Подключаемся через ssh к роутеру и вводим:

usbip list -l

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

Запускаем демон и пробрасываем нужное устройство командами

usbipd -D
usbip bind -b [busid нужного устройства]

Busid — две циферки через тире, в моем случае это 1-1, и мне надо написать

usbip bind -b 1-1

Чтобы каждый раз при запуске роутера нужное устройство пробрасывалось, пишем в /etc/rc.local следующее:

usbipd -D &
sleep 1
usbip bind -b [busid вашего устройства]

Чтобы оно выглядело так:

Чтобы удостовериться что все работает, вводим:

netstat -alpt | grep usbip

И мы должны получить примерно следующий вывод:

Как видим, usbipd запущен и работает, а значит переходим к клиенту.

Часть 2. Настройка клиента.

Скачиваем клиент с этой страницы или отсюда

Распаковываем архив и устанавливаем сертификат usbip_test.pfx (пароль: usbip) следующим образом:

Локальный компьютер -> доверенные корневые центры сертификации

Локальный компьютер -> доверенные издатели

Открываем командную строку от имени администратора и вводим это:

bcdedit /set testsigning on

Перезагружаем систему

Если вы увидели справа внизу надпись «тестовый режим», значит вы всё сделали правильно

Перемещаем папку с usbip в удобное место, я сделаю это в корень диска C, и открываем командную строку или PowerShell (отличие PowerShell от командной строки в том что перед именем исполняемого файла надо будет постоянно писать .\).

Вводим это:

usbip.exe install

И мы должны получить это:

После чего вводим

usbip.exe list -r [ip адрес вашего шлюза]

И мы должны получить список устройств которые можем присоединить (карту захвата в процессе написания я поменял)

Если всё нормально, то вводим следующую команду:

usbip.exe attach -r [ip адрес сервера usbip] -b [busid нужного устройства]

После чего вывод должен быть таким:

Ну и конечно же мы сразу видим это:

Тестируем наше устройство:

Всё готово и работает, вы великолепны!

На этом всё, если статья вам понравилась или помогла, то поделитесь ею или поддержите меня материально. Можно и то и то 🙂