This article is about the Nintendo Wii Remote linux kernel driver. This driver is part of upstream linux since version 3.1. It is an easy to use drop-in replacement for the older user-space drivers like cwiid. You can use your wiimote for all purposes with this driver, for instance as X input device or joystick controller for your linux games.
- xwiimote kernel driver
- Wii Remote hardware
The most important piece required is Bluetooth, this must already be configured and running without the help of this guide. This should be simple enough with any guide found on the internet. The kernel driver is part of upstream linux since version 3.1. The module is called "hid-wiimote". If it is not available in your kernel, you need to compile the module yourself. The arch linux kernel should include it starting with version 3.1.
Lastly you will need a Wiimote, this can include (although are not required) the Nunchuk and Classic Control attachments.
Connect the Wiimote
You can connect to your wiimote like any other bluetooth device. See Bluetooth article about information on pairing bluetooth devices. The wiimote does not need special handling, anymore.
If your wiimote is connected, it will appear with several input devices inside /dev/input/eventX. You can list all wiimotes with:
Then you can get additional device details with:
The default mapping for the input-keys of the wiimotes are not very useful. Userspace applications that remap the wiimote input to more useful keys/actions are still under development .
The wiimote includes an infrared-camera. To use this camera as pointer input device, you need an IR-rack as infrared source. Possible infrared sources are:
- Nintendo Wii Sensor Bar
- Wireless sensor bar - check eBay!
- Small candles (should have about 30cm distance)
- Home made sensor bar ()
The input mapping is quite weird
The default-mapping maps the wiimote keys to the the key-constants which resemble the wiimote's buttons best. This mapping is quite useless by default. To get better mappings use the xwiimote userspace tools.