VirtualBox

Opened 15 years ago

Closed 12 years ago

#3394 closed defect (fixed)

USB on Linux-Host only with USBFS

Reported by: Stefan Becker Owned by:
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 (1)

VBox.log (46.1 KB ) - added by Stefan Becker 15 years ago.
Visa 32 Busisness Guest Log

Download all attachments as: .zip

Change History (75)

by Stefan Becker, 15 years ago

Attachment: VBox.log added

Visa 32 Busisness Guest Log

comment:1 by Frank Mehnert, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

Forget my post about access rights.

In the fstab USBFS was enabled.

comment:4 by Frank Mehnert, 15 years ago

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

comment:5 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Frank Mehnert, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Michael Thayer, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Frank Mehnert, 15 years ago

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

comment:13 by Stefan Becker, 15 years ago

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 by Michael Thayer, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Michael Thayer, 15 years ago

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 by Stefan Becker, 15 years ago

Im not an UDEV professionial :)

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

comment:19 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

No change with Version 3.04.

comment:21 by Davide Vernè, 15 years ago

I think the problem is

comment:22 by Davide Vernè, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Davide Vernè, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Davide Vernè, 15 years ago

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 by Stefan Becker, 15 years ago

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 by Frank Mehnert, 15 years ago

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 by Frank Mehnert, 15 years ago

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 by Stefan Becker, 15 years ago

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

comment:34 by Stefan Becker, 15 years ago

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 by Stefan Becker, 15 years ago

Has there something changed in Version 3.08?

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

comment:36 by Michael Thayer, 15 years ago

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 by Michael Thayer, 15 years ago

Version: VirtualBox 2.1.4VirtualBox 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 by Stefan Becker, 15 years ago

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 by clauz, 15 years ago

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 by Michael Thayer, 15 years ago

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 by clauz, 15 years ago

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 by Roman Zaks, 15 years ago

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 by clauz, 15 years ago

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

comment:44 by Stefan Becker, 15 years ago

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 by Schlomo Schapiro, 15 years ago

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 by Robert Hancock, 14 years ago

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

comment:47 by Michael Thayer, 14 years ago

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

comment:48 by clauz, 14 years ago

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 by Robert Hancock, 14 years ago

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 by Michael Thayer, 14 years ago

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

comment:51 by Robert Hancock, 14 years ago

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

comment:52 by clauz, 14 years ago

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

comment:53 by Frank Mehnert, 14 years ago

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 by Frank Mehnert, 14 years ago

Resolution: fixed
Status: newclosed

No response, closing.

comment:55 by Frode Tennebø, 14 years ago

Resolution: fixed
Status: closedreopened

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 by Mike Bond, 14 years ago

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 by Michael Thayer, 14 years ago

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

comment:58 by kwrobel, 14 years ago

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 by Paul, 14 years ago

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 by gripp35, 13 years ago

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 by Schlomo Schapiro, 13 years ago

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 by Frank Mehnert, 13 years ago

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:64 by Emerson Prado, 12 years ago

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!

in reply to:  64 comment:65 by Michael Thayer, 12 years ago

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 by Emerson Prado, 12 years ago

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!

in reply to:  66 comment:67 by Michael Thayer, 12 years ago

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 by Emerson Prado, 12 years ago

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 by Michael Thayer, 12 years ago

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

$ which udevadm
$ which udevinfo
$ udevadm version

say?

in reply to:  69 comment:70 by Emerson Prado, 12 years ago

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 by Michael Thayer, 12 years ago

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

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

in reply to:  71 comment:72 by Emerson Prado, 12 years ago

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 by Emerson Prado, 12 years ago

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 by Michael Thayer, 12 years ago

Resolution: fixed
Status: reopenedclosed

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.

© 2023 Oracle
ContactPrivacy policyTerms of Use