레거시 다이얼 전화기를 리눅스 입력장치로 만드는 커널 드라이버
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴, DevOps
대상자
리눅스 커널 모듈 개발자, 임베디드 시스템 개발자, 교육 목적의 기술자, 교육자 및 테스트 개발자
핵심 요약
- Rotary Phone Dial Linux Kernel Driver 는 리눅스의 evdev 입력 장치 로 변환하여 사용할 수 있는 커널 모듈 임
- GPIO 핀 과 펄스 부호화 방식 을 기반으로 다이얼 입력을 처리하며, 다양한 국가별 설정을 지원함
- 가상머신 환경 을 통해 실제 하드웨어 없이도 테스트 및 개발 이 가능함
섹션별 세부 요약
1. 드라이버 개요 및 목적
- 회전 다이얼 전화기를 리눅스 시스템의 입력장치로 변환하는 커널 모듈임
- 교육 및 테스트 목적에 유용하며, GPIO 시뮬레이션을 지원함
- 표준 커널 모듈이기 때문에 리눅스 시스템에 쉽게 확장 및 통합 가능함
2. 하드웨어 연결 및 구현
- 회전 다이얼은 BUSY 와 PULSE 두 개의 스위치로 구성됨
- 이 두 스위치는 GPIO 핀 에 풀업 저항과 함께 연결됨
- 다이얼 회전 시 PULSE 스위치가 반복적으로 열림/닫힘을 반복하며, 국가별 펄스 부호화 방식 이 다름
- 예: 독일은 펄스당 열림 62ms, 닫힘 38ms
3. 드라이버 설치 및 사용 방법
- 장치 트리에
rotary-dial
노드 추가 및pulse-gpios
및busy-gpios
를 실제 핀에 맵핑 KDIR
환경 변수 설정 후 빌드 및 설치, 모듈 적재evemu
도구로 입력 장치 속성 및 다이얼 이벤트 모니터링 가능- 가상머신 환경 제공으로 실제 하드웨어 없이도 테스트 가능
4. 테스트 및 개발 환경
- gpio-sim 으로 시뮬레이션된 GPIO를 devicetree에 패치하여 제공
rotary_dialer
도구로 펄스 수를 시뮬레이션해 테스트 가능- 포괄적 테스트 수트 제공,
make test
로 자동화된 케이스 실행 가능
결론
- 리눅스 커널 드라이버를 통해 회전 다이얼 전화기를 입력장치로 변환 가능하며, 가상머신 환경을 통해 테스트 및 개발이 용이함
- 국가별 펄스 부호화 방식 및 핀 배치 설정을 고려한 구현이 필수적임
evemu
도구와rotary_dialer
도구를 활용해 드라이버의 동작을 테스트하고, 포괄적 테스트 수트 를 통해 안정성을 검증해야 함