장치에서 특정 이벤트를 트리거합니다.

장치에서 특정 이벤트를 트리거합니다.

장치를 연결하거나 제거할 때마다 장치를 구성할 필요 없이 장치가 시스템에 동적으로 연결되거나 분리될 때 장치에 대한 특수 트리거 이벤트를 설정할 수 있는지 궁금합니다. 시계 트리거

/dev/input/event

따라서 장치가 연결되거나 연결되지 않은 시기를 알고 사용 중 해당 장치에 대한 데몬을 시작하거나 종료합니다.

이것이 제가 트리거 이벤트를 사용하는 이유입니다.

나는 게임에 사용하기 좋아하는 게임패드 컨트롤러를 가지고 있는데, 그것을 사용하고 싶을 때마다 컨트롤러의 특정 구성에 맞게 작동하도록 플러그를 꽂을 때마다 항상 구성을 수정해야 합니다. 그러나 어떤 경우에는 컨트롤러의 무작위 연결 해제 및 재연결 이벤트가 재설정되고 내가 설정한 구성이 무시됩니다. 즉, 다시 구성해야 함을 의미합니다. 따라서 내 목표는 스크립트에서 구성 파일을 호출하고 장치가 연결되어 있음을 감지하면 구성을 다시 실행하여 구성 파일을 미리 설정하는 것입니다. 안에 뭔가 있어요?

/etc/udev/rules.d

이를 위한 규칙을 만들 수 있나요? 내 게임패드의 구성 파일은 다음 위치에 저장되어 있습니다.

~/.config/ds4drv.conf

당신은 또한 전화할 수 있습니다

/etc/ds4drv.conf

게임패드가 연결되거나 연결되지 않은 것이 감지될 때마다 해당 프로필을 확인하고 적용할 수 있기를 원합니다. PID 파일을 잠글 수 있는 데몬을 실행하는 옵션으로 구성됩니다.

/tmp/ds4drv.pid

실행될 때. 현재 데몬이 실행 중인지 미리 확인하고, 그렇지 않은 경우 데몬을 시작하고 게임패드 장치가 감지되면 구성 파일에 구성을 적용합니다. Steam 게임을 플레이할 때 때때로 혼란을 야기하여 컨트롤러를 활성화하기 위해 확인란을 다시 선택해야 합니다. 이는 컨트롤러가 다시 연결하기 전에 일시적으로 연결이 끊어지고 내용을 읽지 못하는 경우 중단한 부분부터 다시 시작하고 싶을 때 번거로울 수 있습니다. 구성 파일.

답변1

udev는 당신의 친구입니다. called 99-gamepad.rules다음에 파일을 추가할 수 있습니다 ./etc/udev/rules.d/

파일에는 다음과 유사한 줄이 포함되어야 합니다.

DRIVER=="usb",ATTRS{idProduct}=="c52b",RUN+="/path/to/your_script.sh"

ATTRS다음을 사용하여 찾을 수 있습니다 udevadm.

udevadm info -a -p /sys/bus/usb/devices/3-1.5

sys에서 USB 장치에 대한 경로로 바꾸 /sys/bus/usb/devices/3-1.5거나 를 사용할 수 있습니다 /dev/. 저는 일반적으로 내 장치와 일치하는 경로를 찾을 때까지 몇 가지 경로를 시도합니다.

장치 경로를 알고 있는 경우 /dev다음 줄을 사용할 수 있습니다.

udevadm info -a -p $(udevadm info -q path -n /dev/input/js0)

이것은 규칙 작성 방법을 설명하는 udev 매뉴얼 페이지입니다.

당신은 또한 볼 수 있습니다ArchWiki udev 페이지.

관련 정보