美文网首页Android系统分析
基于 usbip 实现共享 usb 设备

基于 usbip 实现共享 usb 设备

作者: 走在成长的道路上 | 来源:发表于2020-12-09 10:11 被阅读0次

    usbip 架构

    usbip 架构

    usbiplinux 系统中默认集成到 Linux-3.17 主线上

    电脑主机做服务器

    # 安装 usbip 软件
    $ sudo apt-get install usbip
    
    # 使能 usbip 驱动模块
    sudo modprobe  usbip-core  usbip-host  usbip-vudc
    # 查看模块状态,也可添加到:/etc/modules 每次开机自启
    $ lsmod | grep usbip
    
    # 查看电脑主机上的usb设备
    $ usbip list -l
     - busid 1-4 (046d:c52b)
       Logitech, Inc. : Unifying Receiver (046d:c52b)
    
     - busid 1-6 (5986:2113)
       Acer, Inc : unknown product (5986:2113)
    
     - busid 1-8 (06cb:00a2)
       Synaptics, Inc. : unknown product (06cb:00a2)
    
    # 启动服务,
    $ usbipd -D &
    # 把usb设备添加到usbip中去:可以添加多个
    # 1-4就是上面的编号,无线usb鼠标
    $ usbip bind -b 1-4  
    
    # 解除绑定usb设备
    $ sudo usbip unbind -b 1-4
    

    树莓派作为客户端

    # 安装usbip软件
    $ sudo apt-get install usbip
    
    # 启动 vhci_hcd 模块
    # 也就是:USB Virtual Host Controller Interface
    $ sudo modprobe vhci_hcd  
    # 查看 vhci_hcd 模块,也可添加到:/etc/modules 每次开机自启
    $ lsmod | grep vhci_hcd
    
    # 查看远端服务器电脑主机上的usb设备
    $ usbip list -r 192.168.1.1
    Exportable USB devices
    ======================
     - 192.168.1.1
            1-4: Logitech, Inc. : Unifying Receiver (046d:c52b)
               : /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4
               : (Defined at Interface level) (00/00/00)
    
    # 将远端服务器电脑主机上的usb设备添加到本地
    $ usbip attach -r 192.168.1.1 -b 1-4
    # 可以查看到本地已经添加上无线鼠标了
    $ lsusb 
    
    # 解除远程usb设备
    $ usbip port
    # 端口号根据上面的查到
    $ usbip detach -p 0 
    

    usbip 模块命令参数:

    usage: usbip [--debug] [--log] [--tcp-port PORT] [version]
                 [help] <command> <args>
    
      attach     Attach a remote USB device           #客户端添加远程usb设备
      detach     Detach a remote USB device           #客户端解除远程usb设备
      list       List exportable or local USB devices #客户端远端usb设备、服务器端查看本地usb设备
      bind       Bind device to usbip-host.ko         #服务器端添加(绑定)本地usb设备到usbip
      unbind     Unbind device from usbip-host.ko     #服务器端从usbip中解除(解绑)本地usb设备
      port       Show imported USB devices            #客户端已添加的远端usb设备
    

    参考

    相关文章

      网友评论

        本文标题:基于 usbip 实现共享 usb 设备

        本文链接:https://www.haomeiwen.com/subject/auncgktx.html