usb passthrough not working anymore

Bug #1320360 reported by Martin Röh
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Hi,

I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7 as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but starting with qemu 2.0.0 passthrough stop working. I can still add the usb device but when I start the guest following message appears:

"unable to execute QEMU command 'device_add': 'usb-host' is not a valid device model name"

Then the guest will not start.

I try it with different usb devices (iphone, stick, hdd), always the same error.

Are there any news / hints about this ?

Regards

Martin

Revision history for this message
Peter Wu (lekensteyn) wrote :
Revision history for this message
Gonglei (arei-gonglei) wrote : RE: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working anymore

Hi,

From qemu-1.7 release version, the old usb-host(host-linux.c) had been removed,
re-implemented by libusbx. So you should build qemu with --enable-libusb, then
you can use usb pass-through capacity.

BTW, Gerd, should we enable libusb by default now? Thanks.

Best regards,
-Gonglei

> -----Original Message-----
> From: <email address hidden>
> [mailto:<email address hidden>] On
> Behalf Of Martin R?h
> Sent: Saturday, May 17, 2014 3:35 AM
> To: <email address hidden>
> Subject: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working
> anymore
>
> Public bug reported:
>
> Hi,
>
> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
> starting with qemu 2.0.0 passthrough stop working. I can still add the
> usb device but when I start the guest following message appears:
>
> "unable to execute QEMU command 'device_add': 'usb-host' is not a valid
> device model name"
>
> Then the guest will not start.
>
> I try it with different usb devices (iphone, stick, hdd), always the
> same error.
>
> Are there any news / hints about this ?
>
> Regards
>
> Martin
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
>
> --
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1320360
>
> Title:
> usb passthrough not working anymore
>
> Status in QEMU:
> New
>
> Bug description:
> Hi,
>
> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
> starting with qemu 2.0.0 passthrough stop working. I can still add the
> usb device but when I start the guest following message appears:
>
> "unable to execute QEMU command 'device_add': 'usb-host' is not a
> valid device model name"
>
> Then the guest will not start.
>
> I try it with different usb devices (iphone, stick, hdd), always the
> same error.
>
> Are there any news / hints about this ?
>
> Regards
>
> Martin
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1320360/+subscriptions

Revision history for this message
Martin Röh (mar7in) wrote : Re: [Bug 1320360] Re: usb passthrough not working anymore

The command line is

/usr/bin/qemu-system-x86_64 -machine accel=kvm -name win8 -S -machine
pc-i440fx-2.0,accel=kvm,usb=off -cpu Nehalem -m 2048 -realtime mlock=off
-smp 2,sockets=2,cores=1,threads=1 -uuid
424ca5ec-2fb4-4d1c-84c4-25b92d468b8e -no-user-config -nodefaults
-chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win8.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc
base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard
-no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global
PIIX4_PM.disable_s4=1 -boot strict=on -device
ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device
ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4
-device
ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1
-device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2
-device ahci,id=ahci0,bus=pci.0,addr=0x7 -drive
file=/opt/emu/win8.raw,if=none,id=drive-virtio-disk0,format=raw -device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2
-netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=23 -device
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:44:d1:dc,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0
-vnc 127.0.0.1:0 -device VGA,id=video0,bus=pci.0,addr=0x2 -device
intel-hda,id=sound0,bus=pci.0,addr=0x8 -device
hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6

Am 17.05.2014 01:15, schrieb Lekensteyn:
> Be sure to add the -usb option. What is your command line?
>
> See also
> http://git.qemu.org/?p=qemu.git;a=blob;f=docs/usb2.txt;h=c7a445afcd55fe1f12033d529d668a1306d5a9f4;hb=HEAD#l111
>

Revision history for this message
Martin Röh (mar7in) wrote : Re: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working anymore

Hi,

as far as I can see from the rpm specs of the opensuse rpm package the
--enable-libusb is set .

Regards

Martin

Am 18.05.2014 06:52, schrieb Gonglei (Arei):
> Hi,
>
> From qemu-1.7 release version, the old usb-host(host-linux.c) had been removed,
> re-implemented by libusbx. So you should build qemu with --enable-libusb, then
> you can use usb pass-through capacity.
>
> BTW, Gerd, should we enable libusb by default now? Thanks.
>
>
> Best regards,
> -Gonglei
>
>> -----Original Message-----
>> From: <email address hidden>
>> [mailto:<email address hidden>] On
>> Behalf Of Martin R?h
>> Sent: Saturday, May 17, 2014 3:35 AM
>> To: <email address hidden>
>> Subject: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working
>> anymore
>>
>> Public bug reported:
>>
>> Hi,
>>
>> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
>> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
>> starting with qemu 2.0.0 passthrough stop working. I can still add the
>> usb device but when I start the guest following message appears:
>>
>> "unable to execute QEMU command 'device_add': 'usb-host' is not a valid
>> device model name"
>>
>> Then the guest will not start.
>>
>> I try it with different usb devices (iphone, stick, hdd), always the
>> same error.
>>
>> Are there any news / hints about this ?
>>
>> Regards
>>
>> Martin
>>
>> ** Affects: qemu
>> Importance: Undecided
>> Status: New
>>
>> --
>> You received this bug notification because you are a member of qemu-
>> devel-ml, which is subscribed to QEMU.
>> https://bugs.launchpad.net/bugs/1320360
>>
>> Title:
>> usb passthrough not working anymore
>>
>> Status in QEMU:
>> New
>>
>> Bug description:
>> Hi,
>>
>> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
>> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
>> starting with qemu 2.0.0 passthrough stop working. I can still add the
>> usb device but when I start the guest following message appears:
>>
>> "unable to execute QEMU command 'device_add': 'usb-host' is not a
>> valid device model name"
>>
>> Then the guest will not start.
>>
>> I try it with different usb devices (iphone, stick, hdd), always the
>> same error.
>>
>> Are there any news / hints about this ?
>>
>> Regards
>>
>> Martin
>>
>> To manage notifications about this bug go to:
>> https://bugs.launchpad.net/qemu/+bug/1320360/+subscriptions
>

Revision history for this message
Martin Röh (mar7in) wrote :
Download full text (3.4 KiB)

Hi,

if I try to start the vm by virt-manager I get this detailed error log:

Fehler beim Starten der Domain: internal error: early end of file from
monitor: possible problem:
qemu-system-x86_64: -device usb-host,hostbus=1,hostaddr=3,id=hostdev0:
'usb-host' is not a valid device model name

Traceback (most recent call last):
   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 91, in
cb_wrapper
     callback(asyncjob, *args, **kwargs)
   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 127, in
tmpcb
     callback(*args, **kwargs)
   File "/usr/share/virt-manager/virtManager/domain.py", line 1363, in
startup
     self._backend.create()
   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 917, in create
     if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: early end of file from monitor: possible
problem:
qemu-system-x86_64: -device usb-host,hostbus=1,hostaddr=3,id=hostdev0:
'usb-host' is not a valid device model name

Regards

Martin

Am 18.05.2014 06:52, schrieb Gonglei (Arei):
> Hi,
>
> From qemu-1.7 release version, the old usb-host(host-linux.c) had been removed,
> re-implemented by libusbx. So you should build qemu with --enable-libusb, then
> you can use usb pass-through capacity.
>
> BTW, Gerd, should we enable libusb by default now? Thanks.
>
>
> Best regards,
> -Gonglei
>
>> -----Original Message-----
>> From: <email address hidden>
>> [mailto:<email address hidden>] On
>> Behalf Of Martin R?h
>> Sent: Saturday, May 17, 2014 3:35 AM
>> To: <email address hidden>
>> Subject: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working
>> anymore
>>
>> Public bug reported:
>>
>> Hi,
>>
>> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
>> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
>> starting with qemu 2.0.0 passthrough stop working. I can still add the
>> usb device but when I start the guest following message appears:
>>
>> "unable to execute QEMU command 'device_add': 'usb-host' is not a valid
>> device model name"
>>
>> Then the guest will not start.
>>
>> I try it with different usb devices (iphone, stick, hdd), always the
>> same error.
>>
>> Are there any news / hints about this ?
>>
>> Regards
>>
>> Martin
>>
>> ** Affects: qemu
>> Importance: Undecided
>> Status: New
>>
>> --
>> You received this bug notification because you are a member of qemu-
>> devel-ml, which is subscribed to QEMU.
>> https://bugs.launchpad.net/bugs/1320360
>>
>> Title:
>> usb passthrough not working anymore
>>
>> Status in QEMU:
>> New
>>
>> Bug description:
>> Hi,
>>
>> I'm using qemu 2.0.0 with opensuse 13.1 x84_64 bit as host and window7
>> as guest. Til qemu version 1.6.2 USB passthrough works perfectly, but
>> starting with qemu 2.0.0 passthrough stop working. I can still add the
>> usb device but when I start the guest following message appears:
>>
>> "unable to execute QEMU command 'device_add': 'usb-host' is not a
>> valid device model name"
>>
>> Then the guest will not start.
>>
>> I try it with...

Read more...

Revision history for this message
Gonglei (arei-gonglei) wrote :

Hi,

> -----Original Message-----
> From: Martin Röh [mailto:<email address hidden>]
> Sent: Monday, May 19, 2014 4:40 AM
> To: Gonglei (Arei); Bug 1320360; <email address hidden>
> Cc: Gerd Hoffmann
> Subject: Re: [Qemu-devel] [Bug 1320360] [NEW] usb passthrough not working
> anymore
>
> Hi,
>
> if I try to start the vm by virt-manager I get this detailed error log:
>
> Fehler beim Starten der Domain: internal error: early end of file from
> monitor: possible problem:
> qemu-system-x86_64: -device usb-host,hostbus=1,hostaddr=3,id=hostdev0:
> 'usb-host' is not a valid device model name
>
>
> Traceback (most recent call last):
> File "/usr/share/virt-manager/virtManager/asyncjob.py", line 91, in
> cb_wrapper
> callback(asyncjob, *args, **kwargs)
> File "/usr/share/virt-manager/virtManager/asyncjob.py", line 127, in
> tmpcb
> callback(*args, **kwargs)
> File "/usr/share/virt-manager/virtManager/domain.py", line 1363, in
> startup
> self._backend.create()
> File "/usr/lib64/python2.7/site-packages/libvirt.py", line 917, in create
> if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
> libvirtError: internal error: early end of file from monitor: possible
> problem:
> qemu-system-x86_64: -device usb-host,hostbus=1,hostaddr=3,id=hostdev0:
> 'usb-host' is not a valid device model name
>
The above error information shows "usb-host" didn't been built in qemu-system-x86_64
binary file. You can get the qemu-2.0.0 source files from http://wiki.qemu.org/Download
and rebuild it with '--enable-libusb' during configure.

Best regards,
-Gonglei

Revision history for this message
Gerd Hoffmann (kraxel-redhat) wrote :

On So, 2014-05-18 at 22:36 +0200, Martin Röh wrote:
> Hi,
>
> as far as I can see from the rpm specs of the opensuse rpm package the
> --enable-libusb is set .

> > BTW, Gerd, should we enable libusb by default now? Thanks.

By default libusb will be used when found on the system.
When it isn't there qemu will be built without usb-host support.

If you explicitly ask for libusb support (via --enable-libusb) and
libusbx isn't found configure should fail.

cheers,
  Gerd

Revision history for this message
Bruce Rogers (brogers-q) wrote :

Martin,

The OBS Virtualization/qemu project doesn't build QEMU v2.0 with libusb support for openSUSE 13.1, because the version provided in that distro was 1.0.9, and QEMU's configure requires 1.0.13.

Bruce

Revision history for this message
Maarten (login-6) wrote :

Hi, I've done the following on my OpenSUSE 13.1 install where I'm in sore need of USB passthrough with QEMU 2.0.0
1) zypper source-install qemu to get the sources
2) update of libusb to 1.0.18 from the hardware:/debug/OpenSUSE_Factory repo - packages are libusb-1_0-0 and libusb-1_0-devel
3) removed the version check for --enable-libusb in qemu.spec to ensure that this flag is set when building
The output of rpmbuild -bb /usr/src/packages/SPECS/qemu.spec is
error: Failed build dependencies:
        libusb-devel is needed by qemu-2.0.0-240.5.x86_64
        xen-devel is needed by qemu-2.0.0-240.5.x86_64
Any input is greatly appreciated.

Revision history for this message
Maarten (login-6) wrote :

xen-devel was not an issue (that package was installed so that dependency was resolved immediately) but libusb-devel is still reported as missing, even though I have a 1.0.18 version of a libusb-1_0-devel installed. I would think it's only the package name that is different. I'm not overly familiar with the build process, therefore I'm not certain if it would be sufficient to modify the qemu.spec build spec with the library name as it is installed on my system. Thanks.

Revision history for this message
Maarten (login-6) wrote :

I went ahead and modified the qemu.spec to require libusb-1_0-devel instead of libusb-devel. That seems to work as according to the build output it includes /usr/include/libusb-1.0. I apologize for needing three comments to get to this point. This is all very much a learning experience for me.

It looks like something may be broken when building seabios.

ASL Input: /usr/src/packages/BUILD/qemu-2.0.0/roms/seabios/builds/seabios-128k/src/fw/acpi-dsdt.dsl.i - 475 lines, 19178 bytes, 316 keywords
AML Output: /usr/src/packages/BUILD/qemu-2.0.aml - 4407 bytes, 159 named objects, 157 executable opcodes
Listing File: /usr/src/packages/BUILD/qemu-2.0.lst - 174477 bytes
Hex Dump: /usr/src/packages/BUILD/qemu-2.0.hex - 41680 bytes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 246 Optimizations
Traceback (most recent call last):
  File "./scripts/acpi_extract.py", line 237, in <module>
    for line in fileinput.input():
  File "/usr/lib64/python2.7/fileinput.py", line 252, in next
    line = self.readline()
  File "/usr/lib64/python2.7/fileinput.py", line 344, in readline
    self._file = open(self._filename, self._mode)
IOError: [Errno 2] No such file or directory: '/usr/src/packages/BUILD/qemu-2.0.0/roms/seabios/builds/seabios-128k/src/fw/acpi-dsdt.lst'
make[1]: *** [/usr/src/packages/BUILD/qemu-2.0.0/roms/seabios/builds/seabios-128k/src/fw/acpi-dsdt.hex] Error 1
make[1]: Leaving directory `/usr/src/packages/BUILD/qemu-2.0.0/roms/seabios'
make: *** [build-seabios-config-seabios-128k] Error 2
make: Leaving directory `/usr/src/packages/BUILD/qemu-2.0.0/roms'
error: Bad exit status from /var/tmp/rpm-tmp.LbOtWA (%build)

Now I'm well and truly stuck. Is there a way to leave seabios out of the equation or can this be resolved?

Revision history for this message
Thomas Huth (th-huth) wrote :

Triaging old bug tickets... can you still reproduce this issue with the latest version of QEMU? Or could we close this ticket nowadays?

Changed in qemu:
status: New → Incomplete
Revision history for this message
Martin Röh (mar7in) wrote : Re: [Bug 1320360] Re: usb passthrough not working anymore

Hi,

the ticket can be close. All works fine with actual opensuse tumbleweed
and qemu 2.10.0 :-)

Best regards

Martin

Am 03.10.2017 um 12:42 schrieb Thomas Huth:
> Triaging old bug tickets... can you still reproduce this issue with the
> latest version of QEMU? Or could we close this ticket nowadays?
>
> ** Changed in: qemu
> Status: New => Incomplete
>

Revision history for this message
Thomas Huth (th-huth) wrote :

Thanks for checking again!

Changed in qemu:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.