Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 526658 - >=app-emulation/qemu-2.1.0 fails to pass USB flash drive to guest
Summary: >=app-emulation/qemu-2.1.0 fails to pass USB flash drive to guest
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo QEMU Project
URL: https://bugs.launchpad.net/qemu/+bug/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-24 16:57 UTC by Andrew Petelin
Modified: 2014-12-31 02:52 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix usb (usb_disaster.patch,2.14 KB, patch)
2014-12-09 09:44 UTC, Pascal
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Petelin 2014-10-24 16:57:37 UTC
When starting qemu with -usbdevice host:xxxx:yyyy option it doesn't pass corresponding attached USB device to guest OS (Debian GNU/Linux, wheezy, amd64).

Device is USB 2.0 flash drive, USB host is USB 2.0 or USB 3.0.

A 2--3 months ago everything was OK.

Reproducible: Always

Steps to Reproduce:
* start qemu:
sudo qemu-system-x86_64 -enable-kvm -cpu host -smp cores=8,threads=1,sockets=1 -netdev tap,id=vm-wheezy.eth0,ifname=vm-wheezy.eth0,script=.../qemu/configs/wheezy-amd64/ifup.sh,downscript=.../qemu/configs/wheezy-amd64/ifdown.sh -device virtio-net-pci,netdev=vm-wheezy.eth0,mac=DE:AD:BE:EF:00:00 -vnc 127.0.0.1:0 -m 2048 -usb -hda /mnt/vms/qemu/wheezy-amd64.hda.qcow2 -hdb /mnt/vms/qemu/emul-usb-flash.2G.qcow2 -usbdevice host:8564:1000

* attach USB flash drive

* [host]: udevadm shows, that device has been successfully attached:
$ udevadm monitor 
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[9925.089672] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
KERNEL[9925.089742] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
KERNEL[9925.089845] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host20 (scsi)
KERNEL[9925.089858] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host20/scsi_host/host20 (scsi_host)
UDEV  [9925.097016] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
UDEV  [9925.097574] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
UDEV  [9925.097766] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host20 (scsi)
UDEV  [9925.097989] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host20/scsi_host/host20 (scsi_host)

* [guest]: see error in /var/log/syslog:
Oct 24 20:41:14 wheezy-x86-64 kernel: [ 4062.536100] usb 1-1: new low-speed USB device number 6 using uhci_hcd
Oct 24 20:41:14 wheezy-x86-64 kernel: [ 4062.900079] usb 1-1: Invalid ep0 maxpacket: 64
Oct 24 20:41:15 wheezy-x86-64 kernel: [ 4063.240088] usb 1-1: new low-speed USB device number 7 using uhci_hcd
Oct 24 20:41:15 wheezy-x86-64 kernel: [ 4063.604080] usb 1-1: Invalid ep0 maxpacket: 64
Oct 24 20:41:15 wheezy-x86-64 kernel: [ 4063.944084] usb 1-1: new low-speed USB device number 8 using uhci_hcd
Oct 24 20:41:15 wheezy-x86-64 kernel: [ 4063.963507] usb 1-1: Invalid ep0 maxpacket: 64
Oct 24 20:41:16 wheezy-x86-64 kernel: [ 4064.308120] usb 1-1: new low-speed USB device number 9 using uhci_hcd
Oct 24 20:41:16 wheezy-x86-64 kernel: [ 4064.327695] usb 1-1: Invalid ep0 maxpacket: 64
Oct 24 20:41:16 wheezy-x86-64 kernel: [ 4064.328721] hub 1-0:1.0: unable to enumerate USB device on port 1

* unplug USB device

* [host]: qemu-system-x86_64 command prints the following to console:
libusb: error [_open_sysfs_attr] open /sys/bus/usb/devices/2-1.2/bConfigurationValue failed ret=-1 errno=2
Actual Results:  
USB device is not passed into the guest OS, available in the host one.

Expected Results:  
USB device successfully passed into the guest OS.

# emerge --info
Portage 2.2.8-r2 (default/linux/amd64/13.0/desktop, gcc-4.7.3, glibc-2.19-r1, 3.14.14-gentoo x86_64)
=================================================================
System uname: Linux-3.14.14-gentoo-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    16122104 total,  12129988 free
KiB Swap:    4194300 total,   4194300 free
Timestamp of tree: Fri, 24 Oct 2014 09:15:01 +0000
ld GNU ld (Gentoo 2.23.2 p1.0) 2.23.2
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.7, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1, 4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo adrianopol sunrise
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -march=native -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/   ftp://mirror.yandex.ru/gentoo-distfiles/   ftp://gentoo.bloodhost.ru/   http://gentoo.bloodhost.ru/   ftp://mirror2.corbina.ru/gentoo-distfiles/   http://mirror2.corbina.ru/gentoo-distfiles/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/sunrise"
SYNC="rsync://mirror.yandex.ru/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg fftw firefox flac fontconfig fortran fuse gd gdbm gif glamor gnutls gpm gstreamer gtk i18n iconv icu ipv6 jabber jpeg lame latex lcms ldap libcaca libnotify mad matroska mmap mmx mng modules mp3 mp4 mpeg mplayer multilib musepack ncurses network nls nptl nsplugin ogg openal opengl openmp otr pam pango pcre pdf perl png policykit ppds pulseaudio python qt3support qt4 readline ruby sdl session sharedmem speex spell sqlite sqlite3 sse sse2 ssl ssse3 startup-notification svg syslog tcpd theora threads tiff timidity truetype udev udisks unicode upower usb v4l vaapi video vim-syntax vorbis vpx wavpack webkit wxwidgets x264 xcb xft xml xscreensaver xv xvid zlib zsh-completion" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

----------

# eix '-I*' 'qemu|libusb'
[I] app-emulation/qemu
     Available versions:  2.1.0-r1 2.1.1 ~2.1.2 **9999 {accessibility +aio alsa bluetooth +caps +curl debug +fdt +filecaps glusterfs gtk infiniband iscsi +jpeg lzo ncurses nfs nls numa opengl +pin-upstream-blobs +png pulseaudio python rbd sasl sdl +seccomp selinux smartcard snappy spice ssh static static-softmmu static-user systemtap tci test +threads tls usb usbredir +uuid vde +vhost-net virtfs +vnc xattr xen xfs KERNEL="FreeBSD linux" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="aarch64 alpha arm cris i386 lm32 m68k microblaze microblazeel mips mips64 mips64el mipsel moxie or32 ppc ppc64 ppcemb s390x sh4 sh4eb sparc sparc64 unicore32 x86_64 xtensa xtensaeb" QEMU_USER_TARGETS="aarch64 alpha arm armeb cris i386 m68k microblaze microblazeel mips mips64 mips64el mipsel mipsn32 mipsn32el or32 ppc ppc64 ppc64abi32 s390x sh4 sh4eb sparc sparc32plus sparc64 unicore32 x86_64"}
     Installed versions:  2.1.1(07:14:19 PM 10/24/2014)(aio alsa bluetooth caps curl fdt filecaps gtk jpeg ncurses nls opengl pin-upstream-blobs png pulseaudio python sdl seccomp threads usb uuid vhost-net vnc -accessibility -debug -glusterfs -infiniband -iscsi -lzo -nfs -numa -rbd -sasl -selinux -smartcard -snappy -spice -ssh -static -static-softmmu -static-user -systemtap -tci -test -tls -usbredir -vde -virtfs -xattr -xen -xfs KERNEL="linux -FreeBSD" PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64 -aarch64 -alpha -arm -cris -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="i386 x86_64 -aarch64 -alpha -arm -armeb -cris -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32")
     Homepage:            http://www.qemu.org http://www.linux-kvm.org
     Description:         QEMU + Kernel-based Virtual Machine userland tools

[I] dev-libs/libusb
     Available versions:  (1) 1.0.9-r2 1.0.18 ~1.0.19
       {debug doc examples static-libs test udev ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Installed versions:  1.0.18(1)(09:22:02 PM 04/01/2014)(udev -debug -doc -examples -static-libs -test ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32")
     Homepage:            http://libusb.sourceforge.net/
     Description:         Userspace access to USB devices

[I] dev-libs/libusb-compat
     Available versions:  0.1.5-r2 ~0.1.5-r3 {debug examples static-libs ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Installed versions:  0.1.5-r2(10:23:27 PM 03/06/2014)(-debug -examples -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32")
     Homepage:            http://libusb.sourceforge.net/
     Description:         Userspace access to USB devices (libusb-0.1 compat wrapper)

[I] virtual/libusb
     Available versions:  
     (0)    0-r2
     (1)    1-r1
       {udev ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Installed versions:  0-r2(09:09:00 PM 06/19/2014)(ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32") 1-r1(1)(09:23:36 PM 04/01/2014)(udev ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32")
     Description:         Virtual for libusb
Comment 1 Andrew Petelin 2014-10-24 17:00:14 UTC
qemu versions checked: 2.1.0-r1, 2.1.1, ~2.1.2.
Comment 2 SpanKY gentoo-dev 2014-11-08 17:49:27 UTC
qemu-2.0.2 works, but qemu-2.1.0 fails (as does 2.1.2).  the new qemu-2.2.0-rc0 also fails.  lemme try to bisect this.
Comment 3 SpanKY gentoo-dev 2014-11-08 18:41:26 UTC
looks like the problem is this change:
http://git.qemu.org/?p=qemu.git;a=commit;h=b791c3b38c7969cb9f4acda8229e19fd865a1c08

you should be able to revert that and put it into /etc/portage/patches/app-emulation/qemu/ and re-emerge the package and it'll work for you until we can get upstream sorted out
Comment 4 SpanKY gentoo-dev 2014-11-08 18:48:21 UTC
i'll probably include a revert of that commit for the next release if they don't sort it out
Comment 5 Andrew Petelin 2014-11-08 20:31:03 UTC
Thank you!
Comment 6 Pascal 2014-12-09 09:44:28 UTC
Created attachment 391264 [details, diff]
Fix usb

Revert patch for usb.
Comment 7 Matthias Maier gentoo-dev 2014-12-14 23:48:21 UTC
(In reply to SpanKY from comment #4)
> i'll probably include a revert of that commit for the next release if they
> don't sort it out

According to [1] comment #5 a fix should be related to commit 79ae25af1569a50a0ec799901a1bb280c088f121. This commit entered right after 2.2.0-rc1 and should be now in 2.2.0.

As the comment on the launchpad bug is a bit hard to understand, can you please test version qemu-2.2.0 that just entered the tree [2]?

[1] https://bugs.launchpad.net/qemu/+bug/1385934

[2]
*qemu-2.2.0 (14 Dec 2014)

  14 Dec 2014; Matthias Maier <tamiko@gentoo.org> +qemu-2.2.0.ebuild,
  metadata.xml:
  version bump; cleanup whitespace in metadata.xml
Comment 8 SpanKY gentoo-dev 2014-12-31 02:52:31 UTC
(In reply to Matthias Maier from comment #7)

qemu-2.2.0 seems to work, so lets close this out