Gamepad (日本語) - ArchWiki

# Gamepad (日本語)

ゲームパッドを Linux で使うのには少し手間がかかるかもしれません。サポートが薄いためではなく、あなたのゲームパッドを動かすのにロードすべきモジュールを見つける必要があり、そしてそれがわかりづらいことがあるからです。

## ゲームパッド入力システム

実は Linux には異なる2つのゲームパッドの入力システムが存在します。オリジナルの 'Joystick' インターフェイスと新しい 'evdev' ベースのインターフェイスです。

`/dev/input/jsX` は 'Joystick' API インターフェイスに `/dev/input/eventX` は 'evdev' インターフェイス (こちらにはマウスやキーボードなど他の入力デバイスも含まれます) にそれぞれマップされています。

ほとんどの新しいゲームは 'evdev' インターフェイスをデフォルトで使います。しかしながらこのページで触れているツール (jscal, jstest, jstest-gtk) の多くは旧式の 'Joystick' でしか動作せず、これらのツールによる調整やマッピングがほとんど無駄になってしまうでしょう。'evdev' はリマッピングやキャリブレーションをサポートしておらず、サポートしているアプリケーションに任せっきりになっています。

`SDL_JOYSTICK_DEVICE=/dev/input/js0` 環境変数を設定することで 'Joystick' API を使うように SDL を強制させることができます。これは X3 などのゲームで役に立ちます。

wine での確認とテストは基本的に `wine control joy.cpl` で両方できます。

また、xorg ドライバー xf86-input-joystick というのも存在します。これはゲームパッドを使って xorg のマウス・キーボードを操作できるようにするだけのもので、ほとんどの人にとっては望んでいたものではないとなるでしょう。ゲームでの調整やボタンマッピングのために `xorg.conf.d` ファイルを編集するのは無意味ということです。

## 必要なモジュールの確認

Linux における全てのゲームパッド関連のモジュールの広範な外観を見るには、Linux カーネルのソースを紐解く必要があります -- 特に Documentation セクションがそれです。残念ながら、pacman のカーネルパッケージには必要なドキュメントが含まれていません。カーネルソースをダウンロードした場合、`Documentation/input/joystick.txt` を見て下さい。また、kernel.org から使用しているカーネルの "cgit" (git フロントエンド) リンクをクリックして、上部の "tree" リンクをクリックすることでカーネルのソースツリーをブラウズすることができます。こちらはカーネル 3.12.6 のドキュメントのリンクです。

Microsoft Sidewinder コントローラー (`sidewinder`) や Logitech デジタルコントローラー (`adi`) など、特定のモジュールを必要とするゲームパッドも存在します。多くの古いゲームパッドはシンプルな `analog` モジュールで動作します。サウンドカードによるゲームポートにゲームパッドを接続している場合、サウンドカードドライバーをロードする必要があります - しかしながら、カードによっては、Soundblaster Live など、特定のゲームポートドライバーを持っているものもあります (`emu10k1-gp`)。古い ISA サウンドカードは `ns558` モジュールを必要とします。これは標準のゲームポートモジュールです。

Linux でゲームパッドを動作させるのに関連するモジュールは多々あるため、ここでは全てを説明することはできません。詳細については上記のドキュメントを見るようにしてください。

## モジュールのロード

ゲームポートのモジュール (`ns558`, `emu10k1-gp`, `cs461x`, など)、ゲームパッドのモジュール (`analog`, `sidewinder`, `adi`, など)、そしてカーネルジョイスティックデバイスドライバー (`joydev`) をロードする必要があります。これらを `/etc/rc.conf` に追加するか、modprobe してください。`gameport` モジュールは他のモジュールの依存モジュールとして、自動でロードされるはずです。

## 設定のテスト

モジュールがロードされたら、新しいデバイスが見つかるはずです: `/dev/input/js0`。デバイスを `cat` することで動作するか確認できます - スティックを動かして、全てのボタンを押して下さい。例えば Logitech Thunderpad Digital には2つのボタンが存在しますが `analog` モジュールでは動作しません。ドキュメントには、このコントローラーのための固有の `adi` モジュールが載っています。教訓として、最初に動作しなかったときも、諦めてはいけません。ドキュメントを隅々まで読んでみましょう。ドキュメントを見つけるまでは何も動かせないこともあります。

テストする他の方法は AUR の joyutils パッケージの `jstest` を使うことです。このパッケージにはデバイスのキャリブレーションのための `jscal` も入っています。一行では設定できないほどの多数のボタンや軸がある場合や、パッドに加速度センサが付いている場合は (何も起こってない時も新しいイベントを送り続けます) グラフィカルツールを使って下さい。AUR にはそのための jstest-gtk-git が存在します。sixaxis のテストとトラブルシューティングには必須です。

## USB ゲームパッド

USB を動作させて、ジョイスティックドライバーを modprobe する必要があります。`usbhid` と `joydev` です。 usb マウスやキーボードを使っている場合、`usbhid` は既にロードされるので `joydev` モジュールだけをロードしてください。

## PS3 コントローラー

Sixaxis ゲームパッドは USB で接続された時に設定なしで動作します (操作を開始するには PS ボタンを押さなくてはなりません)。振動機能はカーネル 3.14 からサポートされています。

Steam は PS3 パッドとして正しく認識し、PS ボタンで Big Picture を起動することが可能です。Big Picture やゲームによっては 360 コントローラーのように振る舞うことができます。ゲームパッドによるマウス操作はデフォルトでオンになっています。ゲームをプレイする前にオフにしたいときは、下を見て下さい。

## Xbox 360 コントローラー

このコントローラーはパッケージを別にインストールしなくても動作しますが、無線コントローラーには無線レシーバーが必要です (charge-and-play ケーブルはコントローラとの通信に使えません)。有線コントローラーと無線レシーバーはどちらも `xpad` カーネルモジュールによってサポートされています。

デフォルトで、コントローラーと関連付けられたデバイス (例: `/dev/input/event14`) は `root` に所有されます。これは `root` グループに入っており、所有者にしかデバイスを読み書きすることが許可されません (`600`)。結果として、アプリケーションはスーパーユーザー権限で実行しないかぎりコントローラーを使用できなくなります。これを修正するため、以下の `udev` ルールを作成してください。

    /etc/udev/rules.d/50-event.rules

    KERNEL=="event*", GROUP="games", MODE="660"

この `udev` ルールは `games` グループのメンバーであるユーザーがコントローラーを使えるようにします。

残念ながら xpad には新しい無線コントローラーで問題が起こります:

- ボタンマッピングがおかしい (discussion in Steam bugtracker)。
- 同期が動作しない。4つの赤い LED が点滅しますが、コントローラーは動作します (discussion in Arch Forum)。

解決方法は xboxdrv を使うことです。これはユーザースペースで動作するもうひとつのドライバーです。システムサービスとして起動することができます。もしくは SteamOS のパッチがあたった xpad (steamos-xpad-dkms) も以上の問題を修正しています。

コントローラーを使ってマウスの制御や、ボタンのキーへのマッピングなどをしたい場合、`xf86-input-joystick` パッケージを使う必要があります (設定のヘルプは `man joystick` で見れます)。マウスが隅で固まってしまうときは、`/etc/X11/xorg.conf.d/50-joystick.conf` の `MatchDevicePath` を `/dev/input/event*` から `/dev/input/js*` に変更すれば直るでしょう。

Tip: TLP 電源管理デーモンを使っている場合、Microsoft の無線アダプタの接続に問題が発生することがあります (例: インジケータ LED がアダプタを接続した数秒後に消えてしまい、コントローラーの接続が失敗する)。これは TLP の USB 自動サスペンド機能が原因です。この機能を完全に無効化するか、Microsoft の無線アダプタのデバイス ID を機能のブラックリストに追加することで問題は解決します (詳しくは TLP configuration をチェック)。

### SteamOS の xpad

デフォルトの `xpad` カーネルモジュールで問題がおこる場合、AUR の steamos-xpad-dkms でインストールできる SteamOS バージョンを使うことができます。

インストールする前に、DKMS をインストールして実行してください。

それから修正版のカーネルモジュール steamos-xpad-dkms を AUR からインストールして下さい。インストール中に新しい xpad カーネルモジュールがカーネルに結び付けられるのが確認できると思います:

    Creating symlink /var/lib/dkms/steamos-xpad-dkms/0.1/source ->
                     /usr/src/steamos-xpad-dkms-0.1

    DKMS: add completed.

    Kernel preparation unnecessary for this kernel.  Skipping...

    Building module:
    cleaning build area....
    make KERNELRELEASE=3.12.8-1-ARCH KVERSION=3.12.8-1-ARCH....
    cleaning build area....

再起動すれば動作するようになります。

### xboxdrv で2つのコントローラーを使う

xboxdrv は多数のコントローラーをサポートしていますが、デーモンモード でしか動作しません。 一番シンプルな方法はサービスとして xboxdrv をデーモンモードで起動して:

    ExecStart = /usr/bin/xboxdrv -D -c /etc/conf.d/xboxdrv

設定ファイルに2番目のコントローラーのサポートを追加することです:

     [xboxdrv]
     silent = true
     next-controller = true
     [xboxdrv-daemon]
     dbus = disabled

### Xbox 360 コントローラーに偽装する

xboxdrv を使うことで `--mimic-xpad` スイッチによってあらゆるコントローラーを Xbox 360 コントローラーとして登録することができます。Xbox 360 コントローラーをサポートしていて、他のゲームパッドでは問題がおこるゲームでありがたい機能です。

まず、コントローラーのボタンやスティックの名前を確認する必要があります。evtest を使えば確認できます。`evtest` を実行してコントローラーに対応するデバイスのイベント ID 番号 (`/dev/input/event*`) を選択してください。コントローラーのボタンを押したりスティックを動かしてボタンやスティックの名前を調べます。

以下は出力の例です:

    Event: time 1380985017.964843, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
    Event: time 1380985017.964843, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 1
    Event: time 1380985017.964843, -------------- SYN_REPORT ------------
    Event: time 1380985018.076843, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
    Event: time 1380985018.076843, type 1 (EV_KEY), code 290 (BTN_THUMB2), value 0
    Event: time 1380985018.076843, -------------- SYN_REPORT ------------
    Event: time 1380985018.460841, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
    Event: time 1380985018.460841, type 1 (EV_KEY), code 289 (BTN_THUMB), value 1
    Event: time 1380985018.460841, -------------- SYN_REPORT ------------
    Event: time 1380985018.572835, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
    Event: time 1380985018.572835, type 1 (EV_KEY), code 289 (BTN_THUMB), value 0
    Event: time 1380985018.572835, -------------- SYN_REPORT ------------
    Event: time 1380985019.980824, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006
    Event: time 1380985019.980824, type 1 (EV_KEY), code 293 (BTN_PINKIE), value 1
    Event: time 1380985019.980824, -------------- SYN_REPORT ------------
    Event: time 1380985020.092835, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006
    Event: time 1380985020.092835, type 1 (EV_KEY), code 293 (BTN_PINKIE), value 0
    Event: time 1380985020.092835, -------------- SYN_REPORT ------------
    Event: time 1380985023.596806, type 3 (EV_ABS), code 3 (ABS_RX), value 18
    Event: time 1380985023.596806, -------------- SYN_REPORT ------------
    Event: time 1380985023.612811, type 3 (EV_ABS), code 3 (ABS_RX), value 0
    Event: time 1380985023.612811, -------------- SYN_REPORT ------------
    Event: time 1380985023.708768, type 3 (EV_ABS), code 3 (ABS_RX), value 14
    Event: time 1380985023.708768, -------------- SYN_REPORT ------------
    Event: time 1380985023.724772, type 3 (EV_ABS), code 3 (ABS_RX), value 128
    Event: time 1380985023.724772, -------------- SYN_REPORT ------------

上記の場合 `BTN_THUMB`, `BTN_THUMB2`, `BTN_PINKIE` がボタンで、`ABS_RX` が右アナログスティックの X 軸になります。 そしてこの名前を使って次のようなコマンドで Xbox 360 コントローラーにみせかけることができます:

    $ xboxdrv --evdev /dev/input/event* --evdev-absmap ABS_RX=X2 --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_PINKIE=rt --mimic-xpad

上の例は不完全です。デモンストレーション用に1つの軸と3つのボタンしかマップしません。`xboxdrv --help-button` を使って Xbox コントローラーのボタンと軸を見て、上のコマンドに拡充してそれぞれ割り当てて下さい。軸のマッピングは `--evdev--absmap` の後に、ボタンのマッピングは `--evdev-keymap` の後に記述します (カンマで区切り、スペースは使いません)。

デフォルトで、xboxdrv は全てのイベントをターミナルに出力します。これによってマッピングが正しいかどうかテストすることが可能です。`--silent` オプションを追加すると出力がされなくなります。

#### USB による Playstation 3 コントローラー

PS3 コントローラーを使っていて USB で接続している場合、xboxdrv には初めから組み込まれたマッピングが存在します。次のプログラムを実行 (して動作中のドライバを取外) すれば動作するようになります。

    # xboxdrv --silent --detach-kernel-driver

#### Bluetooth による Playstation 3 コントローラー

bluetooth を通してプレイステーション3のコントローラーを使うには sixpair ユーティリティをインストールする必要があります。

sixpair をインストールした後はコントローラーを USB ケーブルで接続して sixpair を実行してください:

    # sixpair

USB からコントローラーを切断して5分間待機してください (本当に待機する必要があるのかは定かでない)。

そして bluez でペアリングを行います。bluez-utils と bluez-plugins パッケージが必要です。

全ての bluetooth ユーティリティ (bluedevil や bluemon) を無効にしてください。

bluetoothctl ユーティリティを実行します:

    # bluetoothctl

bluetooth のプロンプトが表示されます。

プレイステーションボタンを押して、接続・切断のメッセージを見てデバイスのアドレスをコピーしてください (例: 38:C0:96:56:4D:AA)。

ランプの点滅が止まるまで待って下さい。

そして、以下を入力してください:

    agent on
    default-agent
    discoverable on
    pairable on

もう一度プレイステーションボタンを押して、点滅している間に次を入力します:

    connect <device_addr>

デバイスが利用可能にならない場合 (接続と切断を繰り返します) 以下のような表示がされるまで上のコマンドを試し続けてください:

    [CHG] Device <device_addr> Modalias: usb:v054Cp0268d0100
    [CHG] Device <device_addr> UUIDs:
           00001124-0000-1000-8000-00805f9b34fb
           00001200-0000-1000-8000-00805f9b34fb

そしてデバイスを認証してください:

    trust <device_addr>

これで完了です。

次からはプレイステーションボタンを押せば自動的に接続されます。

また、無効にした bluetooth アプレット・モニターをもう一度有効にすることができます。.

コントローラーを使わないときは切断するのを忘れないで下さい。接続したままにしておくと、バッテリーを消費します。

xboxdrv を使って xbox360 コントローラーをエミュレートする場合は udev ルールを作成するのが良いでしょう。

##### udev ルールを作成する

以下の内容で新しい udev ルールを作成してください (例えば 99 または 98-dualshock.rules を /etc/udev/rules.d/ に配置):

    KERNEL=="event*", SUBSYSTEM=="input", ATTRS{uniq}=="<device_addr_you_got_on_pairing>", SYMLINK+="input/dualshock3"

xboxdrv を新しいデバイスで実行します:

    xboxdrv --evdev /dev/input/dualshock3 --mimic-xpad

mimic-xpad が動作しない場合は、xboxdrv [1] による設定ファイルを使用して xboxdrv セクションに以下を追加してください:

     mimic-xpad = true

そして evdev 行を以下のように置き換えてください:

    evdev = /dev/input/dualshock3 (or whatever other name you gave in the udev_rule)

設定したら、xboxdrv を実行します:

    # xboxdrv -c config_file

楽しい時間をお過ごしください。

#### Playstation 2 アダプタ

PS2 デュアルアダプターのボタンマッピングを修正して Xbox コントローラーに見せかけるために、以下のコマンドを使うことができます:

     sudo xboxdrv --evdev /dev/input/event* \
         --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
         --axismap -Y1=Y1,-Y2=Y2 \
         --evdev-keymap   BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lb,BTN_BASE2=rb,BTN_TOP2=lt,BTN_PINKIE=rt,BTN_BASE5=tl,BTN_BASE6=tr \
         --mimic-xpad --silent

#### Logitech Dual Action

Logitech Dual Action ゲームパッドは PS2 のパッドと似ているマッピングを持っていますが、Xbox コントローラーのように使うにはいくつかのボタンとトリガーを交換する必要があります:

     sudo xboxdrv --evdev /dev/input/event* \
         --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
         --axismap -Y1=Y1,-Y2=Y2 \
         --evdev-keymap BTN_TRIGGER=x,BTN_TOP=y,BTN_THUMB=a,BTN_THUMB2=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lt,BTN_BASE2=rt,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr \
         --mimic-xpad --silent

#### Playstation 4 コントローラー

PS4 コントローラーのボタンマッピングを修正するために、xboxdrv で以下のスクリプトを使用するか、または ds4drv プログラムを試すことができます:

     #!/bin/bash
     sudo xboxdrv  \
       --evdev /dev/input/by-id/usb-Sony_Computer_Entertainment_Wireless_Controller-event-joys>
       --evdev-absmap ABS_X=x1,ABS_Y=y1                 \
       --evdev-absmap ABS_Z=x2,ABS_RZ=y2                \
       --evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
       --evdev-keymap BTN_A=x,BTN_B=a                   \
       --evdev-keymap BTN_C=b,BTN_X=y                   \
       --evdev-keymap BTN_Y=lb,BTN_Z=rb                 \
       --evdev-keymap BTN_TL=lt,BTN_TR=rt               \
       --evdev-keymap BTN_SELECT=tl,BTN_START=tr        \
       --evdev-keymap BTN_TL2=back,BTN_TR2=start        \
       --evdev-keymap BTN_MODE=guide                    \
       --axismap -y1=y1,-y2=y2                          \
       --mimic-xpad                                     \
       --silent                                         \
       "$@"

## デッドゾーンの設定

アナログ入力のデッドゾーンを設定したいときは、xorg (マウス・キーボードエミュレート用) とカーネルドライバー (ゲーム用) で別に設定する必要があります。

### Xorg でデッドゾーン

`/etc/X11/xorg.conf.d/50-joystick.conf` の `EndSection` の前に以下のような行を追加してください:

    Option "MapAxis1" "deadzone=1000"

1000 はデフォルトの値で、0 から 30000 の間で設定できます。軸番号を取得する方法はこの記事の #設定のテスト セクションを参照。 問題の軸で既にオプションを設定している場合は、スペースで区切ったパラメータの最後に `deadzone=value` を入力してください。

### カーネルドライバーでデッドゾーン

一番簡単な方法は jstest-gtk-git を使うことです。編集したいコントローラーを選択して、ダイアログの下にあるキャリブレーションボタンをクリックしてください。ジョイスティックやアナログスティックには CenterMin と CenterMax の値を、トリガーには RangeMin を設定します。設定したら `jscal` を使って新しい値をシェルスクリプトに出力してください:

    jscal -p /dev/input/jsX > jscal.sh # replace X with your joystick's number
    chmod +x jscal.sh

そして udev ルールを作成して (例えば `/etc/udev/rules.d/85-jscal.rules`) コントローラーを接続した時に自動的にスクリプトが実行されるようにします:

    SUBSYSTEM=="input", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="c268", ACTION=="add", RUN+="/usr/bin/jscal.sh"

idVendor と idProduct を取得するには `udevadm info --attribute-walk --name /dev/input/jsX` を使って下さい。

最後に SDL にジョイスティックデバイスを知らせるようにしてください。そうしないと無視されて固有の設定が使われるようになってしまいます。 以下を `~/.bashrc` に追加してください: export SDL_JOYSTICK_DEVICE=/dev/input/jsX (X はデバイスの番号に置き換えてください。)

## ゲームパッドのマウス操作を無効にする

コントローラーを使ってゲームを遊びたいとき、ゲームパッドによるマウスカーソルの操作を無効にすると良いかもしれません。無効にするには、以下のように `/etc/X11/xorg.conf.d/50-joystick.conf` を編集してください:

    /etc/X11/xorg.conf.d/50-joystick.conf

    Section "InputClass"
            Identifier "joystick catchall"
            MatchIsJoystick "on"
            MatchDevicePath "/dev/input/event*"
            Driver "joystick"
            Option "StartKeysEnabled" "False"       #Disable mouse
            Option "StartMouseEnabled" "False"      #support
    EndSection

## トラブルシューティング

### ゲームパッドでマウスが動く

ときどき USB ゲームパッドが HID マウスとして認識されることがあります (X 内のみで、`/dev/input/js0` としてもインストールされる)。カーソルがゲームパッドによって動いたり、接続した後に画面の右端に逃げていくのは既知の問題です。アプリケーションが自力でゲームパッドを検出できる場合は、xf86-input-joystick パッケージを削除することができます。

もっと平和的な解決方法はゲームパッドのマウス操作を無効にすることです。

### ゲームパッドでキーストロークを送る

rejoystick と qjoypad という2つのゲームパッドでキー操作するプログラムがあり、どちらも X.org の設定をせずとも問題なく動作します。

#### X.org で

This is a good solution for systems where restarting Xorg is a rare event because it's a static configuration loaded only on X startup. I use it on my media PC running XBMC controlled with Logitech Cordless RumblePad 2. Due to a problem with the d-pad (a.k.a. "hat") being recognized as another axis, I used to run Joy2key as a workaround. Since I upgraded to XBMC 11.0 and joy2key 1.6.3-1, this setup no longer worked for me. I ended up taking a more direct approach and let Xorg handle joystick events.

First, make sure you have xf86-input-joystick installed. Then, create `/etc/X11/xorg.conf.d/51-joystick.conf` like so:

     Section "InputClass"
      Identifier "Joystick hat mapping"
      Option "StartKeysEnabled" "True"
      #MatchIsJoystick "on"
      Option "MapAxis5" "keylow=113 keyhigh=114"
      Option "MapAxis6" "keylow=111 keyhigh=116"
     EndSection

Note: The MatchIsJoystick "on" line doesn't seem to be required for this to work but you may want to uncomment it.

### ゲームパッドがどのプログラムからも認識されない

Steam など、ソフトウェアによっては最初に接続されたゲームパッドしか認識しないことがあります。Microsoft の無線周辺機器デバイスのドライバーにバグが存在するため、bluetooth ドングルでもこの問題が起こることがあります。`/dev/input/js*` や `/dev/input/event*` がキーボードの bluetooth トランシーバーに属していることが確認できたら `/etc/udev/rules.d/99-btcleanup.rules` を作成することで自動的に排除することができます:

    /etc/udev/rules.d/99-btcleanup.rules

    ACTION=="add", KERNEL=="js[0-9]*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/js%n"
    ACTION=="add", KERNEL=="event*", SUBSYSTEM=="input", KERNELS=="...", ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceProtocol}=="00", ATTRS{bInterfaceNumber}=="02", RUN+="/usr/bin/rm /dev/input/event%n"

`KERNELS=="..."` はあなたのデバイスに合わせて置き換えてください。次を実行することで正しい値が確認できます:

    # udevadm info -an /dev/input/js0

問題のデバイスは `/dev/input/js0` と仮定しています。ルールを記述したらルールをリロードしてください:

    # udevadm control --reload

そして問題のデバイスを再接続します。joystick や event デバイスが外されても、番号は予約されています。ただしファイルは扱われます。

Categories:

- Input devices (日本語)
- Gaming (日本語)