Schließt man einen USB-Joystick an hat openSUSE ein recht merkwürdiges Verhalten. Zumindest gilt dies für meinem Fall, bei dem ein Logitech Extreme 3D Pro an ein Asus Motherboard mit nForce 570 SLI-Chipsatz angeschlossen wird. Auf dem System läuft openSUSE 10.2 x86_64. Zum Glück lässt sich diese Problem mit wenigen Handgriffen lösen.

Zunächst scheint das System den Joystick korrekt zu erkennen, was unter anderem anhand von dmesg zu sehen ist.

marix@eddie:~> dmesg | grep Joystick
input: USB HID v1.10 Joystick [Logitech Logitech Extreme 3D Pro] on usb-0000:00:02.0-1
input: USB HID v1.10 Joystick [Logitech Logitech Extreme 3D] on usb-0000:00:02.0-4
Wie zu sehen ist habe ich gleich zwei Joysticks angeschlossen. Zunächst schein aber alles zu funktionieren.

Interessant wird die Sache sobald man versucht den Joystick zu verwenden. Started man zum Beispiel das hervorgagende D1X-Rebirth bekommt man eine wenig erfreulich Meldung.

sdl-joystick: found 0 joysticks
Bestätigt wird die schlechte nachricht auch beim Einsatz von joy2key.
Error opening /dev/input/js0!
Are you sure you have joystick support in your kernel?
Wie die Meldung vermuten lässt, liefert ein ls /dev/input/ | grep js nichts zurück. Der Joystick funktioniert zwar als USB-Gerät, aber seine Semantik ist unbekannt.

Die Fehlermeldung von joy2key führt zur Lösung. Um den Joystick auch unter /dev/input zu sehen muss das Kernelmodul joydev geladen werden.

eddie:~ # modprobe joydev
Damit dies auch bei jedem Systemstart automatisch geschieht muss eine zeile in /etc/init.d/boot.local eingefügt werden.
/sbin/modprobe joydev
Nun steht der Joystick auch bei jedem Systemstart sofort zur Verfügung.

Nun zur Kuriosität. Startet man YaST und installiert neue Software funktioniert der Joystick anschließend reproduzierbar auch so. In diesem Fall scheint aus irgendeinem Grund das Modul also immer geladen zu werden. Sieht fast so aus, als wären Joysticks leider nicht mehr verbreitet genug um von Anfang an berücksichtigt zu werden und wurden beim Startup einfach vergessen.