Kinect enumeration
OpenNi, PrimeSense sensor installed, but Microsoft Kinect® does not work under Linux (Fedora 15 and Kubuntu 11.10)
Error message: "One or more of the following nodes could not be enumerated: Device: PrimeSense/SensorV2/5.0.0.43: The device is not connected!". Some older drivers result in a slightly different message like "Can't create any node of the requested type!" or "Open failed: Failed to set USB interface! Press any key to continue . . ."
Use lsusb or USB Viewer (yum install usbview) to identify if the device is recognized by the USB hub. There you will find three entries. Xbox NUI Audio, Xbox NUI Motor, Xbox NUI Camera. This means your installation of OpenNI is fine. In USB Viewer you will see the camera entry in black, and not as intended in red.
In my opinion the problem is caused by two reasons. First the presence of the Linux kernel module gspca_kinect and secondly in not automatically mounting the usb device as a filesystem.
Type lsmod to list all your running modules. You'll find the module gspca_kinect in /lib/modules/*.i686/kernel/drivers/media/video/gspca/gspca_kinect.ko. To disable the module use: rmmod gspca_kinect. If that does not help use force: rmmod -f gspca_kinect. Then unplug and plug back in your kinect! Note after reboot the module is loaded again. Use a blacklist to disable loading of the module in the first place. Add the entry blacklist gspca_kinect to the file /etc/modprobe.de/blacklist.conf. Renaming the module to *.bak does not help. After reboot it will be built again.
Secondly mount the usb device as a filesystem. Use the mount command: mount -t usbdevfs none /proc/bus/usb. Note that the none keyword is arbitrary, you can use anything like usbdevfs or kinect. If you do not want to have to mount the filesystem each time you reboot the system, you can add the entry none /proc/bus/usb usbdevfs defaults 0 0 to the file /etc/fstab after the /proc. This has the same effect as the mount command.
Greeting from Vienna and have fun with your projects!
Update 2011/10/30: I just found out that the first step is sufficient.