Difference between revisions of "Nintendo WiiMote"
Langstonius (Talk | contribs) |
|||
Line 16: | Line 16: | ||
= Setup = | = Setup = | ||
− | Login as root to the media director which has a bluetooth stick with ssh. | + | Login ([[Logging_In]]) as root to the media director which has a bluetooth stick with ssh. |
Install the cwiid driver as follows | Install the cwiid driver as follows | ||
apt-get install libcwiid0 | apt-get install libcwiid0 | ||
Line 64: | Line 64: | ||
chmod 755 /usr/sbin/wminputd | chmod 755 /usr/sbin/wminputd | ||
− | *Create the config file | + | *Create the config file ([http://en.wikipedia.org/wiki/Vi vi commands]) |
vi /etc/wminputd.conf | vi /etc/wminputd.conf | ||
Revision as of 20:00, 20 August 2008
This device is not out of the box supported by LinuxMCE, but it is known to work [1] [2] [3].
Wiimote setup
I will try to explain what i have done to make the wiimote work with linuxmce.
The wiimote is a cheap gyration device which could work for linuxmce instead of the chief remote from fiire which i find too expensive!!
Setup
Login (Logging_In) as root to the media director which has a bluetooth stick with ssh. Install the cwiid driver as follows
apt-get install libcwiid0 apt-get install wminput
Make sure the uinput kernel module is loaded at boot-time:
echo "uinput" >>/etc/modules
Load it manually in the mean time:
modprobe uinput
create the daemon
cat >/usr/sbin/wminputd <<"EOF" #!/bin/bash #read the config file . /etc/wminputd.conf export DISPLAY=:0 while true do #check if the Orbiter/OrbiterGL is already running! if [ "$(pidof OrbiterGL)$(pidof Orbiter)" ] then #check if the wiimote is already connected if [ -z "$(hcitool con|grep $WIIMOTE_BDADDR)" ] then PID=$(pidof wminput) if [ "$PID" ] then kill -9 $PID fi #mouse acceleration, adjust to your liking #see also: "man xset" and/or "xset -h" # xset m 1/2 3 wminput -c ir_ptr $WIIMOTE_BDADDR & fi fi sleep 5 done EOF
Make it executable
chmod 755 /usr/sbin/wminputd
- Create the config file (vi commands)
vi /etc/wminputd.conf
#this is the config file for the wminputd #enter the wiimote mac address, you can find it with #hcitool scan and then press the red button #besides the battery's off the wiimote #Then place the show'n mac address as follows WIIMOTE_BDADDR="00:AA:00:BB:AA:FF"
you can find your address with hcitool scan
- Edit the file /etc/cwiid/wminput/buttons
vi /etc/cwiid/wminput/buttons
And make it suitable to your needs below is mine
#buttons Wiimote.A = BTN_LEFT Wiimote.B = BTN_RIGHT Wiimote.Up = KEY_UP Wiimote.Down = KEY_DOWN Wiimote.Left = KEY_LEFT Wiimote.Right = KEY_RIGHT Wiimote.Minus = KEY_F7 Wiimote.Plus = KEY_F8 Wiimote.Home = KEY_F3 Wiimote.1 = KEY_F1 Wiimote.2 = KEY_F6
- create the init file
vi /etc/init.d/wminputd
#!/bin/sh # Start/stop the wminputd daemon. # ### BEGIN INIT INFO # Provides: wminputd # Required-Start: $syslog $time # Required-Stop: $syslog $time # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: mousemodule # Description: wminputd # # # ### END INIT INFO test -f /usr/sbin/wminputd || exit 0 . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting wii-remote mousemodule" "wminputd" start-stop-daemon -b --start --quiet --pidfile /var/run/wminputd.pid --name wminputd --startas /usr/sbin/wminputd -- $LSBNAMES log_end_msg $? ;; stop) log_daemon_msg "Stopping wii-mote mousemodule" "wminputd" start-stop-daemon --stop --quiet --pidfile /var/run/wminputd.pid --name wminputd log_end_msg $? ;; restart) log_daemon_msg "Restarting wii-mote mousemdule" "wminputd" start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/wminputd.pid --name wminputd start-stop-daemon -b --start --quiet --pidfile /var/run/wminputd.pid --name wminputd --startas /usr/sbin/wminputd -- $LSBNAMES log_end_msg $? ;; *) log_action_msg "Usage: /etc/init.d/wminputd {start|stop|restart}" exit 2 ;; esac exit 0
Make it executable
chmod 755 /etc/init.d/wminputd
run the script and push the red button beside the battery and your wiimote is ready to go
enable the script so that it will start at boot time
update-rc.d wminputd defaults
now start the script and see if it works
/etc/init.d/wminputd start
Troubleshooting
- Q: When i reload the router then the wiimote will be slow
- A: Just push the red button besides the wiimote so it will connect again
Added 3-30-2008
I tried this and it works beautifully!
A couple of other notes...
Its a pain to get to the little red button by the battery. Instead, you can press and hold the '1' and '2' buttons at the same time for the same effect. The power button will not start the system, but once the system is started (with either the Red button or the button 1+2 being held down together), holding the power button for a couple of seconds will turn the wiimote off and break the connection.