Wii リモコン
この記事では Linux で Wii リモコンを動作させるのに必要な手順を説明します。既に多くのガイドによって書かれている部分などはあまり深く扱いません。
要件
- Bluetooth
- Wii リモコン
上記の中で最も重要なのは Bluetooth です。このガイドでは既に設定済みであることを前提とします。cwiidAUR パッケージは公式リポジトリに含まれています。パッケージの中には Wii リモコンを使用するのに必要なライブラリとプログラムが含まれています。最後に Wii リモコンが必要です。Wii リモコンにはヌンチャクとクラシックコントローラを接続できます。
Wiimote が Bluetooth で接続されると、デバイスが動き出すはずです。Wiimote 用のカーネルドライバはバージョン 3.1 以降 Linux にあり、Arch Linux の bluez パッケージは必要な wiimote プラグインを含んでいるからです。
Wii リモコンの接続
まずは uinput
モジュールをロードしてください:
# modprobe uinput
/dev/uinput
にデバイスが作られているはずです。永続的に使用したい場合は mkinitcpio.conf の MODULES に追加してください。
cwiid を使うことで Wii リモコンをスキャンできます (Wii リモコンの 1 と 2 ボタンを押してください):
$ hcitool scan Scanning ... <MAC address> Nintendo RVL-CNT-01
Wii リモコンが認識されたら wmgui
コマンドを実行することでボタンやセンサーが動作するかテストできます。
入力デバイス
Wii リモコンは wminput
を使うことでマウスなど通常の入力デバイスのように扱えます。赤外線センサーがない場合、以下を実行してください:
$ wminput -w
Wii モートを前後左右に倒すことでポインタを制御できます。
赤外線センサーがある場合、以下のコマンドを実行してください:
$ wminput -c ir_ptr -w
赤外線センサー
以下の赤外線センサーが使えます:
- Nintendo Wii センサーバー
- 無線センサーバー
設定
デフォルトの設定ファイルは /etc/cwiid/wminput/
です。カスタマイズした設定は ~/.cwiid/wminput
や /usr/local/etc/cwiid/wminput
に保存してください。設定構文は以下のようになっています:
Wiimote.Button = KEY_ON_KEYBOARD
Wiimote.Buttons に設定できる値は [1] を KEY_ON_KEYBOARD に設定できる値は /usr/include/linux/input-event-codes.h
を見てください。
トラブルシューティング
Unable to open uinput
wminput によってエラーが吐かれて Wii リモコンを使えない場合、以下の手順を試してみてください:
1. /etc/udev/rules.d/
に新しいファイルを作成 (拡張子が .rules であればファイルの名前は何でもかまいません)。
2. 以下をファイルに追加:
KERNEL=="uinput", GROUP="wheel", MODE="0660"
3. 再起動。
上記の設定で問題は解決するはずです。詳しくは こちら を見てください。
上記の方法で解決しない場合:
1. /etc/mkinitcpio.conf
を編集して MODULES に "uinput" を追加:
MODULES="uinput ...."
2. 以下のコマンドで initramfs イメージを再生成:
# mkinitcpio -p linux
3. 再起動。