有时您希望使用通过 USB 连接的设备,而不将其放在笔记本电脑旁边的桌子上。 我的设备是一台中国雕刻机,配有 500 mW 激光,近距离接触时相当不愉快。 除了对眼睛造成直接危险外,激光操作期间还会释放有毒燃烧产物,因此设备应放置在通风良好的区域,并最好与人隔离。 如何控制这样的设备? 我在浏览 OpenWRT 存储库时意外找到了这个问题的答案,希望为旧的 D-Link DIR-320 A2 路由器找到一个有价值的用途。 为了进行连接,我决定使用哈布雷之前描述的那个。 USB over IP 隧道然而,所有安装说明都失去了相关性,所以我正在编写自己的说明。
OpenWRT是一个不需要介绍的操作系统,所以我不会描述它的安装。 对于我的路由器,我采用了 OpenWrt 19.07.3 的最新稳定版本,并将其作为客户端连接到主 Wi-Fi 接入点,选择模式 局域网,以免折磨防火墙。
服务器部分
我们按照
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-usb-ohci usbip-server usbip-client
接下来,我们将设备连接到路由器的 USB 端口(在我的例子中,设备:USB 集线器、安装了路由器文件系统的闪存驱动器(由于内部存储空间不足),并且直接将雕刻师)。
让我们尝试显示已连接设备的列表:
root@OpenWrt:~# usbip list -l
空的。
通过谷歌找到了罪魁祸首,原来是一个图书馆 libudev-fbsd.
我们手动从存储库中提取最新的工作版本 libudev_3.2-1 从适用于您的架构的 OpenWRT 17.01.7 版本开始,在我的例子中,它是 libudev_3.2-1_mipsel_mips32.ipk。 使用wget/scp,将其下载到路由器内存中并重新安装
root@OpenWrt:~# opkg remove --force-depends libudev-fbsd
root@OpenWrt:~# opkg install libudev_3.2-1_mipsel_mips32.ipk
检查:
root@OpenWrt:~# usbip list -l
- busid 1-1.1 (090c:1000)
Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) : Flash Drive (090c:1000)
- busid 1-1.4 (1a86:7523)
QinHeng Electronics : HL-340 USB-Serial adapter (1a86:7523)
一名连接到 USB 集线器的中国人收到了 bsuid 1-1.4。 记住。
现在让我们启动守护进程:
root@OpenWrt:~# usbipd -D
和中国人宾丁
root@OpenWrt:~# usbip bind -b 1-1.4
usbip: info: bind device on busid 1-1.4: complete
让我们检查一下一切是否正常:
root@OpenWrt:/home# netstat -alpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3240 0.0.0.0:* LISTEN 1884/usbipd
为了进一步自动绑定设备,让我们编辑 在/etc/rc.local通过在之前添加 退出0 以下内容:
usbipd -D &
sleep 1
usbip bind -b 1-1.4
客户端
让我们尝试使用 openwrt.org 中的上述说明将设备连接到 Windows 10。 我马上就说:这个想法注定会失败。 首先,仅考虑 Windows 7 x64。 其次,提供了一个链接到 sourceforge.net 上的一个线程,建议从 Dropbox 下载 2014 年修补的驱动程序。 当我们尝试在 Windows 10 下运行它并连接到我们的设备时,我们收到以下错误:
c:Utilsusbip>usbip -a 192.168.31.203 1-1.4
usbip for windows ($Id$)
*** ERROR: cannot find device
这是因为客户端无法与为早于 3.14 版本的内核构建的服务器一起使用。
OpenWRT 19.07.3 的 usbip 服务器基于内核 4.14.180 构建。
继续我的搜索,我发现了 Windows 客户端的当前开发
因此,他们首先要求安装证书,然后安装两次。 好吧,我们把它放在受信任的根证书颁发机构和受信任的发布者中。
接下来,您需要将操作系统置于测试模式。 这是由一个团队完成的
bcdedit.exe /set TESTSIGNING ON
我第一次没成功,我碍事了 安全启动。 要禁用它,您需要重新启动到 UEFI 并将安全启动设置为禁用。 某些笔记本电脑型号可能需要设置管理员密码。
之后,启动进入 Windows 并执行 bcdedit.exe / 设置 TESTSIGNING ON
维达说一切都好。 我们再次重新启动,我们会在右下角看到“测试模式”、“版本”和“操作系统版本号”等字样。
所有这些操纵是为了什么? 安装未签名的驱动程序 USB/IP VHCI。 建议通过下载文件 usbip.exe、usbip_vhci.sys、usbip_vhci.inf、usbip_vhci.cer、usbip_vhci.cat 并以管理员权限运行来执行此操作
usbip.exe install
或第二种方法,手动安装旧硬件。 我选择了第二个选项,收到有关安装未签名驱动程序的警告并同意它。
接下来,我们通过运行以下命令检查是否能够连接到远程 USB 设备:
usbip.exe list -r <ip вашего роутера>
我们得到一个设备列表:
c:Utilsusbip>usbip.exe list -r 192.168.31.203
usbip: error: failed to open usb id database
Exportable USB devices
======================
- 192.168.31.203
1-1.4: unknown vendor : unknown product (1a86:7523)
: /sys/devices/ssb0:1/ehci-platform.0/usb1/1-1/1-1.4
: unknown class / unknown subclass / unknown protocol (ff/00/00)
因为一个错误 usbip:错误:无法打开 USB ID 数据库 我们不注意,不影响工作。
现在我们绑定设备:
c:Utilsusbip>usbip.exe attach -r 192.168.31.203 -b 1-1.4
就这样,Windows 已检测到一个新设备,现在您可以使用它,就像它物理连接到笔记本电脑一样。
我在使用中国雕刻机时遇到了一些麻烦,因为当我尝试通过雕刻机(是的,一个 Arduino 雕刻机)附带的安装程序安装其 CH341SER 驱动程序时,USB/IP VHCI 使 Windows 陷入 BSOD。 但是,安装CH341SER驱动程序 对 通过 usbip.exe 连接设备解决了问题。
底线:雕刻师在厨房里开着窗户、关着门时发出噪音和烟雾,我通过我自己的软件从另一个房间观看燃烧过程,该软件没有感觉到卡住。
使用的来源:
来源: habr.com