RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 723760 - usb-host occupys two ports
Summary: usb-host occupys two ports
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.2
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Gerd Hoffmann
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-21 03:38 UTC by juzhang
Modified: 2013-01-10 00:07 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-08-12 08:42:59 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description juzhang 2011-07-21 03:38:59 UTC
Description of problem:


Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.171.el6.x86_64


How reproducible:
100%

Steps to Reproduce:
1.Boot guest with -device usb-host option and specify hostport=003
 /usr/libexec/qemu-kvm   -enable-kvm -m 1024 -smp 2,sockets=2,cores=1,threads=1 -name rhel6.1-64 -rtc base=utc -boot c -drive file=/tmp/RHEL-Server-6.1-64.raw,if=none,id=drive-virtio-disk0,format=raw,cache=none,aio=threads,boot=on -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -netdev tap,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:2f:e8:d2,bus=pci.0,addr=0x3  -device usb-tablet,id=input0 -vnc :11 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -monitor stdio 
/
-usb  -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,hostbus=002,hostaddr=004,hostport=003,vendorid=04e8,productid=5120
/
2.check usb-host status,please note  Bus 2, Addr 4
#info usbhost 
  Bus 1, Addr 2, Port 1, Speed 480 Mb/s
    Hub: USB device 8087:0024
  Bus 2, Addr 2, Port 1, Speed 480 Mb/s
    Hub: USB device 8087:0024
  Bus 1, Addr 3, Port 1.3, Speed 1.5 Mb/s
    Class 00: USB device 413c:2105, Dell USB Keyboard
  Bus 1, Addr 4, Port 1.4, Speed 1.5 Mb/s
    Class 00: USB device 046d:c018, USB Optical Mouse
/this device occupys two ports,port 1.7 and port 3.
  Bus 2, Addr 4, Port 1.7, Speed 480 Mb/s
    Class 00: USB device 04e8:5120, U5
  Auto filters:
    Bus 2, Addr 4, Port 003, ID 04e8:5120
/
Actual results:
in guest
#lsusb, can't find USB device 04e8:5120.this device is Samsung Electronics.
Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

in guest. however,can find this device via fdisk -l
#fdisk -l
Disk /dev/sda: 1906 MB, 1906311168 bytes
202 heads, 48 sectors/track, 96 cylinders
Units = cylinders of 9696 * 2048 = 19857408 bytes
Sector size (logical/physical): 2048 bytes / 2048 bytes
I/O size (minimum/optimal): 2048 bytes / 2048 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          96     1861536    b  W95 FAT32
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 0, 48) logical=(0, 1, 1)


Expected results:
Can find usb device via lsusb and usb-host just occupy one port.

Additional info:
If I don't specify hostport.
boot guest with 
-usb  -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,hostbus=002,hostaddr=004,vendorid=04e8,productid=5120 

(qemu) info usbhost
  Bus 1, Addr 2, Port 1, Speed 480 Mb/s
    Hub: USB device 8087:0024
  Bus 2, Addr 2, Port 1, Speed 480 Mb/s
    Hub: USB device 8087:0024
  Bus 1, Addr 3, Port 1.3, Speed 1.5 Mb/s
    Class 00: USB device 413c:2105, Dell USB Keyboard
  Bus 1, Addr 4, Port 1.4, Speed 1.5 Mb/s
    Class 00: USB device 046d:c018, USB Optical Mouse
  Bus 2, Addr 4, Port 1.7, Speed 480 Mb/s
    Class 00: USB device 04e8:5120, U5
  Auto filters:
    Bus 2, Addr 4, Port *, ID 04e8:5120

In guest, find Bus 001 Device 002: ID 04e8:5120 Samsung Electronics Co., Ltd  device.
#lsusb 
Bus 002 Device 002: ID 0627:0001 Adomax Technology Co., Ltd 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04e8:5120 Samsung Electronics Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


#can find this device via fdisk -l
#fdisk -l
Disk /dev/sda: 1906 MB, 1906311168 bytes
202 heads, 48 sectors/track, 96 cylinders
Units = cylinders of 9696 * 2048 = 19857408 bytes
Sector size (logical/physical): 2048 bytes / 2048 bytes
I/O size (minimum/optimal): 2048 bytes / 2048 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          96     1861536    b  W95 FAT32
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 0, 48) logical=(0, 1, 1)

Comment 1 Gerd Hoffmann 2011-08-12 08:42:59 UTC
#info usbhost
   [ ... ]
   Bus 2, Addr 4, Port 1.7, Speed 480 Mb/s
    Class 00: USB device 04e8:5120, U5

This is one host device list entry.

  Auto filters:
    Bus 2, Addr 4, Port 003, ID 04e8:5120

This is *not* a device list entry.  This lists what devices qemu is looking for to assign them to the guest.  You'll find there the conditions specified via -device host,...

You asked qemu to look out for for port=003, whereas the port of the device you want assign is 1.7.  Qemu doesn't assign the device because of the mismatch, thats why lspci inside the guest doesn't list the device.

You can mix the filter conditions as you like, but not all combinations are that useful.  I recomment to pick one of these two:

(1) Match by device ID, that will pass through the samsung device (phone?)
    no matter where you plug it in.
    -device usb-host,bus=ehci.0,vendorid=04e8,productid=5120

(2) Match by phyiscal port.  That will pass through any device plugged into
    the port specified.
    -device usb-host,bus=ehci.0,hostbus=2,hostport=1.7


Note You need to log in before you can comment on or make changes to this bug.