【Ubuntu】ジョイスティック(PS3コントローラ)がマウスとして認識されてしまう問題
ロボットを動かそうとしてPS3コントローラをPCに接続したところ、コントローラのジョイスティックがマウスとして認識され、ジョイスティックを動かす度にポインタが移動してしまう現象が発生しました。対処策は以下の通りです。
xserver-xorg-input-joystickの削除
xserver-xorg-input-joystickが入っている場合、これが悪さをしている可能性があります。下記コマンドから削除しましょう。
$ sudo apt purge xserver-xorg-input-joystick
xserver-xorg-input-joystickが入っていない、もしくは消しても直らない
xserver-xorg-input-joystickが入っていない、もしくは消しても直らない場合は以下を実行します。まずxinput
を使って認識されているデバイスのリストを出します。
$ xinput -list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)] ⎜ ↳ Logitech M545/M546 id=9 [slave pointer (2)] ⎜ ↳ Sony PLAYSTATION(R)3 Controller id=14 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ USB HD Webcam: USB HD Webcam id=10 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)] ↳ Panasonic Laptop Support id=13 [slave keyboard (3)]
問題のSony PLAYSTATION(R)3 Controllerが認識されていることがわかります(他のコントローラの場合は適宜読み替えてください)。再びxinput
を使ってコントローラのプロパティを参照します。
$ xinput watch-props 'Sony PLAYSTATION(R)3 Controller' Device 'Sony PLAYSTATION(R)3 Controller': Device Enabled (141): 1 Coordinate Transformation Matrix (143): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (273): 0 Device Accel Constant Deceleration (274): 1.000000 Device Accel Adaptive Deceleration (275): 1.000000 Device Accel Velocity Scaling (276): 10.000000 Device Product ID (262): 1356, 616 Device Node (263): "/dev/input/event17" Evdev Axis Inversion (277): 0, 0 Evdev Axis Calibration (278): <no items> Evdev Axes Swap (279): 0 Axis Labels (280): "Abs X" (391), "Abs Y" (392), "Abs Z" (604), "Abs Rotary X" (605), "Abs Rotary Y" (606), "Abs Rotary Z" (607) Evdev Scrolling Distance (282): 0, 0, 0
Device Enabledのフラグを1から0に変更します。
$ xinput set-prop 'Sony PLAYSTATION(R)3 Controller' 'Device Enabled' 0
以上でマウスとして認識されなくなっていれば成功です。
参考サイト
10.10 - Joystick acts as mouse; won't stop - Ask Ubuntu
Ubuntuでジョイスティックをつなぐとマウスポインターも動いてしまう: 電気羊の夢を見た
タッチパッドの有効無効を一発で@Ubuntu10.04 - 何にしても生っかじりの朴念仁