Wii リモコン

提供: ArchWiki
2022年2月10日 (木) 12:50時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (カテゴリを修正)
ナビゲーションに移動 検索に移動

この記事では Linux で Wii リモコンを動作させるのに必要な手順を説明します。既に多くのガイドによって書かれている部分などはあまり深く扱いません。

ノート: このページに書いている手順は上流ではもはや開発が止まっているソフトウェアを元にしています。新しい Linux カーネルの Wii リモコンドライバーに基づいた Wii リモコンドライバーが作成されています。新しい Wii リモコンソフトウェアスタックを試したい場合は XWiimote を見てください。

要件

  • Bluetooth
  • cwiidAUR
  • Wii リモコン

上記の中で最も重要なのは Bluetooth です。このガイドでは既に設定済みであることを前提とします。cwiidAUR パッケージは公式リポジトリに含まれています。パッケージの中には Wii リモコンを使用するのに必要なライブラリとプログラムが含まれています。最後に Wii リモコンが必要です。Wii リモコンにはヌンチャクとクラシックコントローラを接続できます。

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. 再起動。

参照