Linux 입력 하위 시스템은 키보드, 마우스, 터치 스크린, 태블릿, 게임 컨트롤러 등 Linux 시스템의 모든 입력 장치를 지원하는 드라이버 세트입니다. 입력 하위 시스템의 핵심은 두 가지 유형의 모듈 간에 이벤트를 전달하는 입력 모듈입니다.
이 기사에서는 Linux 입력 하위 시스템의 기본 개념과 구조는 물론 일반적으로 사용되는 몇 가지 명령과 도구를 소개합니다. 예제 시스템으로 Ubuntu 20.04를 사용하지만 내용은 다른 Linux 배포판에도 적용됩니다.
드라이버 레이어
기본 하드웨어 입력을 통합 이벤트 형식으로 변환하고 이를 입력 코어에 보고합니다.
입력 하위 시스템 코어 레이어
드라이버 계층에 다음과 같은 입력 장치 등록 및 작업 인터페이스를 제공합니다. input_register_device는 /Proc에서 해당 장치 정보를 생성하도록 이벤트 처리 계층에 알립니다.
이벤트 처리 레이어
주로 사용자 공간과 상호 작용합니다(Linux에서는 모든 장치가 사용자 공간에서 파일로 처리됩니다. 일반 드라이버에서는 fops 인터페이스가 제공되고 해당 장치 파일 노드는 /dev 아래에 생성되므로 이러한 작업은 이벤트 처리에 의해 완료됩니다. 입력 하위 시스템의 계층).
장치 설명
input_dev 구조는 장치 드라이버의 핵심 작업을 구현하는 것입니다. 즉, 키 누름, 터치 스크린 및 기타 입력 이벤트(input_event 구조를 통해 설명되는 이벤트)를 시스템에 보고하고 더 이상 파일 작업 인터페이스에 신경 쓸 필요가 없습니다. 드라이버는 inputCore 및 Eventhandler를 통해 사용자 공간에 이벤트를 보고합니다.
입력 장치 기능 등록:
으아아아입력 장치 기능 등록 취소:
으아아아드라이버 구현 - 초기화(이벤트 지원) set_bit()는 입력 하위 시스템에 지원되는 이벤트와 키를 알려줍니다. 예:
으아아아struct input_dev****에는 두 명의 멤버가 있습니다:
**1)** evbit 이벤트 유형(EV_RST, EV_REL, EV_MSC, EV_KEY, EV_ABS, EV_REP 등 포함).
**2)**키비트 키 유형(이벤트 유형이 EV_KEY인 경우 BTN_LEFT, BTN_0, BTN_1, BTN_MIDDLE 등 포함)
드라이버 구현 - 이벤트 보고 EV_KEY, EV_REL, EV_ABS 이벤트를 보고하는 데 사용되는 함수는 다음과 같습니다.
으아아아드라이버 구현 - 보고서 종료 input_sync() 동기화는 보고서가 종료되었음을 입력 코어 하위 시스템에 알리는 데 사용됩니다. 터치 스크린 장치 드라이버에서 한 번의 클릭으로 전체 보고 프로세스는 다음과 같습니다. 으아아아
예제 분석(키 인터럽트 프로그램): 으아아아
요약: input 하위 시스템은 여전히 문자 장치 드라이버이지만 코드 양이 훨씬 줄어듭니다. ****input 하위 시스템은 초기화와 이벤트 보고라는 두 가지 작업만 완료하면 됩니다(여기서는 linux*에서). *** 인터럽트를 통해 달성됩니다.)
인스턴스 으아아아
이 기사에서는 Linux 입력 하위 시스템의 기본 개념과 구조는 물론 일반적으로 사용되는 몇 가지 명령과 도구도 배웠습니다. 입력 장치의 속성과 상태를 보고 제어하는 방법과 evtest 및 libinput 도구를 사용하여 입력 장치를 테스트하고 디버깅하는 방법을 배웠습니다. 또한 udev 규칙을 사용하여 입력 장치의 동작과 구성을 사용자 정의하는 방법도 배웠습니다.Linux 입력 하위 시스템은 입력 장치를 더 잘 관리하고 사용할 수 있게 해주는 강력하고 유연한 프레임워크입니다. Linux 입력 하위 시스템을 사용하면 생산성과 사용자 경험을 향상시킬 수 있습니다. Linux 시스템을 사용할 때 Linux 입력 하위 시스템을 자주 사용하여 입력 장치를 최적화하는 것이 좋습니다.
위 내용은 Linux 입력 하위 시스템 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!