VirtualBox

Ticket #3394 (new defect)

Opened 9 months ago

Last modified 1 month ago

USB on Linux-Host only with USBFS

Reported by: stefan.becker Assigned to:
Priority: major Component: USB
Version: VirtualBox 3.0.8 Keywords:
Cc: Guest type: Windows
Host type: Linux

Description

If i understand the Changelog since 2.1.2 correct, USBFS is not needed any more.

But this doesnt not work for me:

Host: Suse Linux 11.1 64 Bit VirtualBox: 2.1.4 PUEL / AMD 64 Guest: WinXP (SP3, Home, Prof), Vista Business Guest Additions 2.1.4 installed

User is in the Group "vboxusers": cat /etc/group | grep vboxusers => vboxusers:!:1000:stefan In the Guest Settings all USB-Devices are visible and i can attach USB-Filters for a Printer (Epson DX8400) and an USB Cardreader. But in the Guest Settings all USB-Devices are greyed out. In the Printer Settings "Offline" is shown.

It works correct via the old way.

FSTAB: usbfs /proc/bus/usb usbfs auto,busgid=1000,busmode=0775,devgid=1000,devmode=0664 0 0 boot.local: mount usbfs

If more Infos are needed, please tell me what.

PS: Its not a very important thing, because the other approach works.

Attachments

VBox.log (46.1 kB) - added by stefan.becker on 2009-02-19 14:49:41.
Visa 32 Busisness Guest Log

Change History

2009-02-19 14:49:41 changed by stefan.becker

  • attachment VBox.log added.

Visa 32 Busisness Guest Log

2009-05-04 16:42:09 changed by frank

Note that the new approach uses DBus on Linux hosts and this method is only used if /proc/bus/usb is not mounted.

2009-05-04 20:38:05 changed by stefan.becker

It must be a Problem with access rights.

"/proc/bus/usb" is not mounted.

After "chmod 777 /proc/bus/usb" and "chmod 777 /proc/bus/usb/devices" it works.

2009-05-04 20:51:10 changed by stefan.becker

Forget my post about access rights.

In the fstab USBFS was enabled.

2009-07-30 10:56:59 changed by frank

Does this problem persists? We got many reports that the new method works as expected.

2009-07-30 16:15:01 changed by stefan.becker

Problem still exists with Suse 11.1 / 64.

On my other host (Ubuntu 9.04 / 64) it works as expected without USBFS.

On the Suse 11.1 Host is additionally installed:

- VMWARE Player 2.51 - USB Card Reader with Package "pcsc-lite".

The Package "pcsc-lite" contains a file "/etc/init.d/pcscd", when starting the service USBFS is mounted. Could that be the Problem?

2009-07-30 16:48:31 changed by stefan.becker

Additions: Problem was on Suse with every VBOX-Version, actually 3.02.

The pcsc-lite is not the Problem. I disabled the mount command, but after reboot the same, it does not work.

2009-07-30 17:13:21 changed by stefan.becker

I saw, that there is another script mounting usbfs: /etc/init.d/kbd.

I think that is the keyboard chooser. Because i have an USB keyboard, i dont want to check this :)

2009-07-30 18:02:28 changed by frank

Yep, the preferred way is to live without mounting the usbfs. If you have hal installed on you system, VBox would use the hal daemon plus /sys to access USB devices. Does lshal work and do you see USB devices in the listing (grep for usb and linux.sysfs_path)?

2009-07-30 19:25:48 changed by stefan.becker

I think so. Her is the output:

 lshal | grep "linux.sysfs_path" | grep usb
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.1'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.1/input/input6/event6'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.4/2-3.4:1.0/input/input5/event5'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.3'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.3'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.3/2-3.3:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.3/2-3.3:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.3/2-3.3:1.0/input/input4/event4'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1/2-3.1:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1/2-3.1:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1/2-3.1:1.0/usb/hiddev0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-3/2-3.1/2-3.1:1.0/input/input3/event3'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/scsi_host/host4'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:3'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:3/block/sde'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:3/scsi_generic/sg5'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:2'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:2/block/sdd'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:2/scsi_generic/sg4'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:1/block/sdc'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:1/scsi_generic/sg3'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:0/block/sdb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1.2/2-1.2:1.0/host4/target4:0:0/4:0:0:0/scsi_generic/sg2'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-0:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.1/usb2/2-0:1.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb1'  (string)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb1/1-0:1.0'  (string)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb1/1-0:1.0'  (string)
stefan@stefan:~/Desktop> 

2009-07-31 12:14:09 changed by michael

Just to be clear on this point, is usbfs currently mounted on your system? You can check this by doing

$ ls /proc/bus/usb

If usbfs is not mounted then that directory should be empty.

2009-07-31 14:33:42 changed by stefan.becker

Yes, USBFS is mounted.

stefan@stefan:~> ls /proc/bus/usb
001  002  devices

stefan@stefan:~> ls -l /proc/bus/usb
insgesamt 0
dr-xr-xr-x 2 root root 0 31. Jul 2009  001
dr-xr-xr-x 2 root root 0 31. Jul 2009  002
-r--r--r-- 1 root root 0 31. Jul 14:09 devices

The Entry in /etc/fstab is with "#" in front.

2009-07-31 15:58:15 changed by frank

So what happens if you unmount USBFS, does USB work or not?

2009-07-31 16:09:16 changed by stefan.becker

Not possible is:

stefan:/home/stefan/Desktop # mount | grep usb

stefan:/home/stefan/Desktop # umount usbfs
umount: usbfs: Nicht gefunden

Possible is:

umount /proc/bus/usb

But USB in a Guest does not work after umount, too.

2009-07-31 18:24:22 changed by michael

What do the following say if you execute them as the user using VBox? If appropriate, replace "001/001" by something that exists on your system.

$ test -r /dev/bus/usb/001/001 -a -w /dev/bus/usb/001/001 && echo yes

and

$ ls -l /dev/bus/usb/001/001

2009-07-31 19:21:03 changed by stefan.becker

First command says nothing.

stefan@stefan:~/Desktop> test -r /dev/bus/usb/001/012 -a -w /dev/bus/usb/001/012 && echo yes

stefan@stefan:~/Desktop> ls -l /dev/bus/usb/001/012crw-r--r-- 1 root vboxusers 189, 11 31. Jul 19:17 /dev/bus/usb/001/012

2009-07-31 20:01:37 changed by stefan.becker

Additions:

Added User "root" to group "vboxusers".

Changed permissions in "10-vboxdrv.rules" from 0664 to 0666.

Output is the same as above, it does not help.

2009-07-31 20:15:01 changed by michael

Adding root to the group should not make a difference, as root has all permissions anyway. I assume that some udev rule is changing the permissions after our rule does, as 'ls' showed the permissions 0644.

2009-07-31 20:42:13 changed by stefan.becker

Im not an UDEV professionial :)

Please ask, if you need further infos from my system.

2009-07-31 21:17:30 changed by stefan.becker

Last try today.

Changed the file "/lib/udev/rules.d/50-udev-default.rules" as posted in this thread: http://forums.virtualbox.org/viewtopic.php?f=7&t=19381&p=83833&hilit=opensuse+usbfs#p83833

No the above commands:

stefan@stefan:/dev/bus/usb/002> test -r /dev/bus/usb/002/010 -a -w /dev/bus/usb/002/010 && echo yes
yes
stefan@stefan:/dev/bus/usb/002> ls -l /dev/bus/usb/002/010
crw-rw-r-- 1 root vboxusers 189, 137 31. Jul 21:13 /dev/bus/usb/002/010

But it does not work at all.

2009-08-06 21:23:04 changed by stefan.becker

No change with Version 3.04.

2009-09-12 19:50:17 changed by psycodavid

I think the problem is

2009-09-12 19:57:14 changed by psycodavid

I think the problem is /etc/init.d/pcscd. The start script mount usbfs, I had the same problem and I solved it adding a line at the end of pcscd start script umounting /proc/bus/usb. Now usb is working. Try it!

2009-09-12 21:27:36 changed by stefan.becker

That is the problem.

But your solution with unmount doesnt work.

Instead of this i googled for tips and fount the following, working. Instead of umount at the end i changed the "Mount usbfs" command to

"mount -n -t usbfs -o busgid=1000,busmode=0775,devgid=1000,devmode=0664 usbfs /proc/bus/usb >/dev/null 2>&1"

2009-09-12 23:55:04 changed by psycodavid

This night I tried to erase that line. I think that is obsolete with openSUSE udev system (see /etc/udev/rules.d). Again it works (VirtualBox 3.0.6)... With your working solution I suppose you mount usbfs with "right" permissions for vbox. That's a good hint!

2009-09-13 07:57:28 changed by stefan.becker

On a second machine with Ubuntu i checked /etc/init.d/pcscd, it contains no line with USBFS.

On this machine VBOX / USB works properly. I will check your solution with homebanking cardreader on the Suse Host later this day. Lets see the result.

2009-09-13 09:34:06 changed by stefan.becker

Hey, deleting the mount command doesnt not work with VBOX.

My USB card reader for homebanking works without the line properly. But VBOX does not. All devices are disabled.

Will check /etc for another USBFS line.

With the changed mount command it works. i thin, pcscd is the first command, then the unknown, third is VBOX.

2009-09-13 09:39:40 changed by stefan.becker

I think i found the other line. In /etc/init.d/kbd is another USBFS mount.

Will have a look if this must be. See later.

2009-09-13 10:58:54 changed by stefan.becker

I mounted in the kbd file with the above command, i checked umount after that.

Both approaches doent work. So only solution for me is

1) OpenSuse? 11.1 / modification in pcscd file 2) Waiting for OpenSuse? 11.2 :)

2009-09-13 12:34:46 changed by psycodavid

Yes, you have an usb keyboard... and I don't know if /lib/udev/rules.d/60-persistent-input.rules works without /proc/bus/usb mounted. I'm not expert enough! :)

2009-09-13 13:57:01 changed by stefan.becker

I think the base problem is UBSFS.

Since using USBFS there ever will be Problems like this in other distros/drivers/system.

Best approach is USB Access via libusb. I think this is the VMWARE Way in the new product line. And this works always properly.

Anyway. I can live with actual version by replacing the mount command in pcscd or fstab.

2009-09-14 09:53:14 changed by frank

libusb is not sufficient because the interface is missing important functions.

Apparently the access through /dev/bus/usb is problematic mostly on openSUSE systems. We have to try to reproduce these issue there as we have many positive feedback on other Linux distributions.

2009-09-14 16:33:42 changed by frank

The problem on OpenSUSE is that /lib/udev/rules.d/50-udev-default.rules overrides any USB rule of VBox. To fix this you should rename /etc/udev/rules.d/10-vboxdrv.rules to /etc/udev/rules.d/51-vboxdrv.rules. Then unplug + replug a USB device and try to access it from VBox.

2009-09-14 17:21:10 changed by stefan.becker

The perfect Solution. After renaming the file and reboot its possible to mount USB devices in the guest.

2009-09-14 17:28:25 changed by stefan.becker

Short time before i read in a thread in a suse forum, that with 11.2 there will be other access rights for the default rules.

SO i think its better not to investigate more time at the moment. This solution is working and should be added to the forum faq.

2009-10-06 20:25:07 changed by stefan.becker

Has there something changed in Version 3.08?

It doesnt work like before. The Solution "renaming the vbox-rule (10=>51) works.

2009-10-06 23:01:57 changed by michael

Didn't quite get you there - you mean it was working and no longer does, or it didn't work and still doesn't? By the way, I think that the proper solution to this problem, once I get round to it, will involve talking to the distributions to find a solution that works for them and for us. If you have time though before I do, feel free to poke the SUSE people about this :)

2009-10-06 23:04:23 changed by michael

  • version changed from VirtualBox 2.1.4 to VirtualBox 3.0.8.

Ah yes, I realise what the problem is - we switched the default from USBFS to sysfs in 3.0.8. You can revert this by starting VirtualBox with the environment variable "VBOX_USB=USBFS" set.

2009-10-06 23:19:40 changed by stefan.becker

Nope, that does not help.

I mean: After installing USB does not work. After renaming the vbox-udev-rule (10->51) it works.

But as i said: I will wait for Suse 11.2. Its not a important function for me.

2009-10-15 15:34:40 changed by clauz

I have a problem with Debian Linux host and USB on 3.0.8. It used to work fine with 3.0.6 and /proc/bus/usb, but after upgrade to 3.0.8 USB stopped working completely.

3.0.6:

menek:~# VBoxManage list usbhost          
VirtualBox Command Line Management Interface Version 3.0.6
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Host USB Devices:

UUID:               42276cf4-2963-428b-86e6-61cae65d9d34
VendorId:           0x0a5c (0A5C)
ProductId:          0x200a (200A)
Revision:           0.4 (0004)
Manufacturer:       Broadcom
Product:            BCM92035DGROM
SerialNumber:       000B0D640D24
Address:            /proc/bus/usb/003/002
Current State:      Busy

3.0.8:

menek:~# VBoxManage list usbhost
VirtualBox Command Line Management Interface Version 3.0.8
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Host USB Devices:

<none>

2009-10-15 15:49:30 changed by michael

Can you check in the output of lshal for blocks containing the line "info.subsystem = 'usb_device' (string)" or similar and post them here? By the way, you can restore the old behaviour by starting VirtualBox with the environment variable "VBOX_USB=usbfs" set, but I would still like to find out what is wrong in the new behaviour.

2009-10-15 16:34:13 changed by clauz

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27cc'  (string)
  info.product = 'EHCI Host Controller'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'  (string)
  info.vendor = 'Linux 2.6.18 ehci_hcd'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb5'  (string)
  usb_device.bus_number = 5  (0x5)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 9  (0x9)  (int)
  usb_device.device_protocol = 1  (0x1)  (int)
  usb_device.device_revision_bcd = 518  (0x206)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = true  (bool)
  usb_device.linux.device_number = 1  (0x1)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb5'  (string)
  usb_device.max_power = 0  (0x0)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 8  (0x8)  (int)
  usb_device.product = 'EHCI Host Controller'  (string)
  usb_device.product_id = 0  (0x0)  (int)
  usb_device.serial = '0000:00:1d.7'  (string)
  usb_device.speed = 480.0 (480) (double)
  usb_device.vendor = 'Linux 2.6.18 ehci_hcd'  (string)
  usb_device.vendor_id = 0  (0x0)  (int)
  usb_device.version = 2.0 (2) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/005/001'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev5.1'  (string)
  usbraw.device = '/dev/bus/usb/005/001'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7_if0'
  info.linux.driver = 'hub'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7'  (string)
  info.product = 'USB Hub Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_7_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb5/5-0:1.0'  (string)
  usb.bus_number = 5  (0x5)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 9  (0x9)  (int)
  usb.device_protocol = 1  (0x1)  (int)
  usb.device_revision_bcd = 518  (0x206)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 9  (0x9)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 0  (0x0)  (int)
  usb.interface.subclass = 0  (0x0)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 1  (0x1)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb5/5-0:1.0'  (string)
  usb.max_power = 0  (0x0)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 8  (0x8)  (int)
  usb.product = 'USB Hub Interface'  (string)
  usb.product_id = 0  (0x0)  (int)
  usb.serial = '0000:00:1d.7'  (string)
  usb.speed = 480.0 (480) (double)
  usb.vendor = 'Linux 2.6.18 ehci_hcd'  (string)
  usb.vendor_id = 0  (0x0)  (int)
  usb.version = 2.0 (2) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27cb'  (string)
  info.product = 'UHCI Host Controller'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3'  (string)
  info.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.3/usb4'  (string)
  usb_device.bus_number = 4  (0x4)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 9  (0x9)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 518  (0x206)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = true  (bool)
  usb_device.linux.device_number = 1  (0x1)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.3/usb4'  (string)
  usb_device.max_power = 0  (0x0)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 2  (0x2)  (int)
  usb_device.product = 'UHCI Host Controller'  (string)
  usb_device.product_id = 0  (0x0)  (int)
  usb_device.serial = '0000:00:1d.3'  (string)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb_device.vendor_id = 0  (0x0)  (int)
  usb_device.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/004/001'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev4.1'  (string)
  usbraw.device = '/dev/bus/usb/004/001'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3_if0'
  info.linux.driver = 'hub'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3'  (string)
  info.product = 'USB Hub Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_3_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.3/usb4/4-0:1.0'  (string)
  usb.bus_number = 4  (0x4)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 9  (0x9)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 518  (0x206)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 9  (0x9)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 0  (0x0)  (int)
  usb.interface.subclass = 0  (0x0)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 1  (0x1)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.3/usb4/4-0:1.0'  (string)
  usb.max_power = 0  (0x0)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 2  (0x2)  (int)
  usb.product = 'USB Hub Interface'  (string)
  usb.product_id = 0  (0x0)  (int)
  usb.serial = '0000:00:1d.3'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb.vendor_id = 0  (0x0)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27ca'  (string)
  info.product = 'UHCI Host Controller'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2'  (string)
  info.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3'  (string)
  usb_device.bus_number = 3  (0x3)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 9  (0x9)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 518  (0x206)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = true  (bool)
  usb_device.linux.device_number = 1  (0x1)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3'  (string)
  usb_device.max_power = 0  (0x0)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 2  (0x2)  (int)
  usb_device.product = 'UHCI Host Controller'  (string)
  usb_device.product_id = 0  (0x0)  (int)
  usb_device.serial = '0000:00:1d.2'  (string)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb_device.vendor_id = 0  (0x0)  (int)
  usb_device.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/003/001'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev3.1'  (string)
  usbraw.device = '/dev/bus/usb/003/001'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2'  (string)
  info.product = 'Bluetooth dongle'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'  (string)
  info.vendor = 'Broadcom Corp.'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2'  (string)
  usb_device.bus_number = 3  (0x3)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 224  (0xe0)  (int)
  usb_device.device_protocol = 1  (0x1)  (int)
  usb_device.device_revision_bcd = 4  (0x4)  (int)
  usb_device.device_subclass = 1  (0x1)  (int)
  usb_device.is_self_powered = false  (bool)
  usb_device.linux.device_number = 2  (0x2)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2'  (string)
  usb_device.max_power = 100  (0x64)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 3  (0x3)  (int)
  usb_device.num_ports = 0  (0x0)  (int)
  usb_device.product = 'Bluetooth dongle'  (string)
  usb_device.product_id = 8202  (0x200a)  (int)
  usb_device.serial = '000B0D640D24'  (string)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'Broadcom Corp.'  (string)
  usb_device.vendor_id = 2652  (0xa5c)  (int)
  usb_device.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/003/002'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev3.2'  (string)
  usbraw.device = '/dev/bus/usb/003/002'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if2'
  info.parent = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'  (string)
  info.product = 'USB Vendor Specific Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if2'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.2'  (string)
  usb.bus_number = 3  (0x3)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 224  (0xe0)  (int)
  usb.device_protocol = 1  (0x1)  (int)
  usb.device_revision_bcd = 4  (0x4)  (int)
  usb.device_subclass = 1  (0x1)  (int)
  usb.interface.class = 255  (0xff)  (int)
  usb.interface.number = 2  (0x2)  (int)
  usb.interface.protocol = 255  (0xff)  (int)
  usb.interface.subclass = 255  (0xff)  (int)
  usb.is_self_powered = false  (bool)
  usb.linux.device_number = 2  (0x2)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.2'  (string)
  usb.max_power = 100  (0x64)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 3  (0x3)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Vendor Specific Interface'  (string)
  usb.product_id = 8202  (0x200a)  (int)
  usb.serial = '000B0D640D24'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Broadcom Corp.'  (string)
  usb.vendor_id = 2652  (0xa5c)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if1'
  info.linux.driver = 'hci_usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'  (string)
  info.product = 'USB Wireless Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.1'  (string)
  usb.bus_number = 3  (0x3)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 224  (0xe0)  (int)
  usb.device_protocol = 1  (0x1)  (int)
  usb.device_revision_bcd = 4  (0x4)  (int)
  usb.device_subclass = 1  (0x1)  (int)
  usb.interface.class = 224  (0xe0)  (int)
  usb.interface.number = 1  (0x1)  (int)
  usb.interface.protocol = 1  (0x1)  (int)
  usb.interface.subclass = 1  (0x1)  (int)
  usb.is_self_powered = false  (bool)
  usb.linux.device_number = 2  (0x2)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.1'  (string)
  usb.max_power = 100  (0x64)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 3  (0x3)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Wireless Interface'  (string)
  usb.product_id = 8202  (0x200a)  (int)
  usb.serial = '000B0D640D24'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Broadcom Corp.'  (string)
  usb.vendor_id = 2652  (0xa5c)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0'
  info.linux.driver = 'hci_usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24'  (string)
  info.product = 'USB Wireless Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.0'  (string)
  usb.bus_number = 3  (0x3)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 224  (0xe0)  (int)
  usb.device_protocol = 1  (0x1)  (int)
  usb.device_revision_bcd = 4  (0x4)  (int)
  usb.device_subclass = 1  (0x1)  (int)
  usb.interface.class = 224  (0xe0)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 1  (0x1)  (int)
  usb.interface.subclass = 1  (0x1)  (int)
  usb.is_self_powered = false  (bool)
  usb.linux.device_number = 2  (0x2)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.0'  (string)
  usb.max_power = 100  (0x64)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 3  (0x3)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Wireless Interface'  (string)
  usb.product_id = 8202  (0x200a)  (int)
  usb.serial = '000B0D640D24'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Broadcom Corp.'  (string)
  usb.vendor_id = 2652  (0xa5c)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0_bluetooth_hci_0'
  bluetooth_hci.address = 0  (0x0)  (uint64)
  bluetooth_hci.originating_device = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0'  (string)
  info.capabilities = {'bluetooth_hci'} (string list)
  info.category = 'bluetooth_hci'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0'  (string)
  info.product = 'Bluetooth Host Controller Interface'  (string)
  info.subsystem = 'bluetooth'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_a5c_200a_000B0D640D24_if0_bluetooth_hci_0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'bluetooth'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.0/hci0'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2_if0'
  info.linux.driver = 'hub'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2'  (string)
  info.product = 'USB Hub Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_2_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-0:1.0'  (string)
  usb.bus_number = 3  (0x3)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 9  (0x9)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 518  (0x206)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 9  (0x9)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 0  (0x0)  (int)
  usb.interface.subclass = 0  (0x0)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 1  (0x1)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.2/usb3/3-0:1.0'  (string)
  usb.max_power = 0  (0x0)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 2  (0x2)  (int)
  usb.product = 'USB Hub Interface'  (string)
  usb.product_id = 0  (0x0)  (int)
  usb.serial = '0000:00:1d.2'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb.vendor_id = 0  (0x0)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27c9'  (string)
  info.product = 'UHCI Host Controller'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1'  (string)
  info.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb2'  (string)
  usb_device.bus_number = 2  (0x2)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 9  (0x9)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 518  (0x206)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = true  (bool)
  usb_device.linux.device_number = 1  (0x1)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb2'  (string)
  usb_device.max_power = 0  (0x0)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 2  (0x2)  (int)
  usb_device.product = 'UHCI Host Controller'  (string)
  usb_device.product_id = 0  (0x0)  (int)
  usb_device.serial = '0000:00:1d.1'  (string)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb_device.vendor_id = 0  (0x0)  (int)
  usb_device.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/002/001'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev2.1'  (string)
  usbraw.device = '/dev/bus/usb/002/001'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1_if0'
  info.linux.driver = 'hub'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1'  (string)
  info.product = 'USB Hub Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-0:1.0'  (string)
  usb.bus_number = 2  (0x2)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 9  (0x9)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 518  (0x206)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 9  (0x9)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 0  (0x0)  (int)
  usb.interface.subclass = 0  (0x0)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 1  (0x1)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb2/2-0:1.0'  (string)
  usb.max_power = 0  (0x0)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 2  (0x2)  (int)
  usb.product = 'USB Hub Interface'  (string)
  usb.product_id = 0  (0x0)  (int)
  usb.serial = '0000:00:1d.1'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb.vendor_id = 0  (0x0)  (int)
  usb.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0'
  info.linux.driver = 'usb'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27c8'  (string)
  info.product = 'UHCI Host Controller'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0'  (string)
  info.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb1'  (string)
  usb_device.bus_number = 1  (0x1)  (int)
  usb_device.can_wake_up = true  (bool)
  usb_device.configuration_value = 1  (0x1)  (int)
  usb_device.device_class = 9  (0x9)  (int)
  usb_device.device_protocol = 0  (0x0)  (int)
  usb_device.device_revision_bcd = 518  (0x206)  (int)
  usb_device.device_subclass = 0  (0x0)  (int)
  usb_device.is_self_powered = true  (bool)
  usb_device.linux.device_number = 1  (0x1)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb1'  (string)
  usb_device.max_power = 0  (0x0)  (int)
  usb_device.num_configurations = 1  (0x1)  (int)
  usb_device.num_interfaces = 1  (0x1)  (int)
  usb_device.num_ports = 2  (0x2)  (int)
  usb_device.product = 'UHCI Host Controller'  (string)
  usb_device.product_id = 0  (0x0)  (int)
  usb_device.serial = '0000:00:1d.0'  (string)
  usb_device.speed = 12.0 (12) (double)
  usb_device.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb_device.vendor_id = 0  (0x0)  (int)
  usb_device.version = 1.1 (1.1) (double)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0_usbraw'
  info.capabilities = {'usbraw'} (string list)
  info.category = 'usbraw'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0'  (string)
  info.product = 'USB Raw Device Access'  (string)
  info.subsystem = 'usb_device'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0_usbraw'  (string)
  linux.device_file = '/dev/bus/usb/001/001'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb_device'  (string)
  linux.sysfs_path = '/sys/class/usb_device/usbdev1.1'  (string)
  usbraw.device = '/dev/bus/usb/001/001'  (string)

udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0_if0'
  info.linux.driver = 'hub'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0'  (string)
  info.product = 'USB Hub Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_0_if0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-0:1.0'  (string)
  usb.bus_number = 1  (0x1)  (int)
  usb.can_wake_up = true  (bool)
  usb.configuration_value = 1  (0x1)  (int)
  usb.device_class = 9  (0x9)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 518  (0x206)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 9  (0x9)  (int)
  usb.interface.number = 0  (0x0)  (int)
  usb.interface.protocol = 0  (0x0)  (int)
  usb.interface.subclass = 0  (0x0)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 1  (0x1)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-0:1.0'  (string)
  usb.max_power = 0  (0x0)  (int)
  usb.num_configurations = 1  (0x1)  (int)
  usb.num_interfaces = 1  (0x1)  (int)
  usb.num_ports = 2  (0x2)  (int)
  usb.product = 'USB Hub Interface'  (string)
  usb.product_id = 0  (0x0)  (int)
  usb.serial = '0000:00:1d.0'  (string)
  usb.speed = 12.0 (12) (double)
  usb.vendor = 'Linux 2.6.18 uhci_hcd'  (string)
  usb.vendor_id = 0  (0x0)  (int)
  usb.version = 1.1 (1.1) (double)


2009-10-16 05:59:32 changed by rzaks

One more way to fix the problem, assuming that you disabled usbfs in /etc/fstab:

Edit /etc/udev/rules.d/10-vboxdrv.rules

Change this line:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE="0664"

to this:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="VirtualBox/$env{BUSNUM}/$env{DEVNUM}", GROUP="vboxusers", MODE="0664"

2009-10-16 17:03:48 changed by clauz

The solution with /etc/udev/rules.d/10-vboxdrv.rules does not work. VBOX_USB=usbfs helps.

2009-10-17 22:06:46 changed by stefan.becker

Waiting for Suse 11.2 seems to be a good solution. First machine with Suse 11.2 RC 1 works without any tricks.

2009-10-21 11:01:21 changed by schlomo

As I wrote in ticket #5249 the trick is to do a final assignment MODE:="0664" in /etc/udev/rules.d/10-vboxdrv.rules. This prevents the SUSE rules from changing the device file mode later on. Since Novell won't change 11.1 to fix the issue I suggest changing the VirtualBox packages for openSUSE 11.1 to include the change to better support 11.1 users. Here is again my comment from the other ticket:

Issue
USB devices are visible but greyed out (Status: Unavailable)

Cause
The files in /dev/bus/usb have no write permission for the vboxusers group because the mode is 644 and not 664.

In /etc/udev/rules.d/10-vboxdrv.rules there is a rule setting the MODE to 0644, but this is overridden by /lib/udev/rules.d/50-udev-default.rules which sets the MODE to 0644.

Solution
The solution is to write the rule in /etc/udev/rules.d/10-vboxdrv.rules like this: SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE:="0664"

Note the final assignment with := instead of =

Observed on openSUSE 11.1 i586

© 2009 Sun Microsystems, Inc.
ContactPrivacy policy