デバイス固有のカーネルドライバがロードされていない場合、Hidrawはデバイスを見つけることができません。

デバイス固有のカーネルドライバがロードされていない場合、Hidrawはデバイスを見つけることができません。

Bluetooth HIDを含むデバイスを作成しようとしています(具体的にはWiiリモコン

hid-wiimoteカーネルモジュールをロードした後、次のものを使用できます。ヒダフィバックエンドを持つライブラリはlinux-static-hidrawデバイスと直接通信しますが、カーネルドライバは定期的にポーリングし、動作モードを頻繁に変更します。コントローラのモジュールをブラックリストに登録すると、/etc/modprobe.dコントローラのLEDが点滅し続け、ライブラリから次のエラーが返されます。

要求されたVID / PIDを持つHIDデバイスがシステムに見つかりません。

権限が正しく設定されていることを確認してくださいudev。以下はカスタムルールファイルです。

KERNEL=="hidraw*", KERNELS=="0005:057E:*.*", MODE="0666"

参考までに、以下は最小限のRust例です。

/**
 * [dependencies]
 * hidapi = { version = "2.4.0", default-features = false, features = ["linux-static-hidraw"] }
 */

use hidapi::HidApi;

fn main() {
    let hid = HidApi::new().unwrap();
    let wiimote = hid.open(0x057e, 0x0306).unwrap(); // error if `hid-wiimote` isn't loaded
}

答え1

わかりましたが、間違ったAPIを使用しようとしました。hid_wiimoteカーネルモジュールをロードした後、Hidrawを介してWii Remoteと通信できますが、基本的な通信方法は次のとおりです。Bluetooth L2CAP、ようにWiiBrewページ説明する。

関連情報