I did get it working on my second attempt. I think it runs very nicely but I have only tried the SNES emulator so far.
The difference between this attempt and the first is that I had the xboxdrv files that go in the /etc/default and /etc/init.d dirs prepared. There was some problems on the first attempt and xboxdrv didn’t load so it didn’t unload the default driver for the joystick to unload. That driver must have reserved a joystick slot because from that point I couldn’t get the Xbox360 controller to load as /dev/inout/js0. Even after I forced the driver to be unloaded it still defaulted to js1. This makes me think that the slot was then reserved based on the driver and the UID from the USB HID controller. Does anyone know it this is in fact how it works? There should also be a way to remove this information from the system. Can anyone tell me how to reset the device info. This would save people in the future from starting from scratch in a case like this.
For those interested in why the driver didn’t load… Debian uses dependency based scheduling for loading drivers. The comment at the front of the file actually contains instructions for loading it. It is the format of the text that is very finacky. It is sensitive to multiple spaces so horizontal space should be added with tabs. Some of my editing is done in windows and the line ending chars are different. So I will load a file in nano and write it back out with <ctrl>-o and before accepting the name press <alt>-m if it says that is going to write in MS-DOS format or in MAC format. I think more people would try loading drivers as daemons and writing the needed shell scripts if the shell would ignore white space properly or at least gave you a message that says that the problem is one of those chars that you can’t see instead of telling you that you have a mismatched IF statement or some other bogus indication.
I hope that all this helps someone else