Switch 2の3種類のコントローラーに対応
Linux 7.4のHIDサブシステムに、Nintendo Switch 2用コントローラーの新しいドライバーが追加されました。Valve Softwareの協力を受けて開発され、Joy-Con 2、Pro Controller 2、GameCube NSOコントローラーの基本的な入力を扱います。
開発を主導したのはVicki Pfau氏です。パッチは16回の改訂を経てLinux 7.4に取り込まれました。
HIDは、キーボードやゲームコントローラーなどの入力機器を扱う仕組みです。今回の変更では、Switch 2のコントローラー向けに専用ドライバーを設け、USBとBluetoothの両方で使われる機器の構成に対応します。
入力と設定通信を別々に扱う設計
Switch 2のコントローラーは、入力と振動を扱うHIDインターフェースに加え、その他の通信を担う「configuration」インターフェースを持ちます。この分割構成はUSB接続とBluetooth接続のどちらにも当てはまります。
新しいドライバーは、HID側を主ドライバー、設定用インターフェース側を補助ドライバーとして扱い、共通のデータ構造を介してリソースを共有します。すべての通信を単一のインターフェースで処理する構成ではありません。
初期パッチで実装されるのは、汎用HIDドライバーとUSBの設定用インターフェースドライバーです。独自のペアリング方式への対応、Bluetooth通信に必要なカーネルとユーザー空間の間の専用インターフェース設計、BlueZ側の立ち上げは、初期作業の範囲に含まれません。
Bluetooth利用ではBlueZ側の対応も必要
BlueZはLinuxのBluetooth機能を扱うソフトウェアで、D-Busを介した入力機器向けAPIも提供しています。そのAPIには、Bluetooth HID機器との接続が失われた際に、ホスト側と機器側のどちらが再接続を行うかを示す読み取り専用の「ReconnectMode」があります。
この設定値には「none」「host」「device」「any」の4種類があります。「host」はホスト側が再接続し、「device」は機器側が再接続します。「any」では機器側が再接続を試み、ホスト側も再接続できます。
Switch 2向けの初期ドライバーは、Bluetoothでの独自ペアリングや通信に必要なユーザー空間との連携をまだ扱いません。そのため、Bluetoothで利用するにはカーネル側のドライバーに加え、BlueZを含む関連部分も対応する必要があります。
Linux 7.4のHIDには別の更新も
同じHIDサブシステムの更新では、Pulsar製ゲーミングマウス向けの「hid-pulsar」ドライバーも追加されます。X2 V2、X2H、X2A、Xlite V3などの無線マウスでテストされ、バッテリー残量、電圧、充電状態などを取得できます。
Pulsar機器では有線接続のほか、1KHzおよび4KHzの無線ドングル接続に対応します。同じプロトコルを使うKysona M600 ATK、VXE R1 SE+、VXE Dragonfly R1 Proもサポート対象です。
このほか、AMD Sensor Fusion HubドライバーへのZen 6 Ryzen SoC対応、Linux上のApple Touch BarとASUS ROG Allyに関する電源管理の修正も含まれます。











