Comment 5 for bug 156085

TJ (tj) wrote :

There is a work-around that re-enables /proc/bus/usb/devices:

Support for /proc/bus/usb/* was removed in the initscripts package (part of sysvinit), as per this changelog entry:

sysvinit (2.86.ds1-14.1ubuntu22) gutsy; urgency=low

  * Drop /proc/bus/usb again; software should all be ported to check
    /dev/bus/usb first by now.

 -- Scott James Remnant <email address hidden> Wed, 11 Jul 2007 13:47:24 +0100

To re-enable it edit the file '/etc/init.d/mountdevsubfs.sh' and uncomment the code after line 40 so it reads:

 # Magic to make /proc/bus/usb work
 #
 mkdir -p /dev/bus/usb/.usbfs
 domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
 ln -s .usbfs/devices /dev/bus/usb/devices
 mount --rbind /dev/bus/usb /proc/bus/usb

Execute the script manually to enable the change before a system reboot:

$ sudo /etc/init.d/mountdevsubfs.sh start

I'm adding the sysvinit package to this bug-report since the changelog entry says applications should now use /dev/bus/usb, but it seems that usb is the only 'bus' using that location. Everything else uses /sys/bus/. Therefore it directly causes the qemu/kvm problem. It seems illogical to require all applications that access USB to be patched for this.

There's a related bug report for VirtualBox with a comment by Scott, but no rationale to why it was done.

Bug #151585 "USB Devices unrecognised by virtualbox (/proc/bus/usb missing)"