linux系统USB/IP远程共享USB设备 —— 筑梦之路

概述 

USB/IP 是一个开源项目,已合入 Kernel,在 Linux 环境下可以通过使用 USB/IP 远程共享 USB 设备。

USB Client:使用USB的终端,将server共享的usb设备挂载到本地。
USB Server:分享本地的usb设备至远程。

架构原理 

  主要部分也是两个,读取设备的主机端,设置一个虚拟的主机控制器接口VHCI,它不操纵底层的主机控制器,而是将上层的消息通过网络转发到另一个主机,在另一侧,实现一个USB设备驱动,它不是将USB Core的内容向上传递,同样是通过网络发送出去,叫做Stub端 。

  usbip分为两端:server端和client端,它们分别运行在不同的linux主机中,其中运行server端驱动的PC插入usb设备(如U盘等),用于共享。此时client端PC就可以attach到server端,此时client端的主机PC就能看到u盘,它以为真的有一个u盘插入本机,并为其安装驱动,效果跟在本机上直接插入U盘无异,实现了u盘共享,或者USB延长器的功效。

 

环境搭建与测试验证

环境说明

本地debian

远端centos 云服务器

配置 USB Server

#安装包含USBIP的软件包

sudo apt-get install linux-tools-generic 

// 或者
sudo apt-get install usbip

#使用modprobe自动处理可载入模块usbip-core

sudo modprobe usbip-core 

#使用modprobe自动处理可载入模块vhci-hcd

sudo modprobe vhci-hcd  

#使用modprobe自动处理可载入模块usbip-vudc

sudo modprobe usbip-vudc 

#使用modprobe自动处理可载入模块usbip-host

sudo modprobe usbip-host 

 查看设备

usbip list --local

启动服务

# 记录 busid 的值,并依次执行以下命令,启动监听服务,指定 USB/IP 端口号,共享 USB 设备。

sudo usbipd -D [--tcp-port PORT]

 共享设备

# 查看设备的busid

usbip list -l

sudo usbip bind -b [busid]

设备共享成功后就可以在client客户端查看

# 停止共享

usbip unbind -b [busid]

SSH隧道

ssh -Nf -R USB/IP指定端口号:localhost:USB/IP指定端口号 root@your_host

# your_host 表示云服务器的 IP 地址

# 例如,USB/IP 的端口号为3240端口,云服务器的 IP 地址为192.168.15.24,则执行以下命令

ssh -Nf -R 3240:localhost:3240 root@192.168.15.24

 

配置USB Client

# 安装

yum -y install kmod-usbip usbip-utils
modprobe usbip-core
modprobe vhci-hcd
modprobe usbip-host

# 查询可用设备

usbip list --remote server_ip

sudo usbip list -r [服务端地址]

# attach 远程usb至本地

usbip attach --remote=server_ip --busid=dev_busid

sudo usbip attach -r [服务端地址] -b [busid]

# 查看设备
lsusb


#断开连接

sudo usbip port #查看客户端连接usb设备的端口号

sudo usbip detach -p 00 #断开port端口号为00的的远程USB连接

sudo usbip detach -p 00
usbip: info: Port 0 is now detached!

开源地址:GitHub - usbip/implementations: USB/IP Server/Client/Userspace Implementations

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值