VirtualBox

Ticket #3394 (closed defect: fixed)

Opened 5 years ago

Last modified 2 years ago

USB on Linux-Host only with USBFS

Reported by: stefan.becker Owned by:
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 Download (46.1 KB) - added by stefan.becker 5 years ago.
Visa 32 Busisness Guest Log

Change History

Changed 5 years ago by stefan.becker

Visa 32 Busisness Guest Log

comment:1 Changed 5 years ago 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.

comment:2 Changed 5 years ago 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.

comment:3 Changed 5 years ago by stefan.becker

Forget my post about access rights.

In the fstab USBFS was enabled.

comment:4 Changed 5 years ago by frank

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

comment:5 Changed 5 years ago 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?

comment:6 Changed 5 years ago 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.

comment:7 Changed 5 years ago 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 :)

comment:8 Changed 5 years ago 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)?

comment:9 Changed 5 years ago 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.
/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> 

comment:10 Changed 5 years ago 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.

comment:11 Changed 5 years ago 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.

comment:12 Changed 5 years ago by frank

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

comment:13 Changed 5 years ago 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.

comment:14 Changed 5 years ago 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

comment:15 Changed 5 years ago 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

comment:16 Changed 5 years ago 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.

comment:17 Changed 5 years ago 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.

comment:18 Changed 5 years ago by stefan.becker

Im not an UDEV professionial :)

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

comment:19 Changed 5 years ago 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.

comment:20 Changed 5 years ago by stefan.becker

No change with Version 3.04.

comment:21 Changed 5 years ago by psycodavid

I think the problem is

comment:22 Changed 5 years ago 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!

comment:23 Changed 5 years ago 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"

comment:24 Changed 5 years ago 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!

comment:25 Changed 5 years ago 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.

comment:26 Changed 5 years ago 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.

comment:27 Changed 5 years ago 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.

comment:28 Changed 5 years ago 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 :)

comment:29 Changed 5 years ago 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! :)

comment:30 Changed 5 years ago 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.

comment:31 Changed 5 years ago 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.

comment:32 Changed 5 years ago 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.

comment:33 Changed 5 years ago by stefan.becker

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

comment:34 Changed 5 years ago 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.

comment:35 Changed 5 years ago 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.

comment:36 Changed 5 years ago 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 :)

comment:37 Changed 5 years ago 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.

comment:38 Changed 5 years ago 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.

comment:39 Changed 5 years ago 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>

comment:40 Changed 5 years ago 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.

comment:41 Changed 5 years ago 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)


comment:42 Changed 5 years ago 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"

comment:43 Changed 5 years ago by clauz

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

comment:44 Changed 5 years ago 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.

comment:45 Changed 5 years ago 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

comment:46 Changed 4 years ago by robhancock

Grr, this is busted again in VirtualBox 3.1 on Fedora 12. All USB devices grayed out.

comment:47 Changed 4 years ago by michael

robhancock: did it work for you before on that system? Did you change anything other than updating VirtualBox?

comment:48 Changed 4 years ago by clauz

It worked fine in 3.0.6 as you can find in this thread. There is no newer version that would work. I have just upgraded, no reconfiguring, no tweaking, nothing. The only working solution for now is export VBOX_USB=usbfs.

comment:49 Changed 4 years ago by robhancock

Well, between upgrading to Fedora 12 and to VirtualBox 3.1. it got broken. I'm not sure how it would work actually - the USB device nodes are all owned by root, and there doesn't seem to be any udev rule being installed to allow vboxusers group to access them..

comment:50 Changed 4 years ago by michael

Don't you have /etc/udev/rules.d/10-vboxdrv.rules ?

comment:51 Changed 4 years ago by robhancock

No I don't. What is supposed to create that file? It doesn't look like it's part of the RPM..

comment:52 Changed 4 years ago by clauz

Neither with 10-vboxdrv.rules nor without USB works.

comment:53 Changed 4 years ago by frank

Please check VBox 3.1.8. There were some USB-related changes mainly to support Ubuntu Lucid but it might make a difference in your case as well.

comment:54 Changed 4 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

No response, closing.

comment:55 Changed 4 years ago by frodet

  • Status changed from closed to reopened
  • Resolution fixed deleted

I have the same symptoms: Grayed out USB devices.

This is on Ubuntu 10.04 (Lucid), x86, kernel 2.6.32-24-generic, VirtualBox 3.2.8.

I have no /etc/udev/rules.d/10-vboxdrv.rules and no /proc/bus/usb...

How can I resolve this?

comment:56 Changed 4 years ago by mbondfusion

Same issue exists here also:

Ubuntu 10.04.1 2.6.32-24-generic x86_64 VirtualBox 3.2.8 r64453

(Upgraded from 9.10, I have the /etc/udev/rules.d/10-vboxdrv.rules; however they are set to 0664) Have tried all of the above (VBOX_USB=usbfs, etc..) with still the same issue (USB unavailable)

comment:57 Changed 4 years ago by michael

mbondfusion: does renaming /etc/udev/rules.d/10-vboxdrv.rules to *50* and restarting fix the issue for you?

comment:58 Changed 4 years ago by kwrobel

I everybody. Had the same issue with Ubuntu 10.04 amd64 and Virtualbox 3.2.8 after a vanilla install and existing VM (Windows XP). michael suggested to rename the udev rule to *50*, but since I my rules.d folder already contained two rules starting with 70-, I opted to rename the vbox rules to 99-vboxdrv.rules. I rebooted the computer to be safe, and I am now able to use my USB devices again. Thanks michael for the suggestion.

comment:59 Changed 4 years ago by npaultz

Hi. In case it helps someone, I had the same problem with openSUSE 11.3 amd64 and VirtualBox 3.2.8. The system was upgraded from 11.2. Changing the rule to 50 worked even though there were entries with numbers above 50. Here's hoping for a fix so newbs like me don't have to jump through hoops :)

comment:60 Changed 3 years ago by gripp35

Had the same issue with Ubuntu 10.10 (32-bit) and Virtualbox 3.2.12. USB devices for Windows 7 and Mac OS X 10.6 Snow Leopard guests were showing as greyed out. I changed the vboxdrv.rules file to starting with 90- instead of 10-, rebooted and I can now successfully add a USB device to a running Windows 7 guest. Thanks!

comment:61 Changed 3 years ago by schlomo

Dear VirtualBox Maintainers!

Since users continue to report the same thing for every new version, could you please take a look at this and modify VirtualBox to run without manual hacking?

Thanks a lot!

comment:62 Changed 3 years ago by frank

I think this is not the task of a maintaincer but rather the task of the software developer. VirtuallBox 4.0 will contain a different approach accessing the USB devices nodes which we think works better but Michael will tell more about that (Beta 1 is available).

comment:63 Changed 3 years ago by michael

comment:64 follow-up: ↓ 65 Changed 2 years ago by Emerson Prado

I have this problem in VB 4.1.4 r74291, running Mint Debian as a host (repos set for Debian stable), with kernel 2.6.32-5-686 i686, and a win2k SP4 guest.  https://forums.virtualbox.org/viewtopic.php?f=7&t=46424

I don't have any file named *vboxdrv.rules* in my system. My /lib/udev/rules.d/50-udev-default.rules has a line which reads:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",	NAME="bus/usb
/$env{BUSNUM}/$env{DEVNUM}"

/proc/bus/usb is not mounted (/proc is, just in case...) and isn't in /etc/fstab. The device I'm trying to map is a Keyspan USB to serial adapter.

Here's some checkings:

lsusb | grep Keyspan
Bus 003 Device 003: ID 06cd:0121 Keyspan USA-19hs serial adapter

(OK: bus 003, device 003)

ls -l /dev/bus/usb/003/003
crw-rw-r-- 1 root root 189, 258 Nov 30 15:50 003

(no execute permissions, no vboxusers permissions, no myself permissions)

ls -l /proc/bus
dr-xr-xr-x 2 root root 0 Nov 30 16:40 usb

(no write permissions, no vboxusers permissions, no myself permissions)

My unsuccessful tries:

chgrp vboxusers /dev/bus/usb/003/003
chmod g+x /dev/bus/usb/003/003
chgrp -R vboxusers /proc/bus/usb
chmod -R g+w /proc/bus/usb

(Yes, I am in vboxusers group)

Still, I can add a filter for this device in the VM USB settings, directly from "add from device" - but the device is grayed out in the VM window top menu and, in VM USB settings, it shows a "status: unavailable" warning. (Funny: sudo tail -f /var/log/messages show this device as "usb 3-1: Product: Keyspan USA-19H". Does this 3-1 conflict with the previous info from lsusb, or nevermind?)

Is this still happening to other users/systems? Is there a workaround for my case? I saw there were lots of attempts with /lib/udev/rules.d/50-udev-default.rules, but the actual solutions were different for each poster... Thanks!

comment:65 in reply to: ↑ 64 Changed 2 years ago by michael

Replying to Emerson Prado: I assume that you are using our Debian package, not one directly from Debian or Mint (if you are, please check with them first in case anything got changed, as the installer is one of the places that tends to happen). If you are using our package (could you tell us precisely which one?), try purging it and re-installing.

And I fixed the mark-up in your post. Note the "code block" button above the text area!

comment:66 follow-up: ↓ 67 Changed 2 years ago by Emerson Prado

Yes. I should have mentioned that, but you guessed right. I intalled the Debian package from VB.
The file is named virtualbox-4.1_4.1.2-73507~Debian~squeeze_i386.deb. Hope this fully identifies the package but, otherwise, just tell me what to look for.
I'll backup my VMs, purge VB and reinstall (will download the latest package just in case). Do you recommend deleting additional files or directories between purging and reinstalling?
Thanks!

comment:67 in reply to: ↑ 66 Changed 2 years ago by michael

Replying to Emerson Prado:

I'll backup my VMs, purge VB and reinstall (will download the latest package just in case). Do you recommend deleting additional files or directories between purging and reinstalling?

Purging and reinstalling the package should be fine. Your VMs should not be affected, and you certainly don't have to remove them.

comment:68 Changed 2 years ago by Emerson Prado

Did it. Now I got the latest VB from the .deb pkg from VB download page, with fresh config files.
I tried to open my VM settings, and got an error message saying VB couldn't access USB subsystem:

Código de Resultado: 
NS_ERROR_FAILURE (0x00004005)
Componente: 
Host
Interface: 
IHost {dab4a2b8-c735-4f08-94fc-9bec84182e2f}
Chamador: 
IMachine {5eaa9319-62fc-4b0a-843c-0cb1940f8a91}

Went into settings, removed the USB filters and disabled USB routing. Then hit "OK", reopened settings and reenabled USB. Tried to add a filter from device, but no device was shown, even though "lsusb" shows my USB devices (the Keyspan adapter and a Dymo USB printer).
/proc/bus/usb is not mounted and I now have a /etc/udev/rules.d/10-vboxdrv.rules file. But it doesn't have a line starting with SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device". My /lib/udev/rules.d/50-udev-default.rules file doesn't set the mode for USB devices as happens with most here.
Anyway, I appended UBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE:="0664" to my /etc/udev/rules.d/10-vboxdrv.rules without success. Tried SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="VirtualBox/$env{BUSNUM} /$env{DEVNUM}", GROUP="vboxusers", MODE="0664" too, without success either. Got the same error described above. Renamed /etc/udev/rules.d/10-vboxdrv.rules to 51-vboxdrv.rules, and the USB disappeared (no Keyspan line after lsusb). I disconnected and reconnected the device in each step. Renamed back to 10-*, now lsusb shows it again. But same error.
Well, I didn't get this error in VB 4.1.2, so I purged 4.1.6 and reinstalled 4.1.2 to be somewhat back to where I started. Nope. Still same error... Either purging 4.1.2 or installing 4.1.6 seems to have messed something related to USB. Sadly, I have no idea of what messed what. Editing 10-vboxdrv.rules as above didn't help either.
I don't think I purged earlier versions of VB before installing 4.1.2, so some config file or whatever left maybe made it half function until I purged it. I probably better purging 4.1.2 and installing an older build, just don't know which one...

comment:69 follow-up: ↓ 70 Changed 2 years ago by michael

What does /etc/udev/rules.d/10-vboxdrv.rules contain then? And what do

$ which udevadm
$ which udevinfo
$ udevadm version

say?

comment:70 in reply to: ↑ 69 Changed 2 years ago by Emerson Prado

Replying to michael:

What does /etc/udev/rules.d/10-vboxdrv.rules contain then?

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/share/virtualbox
/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device",
RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor
$attr{bDeviceClass}"
SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/share/virtualbox
/VBoxCreateUSBNode.sh --remove $major $minor"
SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device",
RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
$ which udevadm
/sbin/udevadm
$ which udevinfo
Nothing
$ udevadm version
164

(All those ran as root, otherwise nothing done)

comment:71 follow-up: ↓ 72 Changed 2 years ago by michael

So far so good. What about the following (as user):

$ ls -lR /dev/vboxusb
$ VBoxManage list usbhost

comment:72 in reply to: ↑ 71 Changed 2 years ago by Emerson Prado

Replying to michael:

So far so good. What about the following (as user):

$ ls -lR /dev/vboxusb
Permission denied
$ sudo su
# /dev/vboxusb:
total 0
drwxr-x--- 2 root vboxusers 60 Dez  1 10:29 002
drwxr-x--- 2 root vboxusers 60 Dez  1 11:37 003

/dev/vboxusb/002:
total 0
crw-rw---- 1 root vboxusers 189, 129 Dez  1 10:29 002

/dev/vboxusb/003:
total 0
crw-rw---- 1 root vboxusers 189, 263 Dez  1 11:37 008

# exit
$ VBoxManage list usbhost
Host USB Devices:

<none>

"Permission denied" might be the problem, correct? But:

$ cd /dev
$ ls -l
...
drwxr-x---  4 root vboxusers       80 Dez  1 10:29 vboxusb
...

/dev/vboxusb and everything inside have read permissions - directories have execute permissions too - for vboxusers, and I am in vboxusers group (triple checked just in case...).

I removed the Keyspan adapter and changed ownership of /dev/vboxusb and everything inside to myself (chown -R <me> vboxusb/). Ran VBoxManage list usbhost, and it showed the other device (the printer). Then I plugged the adapter back and ran VBoxManage list usbhost again, and it showed nothing, not even the printer. ls -lR again showed the ownerships went back to root again for /dev/vboxusb tree, except for the printer specific nodes.
Well, chowned again and got:

$ VBoxManage list usbhost
Host USB Devices:

UUID:               26d196b1-4fbb-4723-b29e-e2fb0d155716
VendorId:           0x06cd (06CD)
ProductId:          0x0121 (0121)
Revision:           1.0 (0100)
Manufacturer:       Keyspan, a division of InnoSys Inc.
Product:            Keyspan USA-19H 
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1d.1/usb3
/3-1//device:/dev/vboxusb/003/009
Current State:      Available

UUID:               8b638cf6-7cdc-4ad0-9ef5-1996c820af1c
VendorId:           0x0922 (0922)
ProductId:          0x0010 (0010)
Revision:           1.0 (0100)
Manufacturer:       DYMO
Product:            DYMO LabelWriter 320
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1d.0/usb2
/2-2//device:/dev/vboxusb/002/002
Current State:      Available

And the device was found in the guest OS (hardly working, but this is another issue).

So this is what I can see so far:
1.Devices change their ownership to root when connected. Maybe it's just how hotplug, udev or so is setup, and maybe it's just how it should be.
2.Even though /dev/vboxusb/ tree has read access to group vboxusers, and I am in this group, I can't access any directory or file there, and this causes the USB devices to be out of VB reach. This is strange.
3.Otherwise, the setup works (so I don't seem to have a hardware, driver, VB or OS serious issue).

comment:73 Changed 2 years ago by Emerson Prado

Ah, my bad, my too bad!
By purging VirtualBox, group vboxusers got removed. When I reinstalled VB, I added myself to vboxusers, but didn't log out and back in for this inclusion to take effect. I checked with "groups <me>", and I was always inside vboxusers but, when I entered "groups" without arguments, no vboxusers was shown...
Well, now I could list /dev/vboxusb/ and get a good answer from VBoxManage list usbhost. The USB device is shown in the VM as "captured" and the guest OS sees it.
Sorry by overlooking this...

comment:74 Changed 2 years ago by michael

  • Status changed from reopened to closed
  • Resolution set to fixed

Glad that's solved. I get the feeling something needs to be done to make this sort of thing easier for users to diagnose without assistance.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use