文章目录

  • 0. 简介
  • 1. Server 配置
  • 2. Client 配置
  • 参考资料

0. 简介

USB Over IP 是一种应用很多的场景,目前已经有现成的解决方案 usbip。linux 和 windows 环境下都有配套软件,本文不分析原理就验证一下 Linux 环境下 usbip 功能的使用。


1. Server 配置

运行环境为 ubuntu 20.04.2。操作命令如下:

// (1) 关闭防火墙
$ sudo ufw disable// (2) 加载 server 端驱动
$ cd /lib/modules/`uname -r`/kernel/drivers/usb/usbip
$ sudo insmod usbip-core.ko
$ sudo insmod usbip-host.ko// (3) 编译安装 usbip 用户态工具
$ cd /lib/modules/`uname -r`/build/tools/usb/usbip
$ ./autogen.sh && ./configure && make && sudo make install
$ sudo echo "/usr/local/lib/" >> /etc/ld.so.conf
$ sudo ldconfig// (4) 启动 usbip server 守护进程
$ sudo usbipd -D// (5) 查询 server 端可用的 device
$ usbip list -l
usbip: error: failed to open /usr/share/hwdata//usb.ids- busid 2-1 (0e0f:0003)unknown vendor : unknown product (0e0f:0003)- busid 1-2 (0781:5567)unknown vendor : unknown product (0781:5567)$ lsusb
Bus 001 Device 007: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub// (6) 将其中的 u盘设备 export 出去
$ sudo usbip bind --busid 1-2
usbip: info: bind device on busid 1-1: complete

2. Client 配置

运行环境为 ubuntu 20.04.2。操作命令如下:

// (1) 关闭防火墙
$ sudo ufw disable// (2) 加载 client 端驱动
$ cd /lib/modules/`uname -r`/kernel/drivers/usb/usbip
$ sudo insmod usbip-core.ko
$ sudo insmod vhci-hcd.ko// (3) 编译安装 usbip 用户态工具
$ cd /lib/modules/`uname -r`/build/tools/usb/usbip
$ ./autogen.sh && ./configure && make && sudo make install// (4) 查询 server export 出来的 device
$ sudo usbip list --remote 192.168.232.128
usbip: error: failed to open /usr/share/hwdata//usb.ids
Exportable USB devices
======================- 192.168.232.1281-2: unknown vendor : unknown product (0781:5567): /sys/devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-2: (Defined at Interface level) (00/00/00)// (5) 挂载 server 设备到 client 本地
$ sudo usbip attach --remote 192.168.232.128 -b 1-2
usbip: debug: usbip.c:129:[run_command] running command: `attach'
usbip: debug: usbip_attach.c:100:[import_device] got free port 0
libusbip: debug: vhci_driver.c:367:[usbip_vhci_attach_device2] writing: 0 3 65543 3
libusbip: debug: vhci_driver.c:372:[usbip_vhci_attach_device2] attach attribute path: /sys/devices/platform/vhci_hcd.0/attach
libusbip: debug: vhci_driver.c:380:[usbip_vhci_attach_device2] attached port: 0// (6) 查看本地 usb 设备,已经可用看到 u盘设备,功能可用正常使用
$ sudo usbip port
usbip: error: failed to open /usr/share/hwdata//usb.ids
Imported USB devices
====================
Port 00: <Port in Use> at High Speed(480Mbps)unknown vendor : unknown product (0781:5567)3-1 -> usbip://192.168.232.128:3240/1-2-> remote bus/dev 001/007
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 2a45:0004 Meizu Corp. PRO 6
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

参考资料

1.USB/IP PROJECT
2.usbip/README
3.myusbip
4.USBIP介绍
5.USB/IP - a Peripheral Bus Extension for Device Sharing over IP Network
6.USB/IP: A Transparent Device Sharing Technology over IP Network

Linux usb 5. usbip (USB Over IP) 使用实例相关推荐

  1. 【原创】IP摄像头技术纵览(一)---linux 内核编译,USB摄像头设备识别

    IP摄像头技术纵览(一)- linux 内核编译,USB摄像头设备识别 开始正文之前先来认识一下我的开发环境: 系统:ubuntu 10.04 开发板:AT91SAM9260 + Linux-2.6. ...

  2. linux initrd usb热插拔,linux技术之制作USB启动盘

    linux技术之制作USB启动盘 USB闪存存储装置(优盘)由于具有轻巧精致.使用方便.便于携带等优点,特别是对比软盘具有容量较大.安全可靠.读取速度较快等特性,越来越多人 使用这种装置取代了软驱与软 ...

  3. Linux WIFI 驱动实验(USB和SDIO方式)

    目录 WIFI 驱动添加与编译 向Linux 内核添加WIFI 驱动 配置Linux 内核 编译WIFI 驱动 驱动加载测试 wireless tools 工具移植与测试 wireless tools ...

  4. linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86

    每个人都有一个闪存驱动器.他们但是,有时闪存驱动器可能会被破坏或只是平稳退出工作.如果你在这篇文章中我们 Note:本文中概述的技巧是 使用fsck A从USB驱动器中删除坏块通过简单的方法修复闪存驱 ...

  5. linux系统怎么关闭usb端口,linux系统挂载以及卸载USB接口的设备的解决办法

    Linux如何挂载一个USB设备通常,在Linux系统中,如果要使用硬盘.光盘.软盘或U盘等存储设备,一般先要挂载(但有些高版本的Linux可以做到自动识别和加载设备).当存储设备挂载完成后就可以像目 ...

  6. 写入usb设备 linux 程序,模拟物理USB设备Linux

    最好的方法是使用Linux Gadget驱动程序和硬件,使您成为一个USB设备.小工具驱动程序允许计算机"假装"为任何类型的设备.然后,您的受测系统有一个USB OTG电缆连接到小 ...

  7. usb接口驱动_乾坤合一~Linux设备驱动之USB主机和设备驱动

    这一章从主机侧角度看到的USB 主机控制器驱动和设备驱动从主机侧的角度而言,需要编写的USB 驱动程序包括主机控制器驱动和设备驱动两类,USB 主机控制器驱动程序控制插入其中的USB 设备,而USB ...

  8. linux判断usb进程命令,一种在Linux系统下审计USB设备历史使用情况的方法与流程...

    本发明涉及计算机审计技术领域,具体涉及一种在Linux系统下审计USB设备历史使用情况的方法. 背景技术: 如今,在linux系统中,对于USB设备的插入拔出事件,系统自身是不带有审计功能的,这使得普 ...

  9. Linux下,查看USB设备信息

    Linux下,查看USB设备信息 首先需要将usbfs挂载一下,然后才能查看. $ mount -t usbfs none /proc/bus/usb $ cat  /proc/bus/usb/dev ...

  10. linux查看usb设备名称,Linux系统下查看USB设备名及使用USB设备

    1.系统插入USB设备后,从控制台界面有如下提示: 从控制台信息可以看出插入的USB设备名. 从上图可以看出,插入的USB设备为sde4. 但是,如果是CRT工具远程连接过去,可以使用下面的命令来查看 ...

最新文章

  1. <java并发编程实践>读书笔记一
  2. 学习Python必须要会的,在字符串,列表,元组三者之间相互转换的方法
  3. mysql 配置分区_Mysql的分区配置实验
  4. NDIS与WinSock关系之自我扫盲
  5. vue --- 使用component的 :is属性切换标签页
  6. python加载模型包占用内存多大_加载pickle python对象会占用大量内存
  7. 第五章 MVC之Bundle详解
  8. python程序调用函数的过程是什么_Python:函数定义和调用时都加*,有什么作用?...
  9. anaconda老版本下载的方法
  10. 机器视觉光源学习总结——侧部背光源
  11. 历史上华人计算机科学家,郑州大学韩家炜、张宏江两位校友在世界顶尖计算机科学家排名中再度名列华人科学家和中国大陆科学家之首...
  12. 凸优化第五章对偶 5.6扰动及灵敏度分析
  13. 清华大学:模拟电子技术基础
  14. mysql目录结构与源码
  15. 服务器没有显示器能接笔记本吗,笔记本能连显示器吗,笔记本怎么才能接显示器(图文)...
  16. 公司常用协同管理软件介绍
  17. JUC笔记-共享模型之管程 (Monitor)
  18. python绘制时间节点事件图
  19. 二叉树C++实现数据结构实验
  20. ThingsBoard Mac Docker 安装详细步骤

热门文章

  1. 利用SPSS进行person相关分析及散点图绘制
  2. 【论文精读】Learning Bounds for Importance Weighting
  3. python存根文件_打包存根文件
  4. 第一章概述-------第一节--1.1计算机网络在信息时代中的作用
  5. 汽车自动变速器的共性技术
  6. vbox虚拟机与主机互传文件的四种方法
  7. absolute 宽度自适应
  8. JMX 和 管理系统简介(一)
  9. 煲耳机,看到一篇文章分享下
  10. jQuery fadeIn淡入效果