web-dev-qa-db-ja.com

Sixaxis(PS3 Controller)がBluetoothで正しく接続されていません

Ubuntu GNOME 16.10 64ビットを使用しています。

Steamを使用しているときに、奇妙な動作に気付きました。 SixaxisがUSBケーブルで接続されている場合、すべて正常に動作しますが、Bluetoothで接続すると、ゲームが認識しないか、入力が変です(SELECTがXになります)

これを修正するにはどうすればよいですか?

1

私はたまたま6軸コントローラも持っていますが、元々同じ問題がありました。

デバイスがUSBモードで接続されている場合、デバイスは期待どおりに動作し、ほとんどのゲームはそれを正しいデバイスとして認識します。 Bluetoothでは、異なる仕様で動作しますが、ほとんどのゲームはLinuxではあまりサポートしていません。

ここでの基本的な問題は、コントローラーがUSB上にある場合、コントローラーが製品やメーカーIDなどのすべてのコードを持つHIDデバイスとしてLinuxカーネルに登録されることです。これにより、ゲームでコントローラーを迅速かつ正確に識別し、その構成を読み込むことができます。

Bluetooth経由で接続すると、使用しているbluetoothドライバーのいずれかが、Xserverまたはユーザースペースデスクトップマネージャー経由でデバイスをHIDとして接続しようとします。これにより、ゲームやアプリケーションのデバイスに関する情報の多くが不明瞭になり、Linuxのサポートは一般的にWindowsに比べて埃っぽいため、ゲーム開発者やエンジンはそれほど互換性がないため、このレベルの互換性を追加する時間はかかりませんよく標準化されています。

修正/回避策:

簡単:
ゲームの「ジョイスティック」は、USBデバイスではなく仮想デバイスになったため、完全に異なるデバイスとして認識されます。ゲームがサポートしている場合、再マップされたコントロールを含むカスタム構成をゲームに追加できます。

中:
ジョイスティックコントロールは、おそらくjstest-gtkjscalibratorまたはjscalが機能する場合があります。また、他の非公式ツールを試してジョイスティックを再マッピングすることもできますが、Bluetoothで完全に機能するものはまだ見つかりません。

難しい:
xboxdrvを使用して、コントローラーをXboxに再マッピングできますが、おそらくこのソリューションは 最も簡単ではない です。
別の解決策は、より良いサポートがある他のBluetoothドライバーを調べることです(これはお勧めしませんが)。個人的に、プログラムbluemanは、Bluetoothドライバーを再インストールせずに非常に便利であることがわかりました。

私の経験がお役に立てば幸いです。

1
Robobenklein