zoukankan      html  css  js  c++  java
  • USB2 support and USB redirection over the network with qemu

    Hi All,

    I've been working on USB redirection over the network for qemu / spice for a while now. And I'm happy to report I've something which is good enough to invite others to test it. In the mean time Gert Hoffmann (kraxel) has been working on cleaning up the EHCI support which was submitted to the qemu-devel list about a year ago, making it suitable to get merged. My qemu git tree is based on Gert's tree, so it has prelimary USB2 support too. Note that the USB2 support works best when used together with the network redirection code over localhost, that seems to be more reliable at the moment then using qemu's direct usb host redirection code.

    So if you want to play around with this here are some installation instructions. These instructions assume a 64 bit Red Hat or Fedora installation. If you've a 32 bit installation, or are using a distribution which does not use /usr/lib64 for 64 bit installations (such as Debian and Ubuntu) replace /usr/lib64 with /usr/lib in the below instructions.

    First of all you will need my version of libusb, which is has a new libusb_get_device_speed function, this is intended
    to go upstream sometime soon. But first upstream needs to get to long awaited 1.0.9 out the door. To install my (fully compatible) libusb version do:
    git clone git://anongit.freedesktop.org/~jwrdegoede/libusb
    cd libusb
    git checkout usbredir
    ./autogen.sh
    ./configure --prefix=/usr --libdir=/usr/lib64
    make
    sudo make install

    http://cgit.freedesktop.org/~jwrdegoede

    http://hansdegoede.livejournal.com/9682.html

    With the new libusb in place, it is time to build the non qemu parts of the usbredir code
    (a standalone server, as well as the usbredir protocol parser and host libraries):
    git clone git://anongit.freedesktop.org/~jwrdegoede/usbredir
    cd usbredir
    make PREFIX=/usr LIBDIR=/usr/lib64
    sudo make PREFIX=/usr LIBDIR=/usr/lib64 install

    And now lets build qemu with usbredir support (note I enable spice + spices smartcard support here, since that is
    what I use in my day to day testing, this is not strictly needed).
    git clone git://anongit.freedesktop.org/~jwrdegoede/qemu
    cd qemu
    git checkout usbredir
    ./configure --prefix=/usr --enable-smartcard-nss --enable-smartcard --enable-spice --target-list=x86_64-softmmu
    make
    sudo install -m0755 -p x86_64-softmmu/qemu-system-x86_64 "/usr/bin"

    Note do not use make install, this will also install the BIOS roms from qemu git which are outdated, this assumes that you already have a recent qemu installed and will be using the BIOS roms from that version.

    Now start qemu with all the options you use normally and "-usb" or "-usb -device usb-ehci" for USB2 support. To test the network redirection, start the usbredirserver in another terminal, lets say you want to redirect a usb device with vid:pid
    045e:0772, then start usbredirserver like this:
    usbredirserver 045e:0772

    And then in the qemu monitor cmdline type:
    usb_add tcp-redir:localhost:4000

    Notes:
    1) replace localhost with the ip or hostname of the other machine if you're actually testing this over  the network
    2) you can start multiple servers to redirect multiple devices on the same machine, add " -p 4001" to start a second
        server on port 4001, and make the 4000 4001 in the usb_add command
    3) To unplug a device do a usb_del with the exact same arguments as you passed to the usb_add command

    If you're interested in the network protocol used for the usb redirection, see:
    http://cgit.freedesktop.org/~jwrdegoede/u

    sbredir/tree/usb-redirection-protocol.txt

    Regards,

    Hans

    http://cgit.freedesktop.org/~jwrdegoede/qemu/tree/?h=usbredir

  • 相关阅读:
    阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS
    阿里云重磅发布全域集成解决方案,帮助提升5倍全域集成效率
    2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖
    阿里云应用上边缘云解决方案助力互联网All in Cloud
    云栖大会压轴好戏 阿里云智能视频云专场划重点啦!
    阿里云研究员金戈:视频云新“三网一云”,驱动行业应用创新
    阿里云启动视频云V5计划,全面赋能生态合作伙伴
    数据库实例性能调优利器:Performance Insights
    n转m进制标准写法(必须记忆)
    傻逼暴力法画蛇皮矩阵图
  • 原文地址:https://www.cnblogs.com/chinacloud/p/2065654.html
Copyright © 2011-2022 走看看