작은 ARMv7 컴퓨터 보드에서 키보드와 마우스 없이 원격 컴퓨터 보드로 키보드 및 마우스 이벤트를 보내고 싶습니다. 로컬로 구현된 CAN 버스에서 이러한 이벤트를 보낼 계획입니다. 컨트롤 패드에는 터치스크린이 있어 터치패드로 감지됩니다. 하드웨어 키보드를 지원할 계획이 있지만 일반적으로 가상 키보드만 지원합니다.
문맥:두 개의 보드는 멀티미디어 설치 시 마스터/슬레이브 장치로 결합되어야 합니다. 멀티미디어 플랫폼이 실행되는 플랫폼(일반적으로 이에 국한되지 않음)코디)는 슬레이브이며 키보드나 마우스가 없습니다. CAN 버스에서 입력 이벤트를 수신해야 합니다. 메인 제어 보드는 슬레이브 멀티미디어 보드가 켜질 때 키보드와 터치패드 역할을 하는 작은 디스플레이에도 연결됩니다. 교차 개발 도구 체인은 다음과 같습니다.젠투 리눅스.
그래서 로컬 키보드와 마우스(터치패드) 이벤트를 원격 호스트로 보내는 가장 직접적인 방법이 궁금합니다.핵심개발자.
예를 들어, 원격 측에서 Used를 사용하여 netcat
로컬 키보드/마우스 이벤트(에서)를 원격 시스템으로 보내는 것을 알아낼 수 있습니다 . /dev/input/*
(즉, 나는 성공하지 못하고 시도했습니다.)
예를 들어, 나는 커널 입력 모듈 개발에 반대하지 않지만 가능하다면 사용자 공간 애플리케이션을 통합하거나 필요하다면 개발하는 편이 낫습니다. 나는 또한 Xorg나 Wayland와 같은 그래픽 엔진이 원격 보드에서 실행되고 있다고 가정하는 것보다 "원시" 하드웨어 이벤트를 보내는 것을 선호합니다. 물론 낙담하지 않는 한.
그래서 결국 내가 해야할지 궁금하네요
- 해킹
lirc
및 CAN 지원 추가(예: 또는) - Linux 입력 드라이버 크래킹.
더 쉬운 방법이 있다면 그렇게 할 것입니다.
답변1
어제 막 만들었어요입력 차단 도구 프레임워크(gitlab.com/interception).
설치는 간단합니다:
- 거기에 언급된 몇 가지 필수 패키지를 설치하십시오(+
pkgconf
). - 복제 저장소
cmake
Readme 파일에 제공된 옵션을 사용하여 실행하십시오.
빠른 개념 증명:
원본 컴퓨터(키보드가 있는 컴퓨터)에서:
src/interception-tools/build/intercept -g /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse | nc des.ti.nat.ion 9876
대상 머신(이벤트를 "라우팅"하려는 머신)에서:
nc -l -p 9876 | src/interception-tools/build/uinput
대상 컴퓨터에 다른 입력 소스가 없으면 키보드 관련 항목을 내보내야 할 수도 있습니다 yaml
.
uinput -p -d /dev/input/by-id/my-kbd는 YAML의 my-kbd 기능을 인쇄합니다. 이 기능 자체는 uinput -c my-kbd.yaml로 uinput에 피드백될 수 있습니다.
이것은 Debian Bullseye 사이에 있습니다.[이메일 보호됨]그리고[이메일 보호됨].
이것이 효과가 있다면 이를 시스템 시작 파일에 통합해야 하며 그러면 자동으로 원활하게 수행됩니다.