장치별 커널 드라이버가 로드되지 않은 경우 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와 통신할 수 있지만 기본 통신 방법은 다음과 같습니다 .블루투스 L2CAP, 처럼WiiBrew 페이지설명하다.

관련 정보