Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I use xboxdrv for my PS3 controllers which I connect via USB. I start xboxdrv with the following command (using daemon because I don't have the controllers connected all the time):

sudo /usr/bin/xboxdrv --daemon --detach-kernel-driver --mimic-xpad --next-controller --mimic-xpad

When I plug in the controller #1 the first time after a reboot I get the following log messages from xboxdrv:

[INFO] UdevSubsystem::on_udev_data(): trying to read data from udev
[INFO] UdevSubsystem::on_udev_data(): trying to read data from udev monitor
[INFO] UdevSubsystem::on_udev_data(): got data from udev monitor
[DEBUG] UdevSubsystem::print_info(): /---------------------------------------------
[DEBUG] UdevSubsystem::print_info(): devpath: /devices/pci0000:00/0000:00:1d.0/usb6/6-1
[DEBUG] UdevSubsystem::print_info(): action: add
[DEBUG] UdevSubsystem::print_info(): subsystem: usb
[DEBUG] UdevSubsystem::print_info(): devtype: usb_device
[DEBUG] UdevSubsystem::print_info(): syspath: /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-1
[DEBUG] UdevSubsystem::print_info(): sysname: 6-1
[DEBUG] UdevSubsystem::print_info(): sysnum: 1
[DEBUG] UdevSubsystem::print_info(): devnode: /dev/bus/usb/006/002
[DEBUG] UdevSubsystem::print_info(): driver: usb
[DEBUG] UdevSubsystem::print_info(): action: add
[DEBUG] UdevSubsystem::print_info(): \----------------------------------------------
[INFO] XboxdrvDaemon::connect(): connecting slot to thread
[INFO] XboxdrvDaemon::connect(): controller connected: 006:002 054c:0268 'PLAYSTATION(R)3 Controller'
[INFO] XboxdrvDaemon::connect(): launched Controller for 006:002 in slot 0, free slots: 1/2

The controller is now connected to /dev/bus/usb/006/002, but it doesn't work.

When I now unplug and reconnect the controller it gets connected to /dev/bus/usb/006/003 and now works perfectly:

[INFO] UdevSubsystem::on_udev_data(): trying to read data from udev
[INFO] UdevSubsystem::on_udev_data(): trying to read data from udev monitor
[INFO] UdevSubsystem::on_udev_data(): got data from udev monitor
[DEBUG] UdevSubsystem::print_info(): /---------------------------------------------
[DEBUG] UdevSubsystem::print_info(): devpath: /devices/pci0000:00/0000:00:1d.0/usb6/6-1
[DEBUG] UdevSubsystem::print_info(): action: add
[DEBUG] UdevSubsystem::print_info(): subsystem: usb
[DEBUG] UdevSubsystem::print_info(): devtype: usb_device
[DEBUG] UdevSubsystem::print_info(): syspath: /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-1
[DEBUG] UdevSubsystem::print_info(): sysname: 6-1
[DEBUG] UdevSubsystem::print_info(): sysnum: 1
[DEBUG] UdevSubsystem::print_info(): devnode: /dev/bus/usb/006/003
[DEBUG] UdevSubsystem::print_info(): driver: usb
[DEBUG] UdevSubsystem::print_info(): action: add
[DEBUG] UdevSubsystem::print_info(): \----------------------------------------------
[INFO] XboxdrvDaemon::connect(): connecting slot to thread
[INFO] XboxdrvDaemon::connect(): controller connected: 006:003 054c:0268 'PLAYSTATION(R)3 Controller'
[INFO] XboxdrvDaemon::connect(): launched Controller for 006:003 in slot 0, free slots: 1/2

After the first conroller is plugged in, the second can be plugged in and starts working directly. What's also strange is that when I first connect any other device (such as a mouse) to the USB port and then disconnect that and plug in the first controller it also works without unplugging the controller.

My current theory is that something is not working correctly for /dev/bus/usb/006/002 and as soon as the controller gets a different device number assigned it works.

Does anybody have an idea what I could do about that? Maybe there is a way to assign the controller directly to a different device number without having to plug something in and unplug it before I plug in the first controller...

share|improve this question

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.