나는 imon 드라이버를 사용하는 적외선 수신기를 가지고 있고 그것이 커널과 함께 작동하도록 만들고 싶습니다. 이제 리모콘 버튼 중 절반(영상)는 작동하지만 숫자 키와 같은 매우 중요한 아이디어는 작동하지 않습니다!
이상한 생각은 커널 키 매핑 모듈(rc-imon-pad)이 올바른 것 같지만 실제로는 사용되지 않는 것 같습니다. 해당 모듈 없이도 똑같은 키가 작동하기 때문입니다.
imon을 로드하면 rc-imon-pad 모듈이 항상 로드되는 것 같고 키코드가 캐시된 것으로 의심되므로 rc-imon-pad를 제거해도 아무런 차이가 없습니다.
이제 이 작업을 수행하면 길을 잃 cat /dev/input/event5
거나 ir-keytable -t
어떤 키를 눌러도 데이터가 있으므로 드라이버가 버튼을 등록하지만 잘못된 키코드로 변환되는 것 같습니다.
내 커널은 Natty의 우분투 스톡 커널입니다(Linux xbmc 2.6.37-11-generic #25-Ubuntu SMP Tue Dec 21 23:42:56 UTC 2010 x86_64 GNU/Linux)
답변1
유용 xinput list
하고 xinput test <device>
.
예를 들어,
$x 입력 목록 ⎡ 가상 코어 포인터 id=2 [메인 포인터(3)] ⎜ ↳ 가상 코어 XTEST 포인터 ID=4 [포인터 (2)에서] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [포인터(2)에서] ⎣ 가상 코어 키보드 id=3 [기본 키보드(2)] ↳ 가상 코어 XTEST 키보드 ID=5 [키보드 (3)에서] ↳ 전원 버튼 ID=6 [키보드 (3)에서] ↳ 비디오 버스 ID=7 [키보드(3)에서] ↳ 절전 버튼 ID=8 [키보드(3)에서] ↳ ASUS 노트북 추가 버튼 ID=9 [키보드 (3)에서] ↳ AT Translated Set 2 키보드 ID=10 [키보드 (3)에서]
내 키보드( xinput test 10
)나 터치패드( )를 모니터링할 수 있습니다 xinput test 11
.xinput test "SynPS/2 Synaptics TouchPad"
) 다양한 입력 이벤트의 경우 콘솔에 보기 좋게 인쇄되고 인수가 추출되어 인쇄됩니다.
이렇게 해도 문제가 해결되지는 않지만 최소한 다음과 같이 cat /dev/input/event1
발생한 혼란을 해독하는 데 도움이 될 것입니다.
편집하다(댓글의 @alphanum에서):
10년 전 제 답변이 정확하지 않았습니다...죄송합니다. 이 빠른 다이어그램을 즐겨보세요.
┌─────────────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ │ HID events │ │ xinput events │ │ │ │
│ HID/input device ├───────────►│ Device-specific ├──────────────►│ the kernel ├───►│ Userspace (apps) │
│ (e.g. USB keyboard) │ ▲ │ driver │ ▲ │ │ │ │
└─────────────────────┘ │ └─────────────────┘ │ └──────────────┘ └──────────────────┘
│ │
evtest /dev/input/XX xinput test <xinput id>
2가지 포인트 표시:
- 당신이 얻는 결과
xinput test
는 "xinput-unified"입니다. 즉, 장치 드라이버에 의해 처리됩니다. 이는 사용자 공간 애플리케이션이 보는 것과 더 유사합니다. - 당신이 얻는 결과
evtest /dev/input/XX
는 더 "원시적"이며 xinput 형식으로 변환되지 않았습니다. 이는 HID 장치가 보는 것과 더 유사합니다.
실제 HID 장치를 구축하는지 아니면 애플리케이션을 구축하는지에 따라 디버깅에 사용할 것인지 evtest
선택할 수 있습니다. xinput test
두 가지를 비교하면 장치 드라이버 문제를 해결하는 데 도움이 될 수도 있습니다.
답변2
나는 동일한 리모컨을 가지고 있으며 올바른 키코드를 2.6.38-gentoo-r3 커널로 보냅니다. 아직 개별 키맵을 선택할 시간이 없었을 것이기 때문에 키코드를 모듈로 컴파일하지 않았습니다. 전부 아니면 전무입니다. 저는 셀 수 없이 많은 쓸모없는 모듈이 저를 어수선하게 만드는 것을 좋아하지 않습니다. 대신 v4l-utils가 udev를 사용하여 처리하도록 했습니다.
나는 몇 가지를 배웠습니다:
- ir-keytable -r의 출력을 확인하면 목록이 표시됩니다.적용 가능한 모든 키코드당신의 리모콘에.
- 키 테이블을 수동으로 로드합니다: ir-keytable -c -w bleh/keymaps/imon_pad, 그러면 ir-keytable -r이 테이블을 반환해야 합니다.
- 실제로 수신기에 결함이 있을 수 있지만 기록을 언급하지 않았습니다. 적어도 하나의 메시지를 본 기억이 나네요lirc 목록그 사람은 상자를 반품하고 새 상자를 구입하면 문제가 해결되었다고 말했습니다.
어떻게 진행되는지 알려주세요.