我有一台路由器,可以连接打印机进行无线打印。Windows 软件似乎使用 TCP 虚拟 USB 总线。这样打印机看起来就像直接插入计算机一样。
是否可以在 Ubuntu 上使用 TCP 创建虚拟 USB 总线,或者这是路由器和 Windows 软件使用的自定义协议?
答案1
这可能是您的路由器和制造商设计的软件使用的自定义/专有协议。
但是,USB over IP 确实存在,并且可以在 Ubuntu 上使用。假设您的路由器使用的是标准 USB over IP 而不是自定义协议,这页面(对于任何通过谷歌找到此内容的人来说,下面都有解释)应该可以帮助您进行设置。
安装 usbip
sudo apt-get install usbip
加载 vhci-hcd 内核模块
modprobe vhci-hcd
检查是否真的已加载
lsmod | grep vhci_hcd
(你的输出应该与下图类似)
root@client1:~# lsmod | grep vhci_hcd vhci_hcd 19800 0 usbip_common_mod 13605 1 vhci_hcd root@client1:~#
(可选)添加启动时加载的模块
sudo echo vhci-hcd >> /etc/modules
连接到服务器(您的路由器)并获取设备列表。
usbip -l serverip
替换
serverip
为您的路由器的 IP 地址。示例输出:
root@client1:~# usbip -l 192.168.0.100 - 192.168.0.100 1-1: SanDisk Corp. : Cruzer Micro Flash Drive (0781:5151) : /sys/devices/pci0000:00/0000:00:07.2/usb1/1-1 : (Defined at Interface level) (00/00/00) : 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
记下您要使用的 USB 设备的名称(此示例中为 1-1)。
将远程设备连接到本地计算机。
usbip -a serverip designation
例如
usbip -a 192.168.12.34 1-1
远程设备现在应该已本地连接到您的计算机。如果您
lsusb
从终端执行,您应该会看到它被列出。