I have done a bit of work on nooice. If you want to have a look, you can find it here
It uses a call to udevlib to find out about the VendorID and ProductID of the joystick and if it's not Guitar Hero's, labels it as Generic. Then it just assigns a controller to each axis/button.
I have not edited the udev rules, but I think that would be nice.
I've copied most the udev code from some forum. It uses std::strings and stringstreams. I don't know if this is a problem in terms of memory usage on the Mod. You might prefer something lighter. There is also a couple of ioctls.
I have tested it with Guitarix on my debian and I am able to control stuff from my £7 generic PS2 controller
Please tell me what you think.