Bug 1138887

Summary: Descriptions missing in add hardware USB host device list
Product: [Fedora] Fedora Reporter: Tom Horsley <horsley1953>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: agedosier, berrange, clalancette, crobinso, itamar, jforbes, jtomko, laine, libvirt-maint, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-1.1.3.6-2.fc20 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-13 18:17:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Screen shot of add hardware dialog none

Description Tom Horsley 2014-09-06 01:14:36 UTC
Created attachment 934934 [details]
Screen shot of add hardware dialog

Description of problem:

Over in bug 1135488 I was asked to add this as a separate bug, so here it is.

The Add Hardware button for a USB host device pops up a dialog box to be used to select which device to add. Most devices have a description, but some do not even though lsusb does show a description. For example:

zooty> lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 1058:1130 Western Digital Technologies, Inc. My Book Essential (WDBACW)
Bus 004 Device 004: ID 2109:0812  
Bus 004 Device 002: ID 2109:0812  
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 010: ID 047d:1020 Kensington Expert Mouse Trackball
Bus 003 Device 009: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 003 Device 008: ID 2109:2812  
Bus 003 Device 005: ID 2109:2812  
Bus 003 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 003 Device 003: ID 2040:4902 Hauppauge HD PVR
Bus 003 Device 002: ID 0bc2:3008 Seagate RSS LLC FreeAgent Desk 1TB
Bus 003 Device 007: ID 04f9:0028 Brother Industries, Ltd Printer
Bus 003 Device 006: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 003 Device 017: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 003 Device 016: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID)
Bus 003 Device 015: ID 0424:2513 Standard Microsystems Corp. 2.0 Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The only thing in the popup for the Webcam is the string "003:017",
nothing about Logitech Webcam.

On the other hand, the popup does show the Arduino Leonardo description.

Version-Release number of selected component (if applicable):
libvirt-1.1.3.5-2.fc20.x86_64


How reproducible:
every time

Steps to Reproduce:
1.see above

Actual results:
no description

Expected results:
description

Additional info:
Here is the udevadm info for both devices mentioned above:

zooty> udevadm info /dev/bus/usb/003/017
P: /devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.2
N: bus/usb/003/017
E: BUSNUM=003
E: DEVNAME=/dev/bus/usb/003/017
E: DEVNUM=017
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.2
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MODEL=0825
E: ID_MODEL_ENC=0825
E: ID_MODEL_FROM_DATABASE=Webcam C270
E: ID_MODEL_ID=0825
E: ID_REVISION=0012
E: ID_SERIAL=046d_0825_E4A49F80
E: ID_SERIAL_SHORT=E4A49F80
E: ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
E: ID_VENDOR=046d
E: ID_VENDOR_ENC=046d
E: ID_VENDOR_FROM_DATABASE=Logitech, Inc.
E: ID_VENDOR_ID=046d
E: MAJOR=189
E: MINOR=272
E: PRODUCT=46d/825/12
E: SUBSYSTEM=usb
E: TYPE=239/2/1
E: UPOWER_VENDOR=Logitech, Inc.
E: USEC_INITIALIZED=494639482

zooty> udevadm info /dev/bus/usb/003/016
P: /devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.1
N: bus/usb/003/016
E: BUSNUM=003
E: DEVNAME=/dev/bus/usb/003/016
E: DEVNUM=016
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.1
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MM_DEVICE_IGNORE=1
E: ID_MODEL=Arduino_Leonardo
E: ID_MODEL_ENC=Arduino\x20Leonardo
E: ID_MODEL_FROM_DATABASE=Leonardo (CDC ACM, HID)
E: ID_MODEL_ID=8036
E: ID_REVISION=0100
E: ID_SERIAL=Arduino_LLC_Arduino_Leonardo
E: ID_USB_INTERFACES=:020200:0a0000:030000:
E: ID_VENDOR=Arduino_LLC
E: ID_VENDOR_ENC=Arduino\x20LLC
E: ID_VENDOR_FROM_DATABASE=Arduino SA
E: ID_VENDOR_ID=2341
E: MAJOR=189
E: MINOR=271
E: PRODUCT=2341/8036/100
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=494260894

Here is the virsh nodedev-dumpxml for the same devices:

<device>
  <name>usb_3_12_2</name>
  <path>/sys/devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.2</path>
  <parent>usb_3_12</parent>
  <driver>
    <name>usb</name>
  </driver>
  <capability type='usb_device'>
    <bus>3</bus>
    <device>17</device>
    <product id='0x0825' />
    <vendor id='0x046d' />
  </capability>
</device>

<device>
  <name>usb_3_12_1</name>
  <path>/sys/devices/pci0000:00/0000:00:14.0/usb3/3-12/3-12.1</path>
  <parent>usb_3_12</parent>
  <driver>
    <name>usb</name>
  </driver>
  <capability type='usb_device'>
    <bus>3</bus>
    <device>16</device>
    <product id='0x8036'>Arduino Leonardo</product>
    <vendor id='0x2341'>Arduino LLC</vendor>
  </capability>
</device>

I tend to suspect the lack of ID_MODEL_ENC and ID_VENDOR_ENC for the webcam is the problem. The code should probably fallback to the FROM_DATABASE attributes if the ENC ones aren't there.

Comment 1 Tom Horsley 2014-09-09 00:47:26 UTC
Interestingly, if I use the Virtual Machine > Redirect USB menu item, the description for the webcam does show up.

Comment 2 Ján Tomko 2014-09-15 14:10:43 UTC
Now fixed upstream:
commit 3ef77a544d4313cdfe257717708548f57e6db971
Author:     Lubomir Rintel <lkundrak>
CommitDate: 2014-09-15 15:41:28 +0200

    node_device_udev: Try harder to get human readable vendor:product
    
    The manufacurer and product from USB device itself are usually not particularly
    useful -- they tend to be missing, or ugly (all-uppercase, padded with spaces,
    etc.). Prefer what's in the usb id database and fall back to descriptors only
    if the device is too new to be in database.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1138887

git describe: v1.2.8-130-g3ef77a5

Comment 3 Fedora Update System 2014-10-30 15:41:32 UTC
libvirt-1.1.3.6-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/libvirt-1.1.3.6-2.fc20

Comment 4 Fedora Update System 2014-11-01 01:33:04 UTC
Package libvirt-1.1.3.6-2.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing libvirt-1.1.3.6-2.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-14011/libvirt-1.1.3.6-2.fc20
then log in and leave karma (feedback).

Comment 5 Fedora Update System 2014-11-13 18:17:57 UTC
libvirt-1.1.3.6-2.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.