Emmet is, unfortunately, correct. I had forgotten to re-disable the section in /etc/init.d/mountdevsubfs.sh too.
The devices file itself is created when a usbfs mount is created, using:
$ mkdir .usbfs $ sudo mount -n -t usbfs -obusmode=0700,devmode=0600,listmode=0644 usbfs .usbfs $ ls .usbfs 001 002 003 004 005 devices $ cat devices $ cat .usbfs/devices
T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.22-14-generic ehci_hcd ...
Unless there is some over-arching reason *not* to use usbfs then the best solution is, I think, to amend /etc/init.d/mountdevsubfs.sh so instead of:
# # 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
we have
# # Magic to give virtual machines (KVM/QEMU, VirtualBox, VMWare, etc) access to host USB devices # 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
This could be added as an additional stanza (which takes the solution back to amending the "sysvinit" package).
The alternative is to add a complete new set of scripts and links, either:
/etc/rc.S/S12mountdevusbfs -> /etc/init.d/mountdevusbfs.sh
or
/etc/rc2.d/S20mountdevusbfs -> /etc/init.d/mountdevusbfs.sh
That, coupled with the alteration to KVM/QEMU would solve the issue.
Comments please?
Emmet is, unfortunately, correct. I had forgotten to re-disable the section in /etc/init. d/mountdevsubfs .sh too.
The devices file itself is created when a usbfs mount is created, using:
$ mkdir .usbfs 0700,devmode= 0600,listmode= 0644 usbfs .usbfs
$ sudo mount -n -t usbfs -obusmode=
$ ls .usbfs
001 002 003 004 005 devices
$ cat devices
$ cat .usbfs/devices
T: Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.22-14-generic ehci_hcd
...
Unless there is some over-arching reason *not* to use usbfs then the best solution is, I think, to amend /etc/init. d/mountdevsubfs .sh so instead of:
# 0700,devmode= 0600,listmode= 0644 usb/devices
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=
#ln -s .usbfs/devices /dev/bus/
#mount --rbind /dev/bus/usb /proc/bus/usb
we have
# 0700,devmode= 0600,listmode= 0644 usb/devices
# Magic to give virtual machines (KVM/QEMU, VirtualBox, VMWare, etc) access to host USB devices
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=
ln -s .usbfs/devices /dev/bus/
This could be added as an additional stanza (which takes the solution back to amending the "sysvinit" package).
The alternative is to add a complete new set of scripts and links, either:
/etc/rc. S/S12mountdevus bfs -> /etc/init. d/mountdevusbfs .sh
or
/etc/rc2. d/S20mountdevus bfs -> /etc/init. d/mountdevusbfs .sh
That, coupled with the alteration to KVM/QEMU would solve the issue.
Comments please?