도와주세요!!
글 수 15,339
2017.02.17 10:02:18 (*.140.10.254)
16933
이게 봐도봐도 이해가 안가더라구요
이해한 부분
어플리케이션 영역
/dev/input/* 를 읽어 하드웨어 이벤트를 가져간다
/dev/input/* 장치
input core를 통해 input event driver로부터 데이터를 획득
input event driver
input core(drivers/input/input.c) 에서 제공하는
input_allocate_device와 input_register_device 등을 통해 만든 드라이버
/dev/input/*에 데이터를 주는 역할을 한다
궁금한 부분
그렇다면 input event driver 에게는 누가 하드웨어 이벤트를 전달하는가?
즉 윗 그림의 input device driver는 어떻게 만드는가??
정리
hw -> input core[input device driver -> input event driver] -> /dev/input/* -> application
맞나요?
linux input system이 생각보다 복잡하고 크고 어렵네요
이런저런 조언 많이 부탁드려요
복잡해 보입니다만... 개념적으로 보면 아래와 같이 분류 되겠네요
다양한 형태의 입력은 input device driver 로 모이고
input device driver 는 input core 를 거치면서 분류되어 사용자에게 제공되기 적절한 형태의 input event driver 를 거쳐
장치 드라이버를 통해 응용에서 사용
하드웨어 이벤트 -> 통합 -> 분류 -> 응용 제공의 순서를 따른다고 보면 되겠죠
즉, 다양한 입력 장치의 모습을 표준화된 형태로 응용에서 사용할수 있도록 하기 위해서
위와 같은 구조를 만든 것으로 생각하시면 좀 이해가 쉬울 것 같습니다