Although N900 USB port does not support host mode and you cannot connect USB mouse, keyboard or joystick you may connect peripherals using bluetooth. Unfortunately N900 does not come with joystick and mouse support in kernel. I had to recompile kernel to get support for joystick device – and as I was already there, I added mouse support too.
You may get already built kernel and modules from this archive: kernel-2.6.28+joydev+mousedev.tar.bz2
Unfortunately the tool to package the kernel is not available, you need to install the kernel manually. Put the *.ko in kernel modules directory on the device and then reflash the kernel:
/home/user # mv *.ko /lib/modules/2.6.28-omap1/
$ sudo flasher-3.5 -f -k sbhome/..../kernel-2.6.28/arch/arm/boot/zImage -R
If you want to compile the kernel yourself, you will find the .config patch in the archive.
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] > patch .config < ../rx51_defconfig+mouse+joystick.diff [sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] > make EXTRAVERSION=-omap1 oldconfig
Then follow the standard Maemo kernel compilation instructions.
Next step is to connect the joystick. Owning a PS3 it is natural to me, to connect the SIXAXIS controller.
SIXAXIS needed to be paired with N900. You need to know the BT address of the phone.
# hciconfig
hci0: Type: UART
BD Address: 34:7E:39:4A:37:XX ACL MTU: 1017:4 SCO MTU: 64:1
UP RUNNING PSCAN
RX bytes:87170 acl:1503 sco:0 events:62 errors:0
TX bytes:574 acl:22 sco:0 commands:21 errors:0
Then you need to connect PS3 SIXAXIS to your Linux PC with the USB cable and use the sixpair tool:
wget http://www.pabr.org/sixlinux/sixpair.c gcc sixpair.c -lusb -o sixpair ./sixpair 34:7E:39:4A:37:XX # your N900 BD address
Almost there. The next step is described by Jonathan. I found that if you have BT on, you just need to launch the sixaxisd, no needing to setup hci0. I was nicely surprised that sixaxisd is even able to light “1″ LED on the controller – the usual flashing was annoying when I connected SIXAXIS to PC.
Once the SIXAXIS is connected, the /dev/input/js0 device will appear.
~ $ ls /dev/input/ event0 event2 event4 keypad mouse0 ts event1 event3 js0 mice pwrbutton uinput
To test the joystick you may install joystick package from Xiaoka APT Repository.
/home/user # jstest /dev/input/js0
You will see a live preview of all joystick buttons and axes values.

Good to see you got it working :D
I am so happy. I don’t know what to type.
I don’t even game, but what you’ve accomplished is very impressive. Love the idea of using a mouse with the N900!
In this issue I’m having continuous problems, please provide more detailed information.
So i have done everything but i think i need to reflash the kernel but sudo flasher-3.5 isnt working. do i need to get it from somewhere? im really new to linux terminal so plz someone help!!
See http://wiki.maemo.org/Updating_the_tablet_firmware
i just cant this thing to work no matter wat i try to do. i want it to work so bad