https://wiki.archlinux.jp/api.php?action=feedcontributions&user=Maroken&feedformat=atom
ArchWiki - 利用者の投稿記録 [ja]
2024-03-29T05:26:43Z
利用者の投稿記録
MediaWiki 1.34.0
https://wiki.archlinux.jp/index.php?title=XWiimote&diff=8185
XWiimote
2017-03-10T12:35:27Z
<p>Maroken: typo修正</p>
<hr />
<div>[[Category:他のハードウェア]]<br />
[[en:XWiimote]]<br />
この記事では Nintendo Wii リモコンの Linux カーネルドライバーを扱っています。このドライバーは Linux バージョン 3.1 から上流に取り込まれました。[[Wiimote|cwiid]] などの古いユーザー空間ドライバーを置き換えることができます。このドライバーを使うことで様々な用途に Wii リモコンを使用できます。例えば [[X]] の入力デバイスとして使ったり Linux 用のゲームのコントローラとして使えます。<br />
<br />
{{Note|XWiimote のツールは依然として実験的です。Wii リモコンの接続と管理は問題なく動作し X11 の入力デバイスとして Wii リモコンを使うためのドライバーは存在しますが、高度な機能はまだ実装されていない可能性があります。}}<br />
<br />
==要件==<br />
* [[Bluetooth]]<br />
* {{AUR|xwiimote-git}}<br />
* xwiimote カーネルドライバー<br />
* Wii リモコン<br />
<br />
最も重要なソフトウェアは [[Bluetooth]] です。先に進む前に wiki ページを読んで正しく設定してください。<br />
<br />
{{Note|Arch Linux の最新の BlueZ パッケージには wiimote プラグインが含まれています。古いバージョンを使用している場合は [[#BlueZ に wiimote プラグインが含まれていない|BlueZ のトラブルシューティング]]を見てください。}}<br />
<br />
ユーザー空間のユーティリティは [[AUR]] の {{AUR|xwiimote-git}} パッケージでインストールできます。<br />
<br />
カーネルドライバー ({{ic|hid-wiimote}} モジュール) は Linux バージョン 3.1 以上に含まれているため、Arch Linux カーネルには既に存在します。ただし、以下のコマンドでロードする必要があるかもしれません:<br />
<br />
# modprobe hid-wiimote<br />
<br />
最後に Wii リモコンが必要です。Wii リモコンには付属品としてヌンチャクとクラシックコントローラが存在します。<br />
<br />
=== hid-wiimote カーネルモジュール ===<br />
カスタムカーネルを使用する場合、{{ic|CONFIG_HID_WIIMOTE}} で {{ic|hid-wiimote}} モジュールを有効にできます。{{ic|CONFIG_INPUT_FF_MEMLESS}}, {{ic|CONFIG_LEDS_CLASS}}, {{ic|CONFIG_POWER_SUPPLY}}, {{ic|CONFIG_BT_HIDP}} もカーネルに組み込むか、モジュールとしてロードしてください。カーネルのバージョン 3.3 から新しいコンフィグオプション {{ic|CONFIG_HID_WIIMOTE_EXT}} が追加されておりデフォルトで有効になります。ヌンチャクやクラシックコントローラなどの Wii リモコンの周辺機器を制御します。<br />
<br />
==Wii リモコンの接続==<br />
<br />
他の Bluetooth デバイスと同じように Wii リモコンを接続してください。Bluetooth デバイスのペアリングについて詳しくは [[Bluetooth]] の記事を読んでください。Wii リモコンに特別な設定は不要です。BlueZ の wiimote プラグインは必要なことを裏で全てやってくれます。<br />
<br />
Wii リモコンを認識できるようにするには後ろのバッテリカバーの下にある赤い同期ボタンを押してください。Wii リモコンは20秒ほどペアリング可能モードになります。1 と 2 ボタンを同時に押すことで Wii リモコンを同じ状態にすることもできます。ただし前者の方法のほうが信頼性が高いと思われます。<br />
<br />
デバイスの紐付けを行うときに PIN の入力が求められた場合、BlueZ の bluetoothd デーモンに wiimote プラグインが含まれていません。詳しくは [[#BlueZ に wiimote プラグインが含まれていない|BlueZ のトラブルシューティング]]を見てください。解決しない場合、ペアリングを行わずに Wii リモコンに接続する方法があります (PIN による認証を必要としません)。あらゆるバージョンの BlueZ で機能します。<br />
<br />
==デバイスの管理==<br />
<br />
Wii リモコンを接続すると、{{ic|/dev/input/eventX}} に複数の入力デバイスが現れます。以下のコマンドで全ての Wii リモコンを確認できます:<br />
<br />
$ ls /sys/bus/hid/devices<br />
<br />
そして以下のコマンドで追加デバイスの詳細を取得できます:<br />
<br />
$ ls /sys/bus/hid/devices/<devid>/<br />
<br />
Wii リモコンの入力キーのデフォルトマッピングはあまり役に立ちません。Wii リモコンの入力をもっと便利なキーとアクションにマッピングしなおすユーザー空間のアプリケーションが存在します [http://github.com/dvdhrm/xwiimote]。[[AUR]] の {{AUR|xwiimote-git}} パッケージでインストールできます。パッケージをインストールしたら {{ic|xwiishow}} ツールで Wii リモコンのテストが可能です:<br />
<br />
接続済みの全ての Wii リモコンを確認:<br />
<br />
$ xwiishow list<br />
<br />
Wii リモコンのパス (例: {{ic|/sys/bus/hid/devices/<did>}}) が表示された場合、以下のコマンドでデバイスをテストできます:<br />
<br />
$ xwiishow /sys/bus/hid/devices/<did><br />
<br />
あるいはデバイスのインデックスを使用:<br />
<br />
$ xwiishow 1<br />
<br />
上記のコマンドを実行すると Wii リモコンの絵が表示されボタンが押されると通知を発します。{{ic|'r'}} キーを使うことで振動モーターの有効・無効を切り替えられます。アプリケーションを終了するには {{ic|'q'}} を押してください。上記のツールを使うには root 権限が必要な場合もあります。<br />
<br />
{{ic|xwiishow}} ツールで Wii リモコンのボタン押下が表示されてもキーを登録できない場合、ユーザーを {{ic|input}} グループに追加してください:<br />
<br />
# usermod -aG input ''username''<br />
<br />
===X.Org 入力ドライバー===<br />
<br />
AUR には X.Org の入力ドライバーが存在し {{AUR|xf86-input-xwiimote-git}} パッケージでインストールできます [http://github.com/dvdhrm/xf86-input-xwiimote]。自動的に X クライアントの入力デバイスとして使えるようになります。インストールしたら man ページを読んでください:<br />
<br />
$ man xorg-xwiimote<br />
<br />
===赤外線センサー===<br />
<br />
Wii リモコンには赤外線カメラが内蔵されています。カメラを入力デバイスとして使うには、赤外線を発するものが必要です。例えば以下のようなものが該当します:<br />
<br />
* Nintendo Wii センサーバー<br />
* 無線センサーバー<br />
* ロウソク (30cm くらいは必要です)<br />
* 自家製のセンサーバー ([http://doctabu.livejournal.com/64758.html])<br />
<br />
{{Note|{{ic|Option "MotionSource" "ir" }} を使うことで xf86-input-xwiimote の赤外線によるマウスエミュレーション機能を利用できます。}} <br />
現在、赤外線センサーによるマウスエミュレーションを有効にするユーザー空間アプリケーションは存在しません。必要な場合は、[[Wii リモコン|cwiid]] を使ってください。ただし xwiimote ツールは活発に開発されており将来的に赤外線のマウスエミュレーションをサポートする予定があります。<br />
<br />
==トラブルシューティング==<br />
<br />
===入力のマッピングがおかしい===<br />
<br />
Wii リモコンのキーのデフォルトマッピングはデフォルトでは使い物になりません。マッピングを変更するには [[#デバイスの管理|xwiimote のユーザー空間ツール]]を使ってください。<br />
<br />
===BlueZ に wiimote プラグインが含まれていない===<br />
<br />
上流の BlueZ にはバージョン 4.96 から wiimote プラグインが含まれていますが、コンパイル時に {{ic|--enable-wiimote}} で明示的に有効にする必要があります。Arch Linux のパッケージには {{ic|bluez-4.96-3}} から wiimote プラグインが含まれています。パッケージに wiimote プラグインが含まれていることを確認するには:<br />
<br />
$ grep wiimote $(which bluetoothd)<br />
<br />
以下のように表示されるはずです:<br />
<br />
Binary file /usr/sbin/bluetoothd matches<br />
<br />
{{Note|Arch Linux の bluez 5.5 ではファイルは {{ic|/usr/lib/bluetooth}} に存在します。確認するには: {{ic|$ grep wiimote /usr/lib/bluetooth/bluetoothd}}。}}<br />
<br />
BlueZ に wiimote プラグインが含まれていれば特に設定は不要です。含まれていない場合、有効化する必要があります。bluez パッケージをコンパイルしたくない場合、ペアリングを行わないで Wii リモコンを接続する方法があります。例えば {{ic|blueman}} や {{ic|gnome-bluetooth}} を使用する場合、新しいデバイスを追加する際に {{ic|"Proceed without pairing"}} を選択してください。<br />
<br />
モジュールを自分でコンパイルする場合、{{ic|--enable-wiimote}} を configure フラグに追加してください。詳しくは bluez の PKGBUILD を参照。<br />
<br />
===Dolphin エミュレータで Wii リモコンが使えない===<br />
Dolphin は独自のドライバーを利用するため Dolphin が動作しているときに Wii リモコンの再同期ボタンを押すことで使えるようになるはずです。<br />
<br />
===Wii リモコンが機能しない===<br />
<br />
XWiimote のソフトウェアスタックは活発に開発されています。問題があったら [http://www.github.com/dvdhrm/xwiimote/issues XWiimote@GitHub] に報告してください。<br />
<br />
Linux に Wii リモコンのサポートを追加する他のプロジェクトも存在します。cwiid プロジェクトについては [[Wii リモコン]]の記事を読んでください。<br />
<br />
===赤い同期ボタンでペアリングしてから自動同期が機能しない===<br />
ホストに自動的に再接続するにはペアリングした後に Wii リモコンを直接接続する必要があります。<br />
<br />
bluetoothctl で以下のコマンドを実行してください:<br />
<br />
power on<br />
agent on<br />
<press red sync button><br />
scan on<br />
pair <MAC of the found wiimote, use TAB for autocompletion> # '''note:''' we do not explicitly connect, we just pair!<br />
connect <MAC of the wiimote> # there seems to be a pretty short timeout, so execute this '''immediately after the pairing command'''<br />
trust <MAC of the wiimote><br />
disconnect <MAC of the wiimote><br />
<br />
wiimote の接続が切れて電源 LED が消えます。Wii リモコンの電源ボタンを押すと接続がホストと再確立されます。<br />
<br />
==参照==<br />
* [[Wii リモコン]]: Cwiid: 部分的に Wii リモコンをサポートする Linux 用の古いソフトウェアスタック。<br />
* [http://dvdhrm.wordpress.com/2012/02/26/xf86-input-xwiimote-0-2/]: Wii リモコンに関する開発者ブログ。</div>
Maroken