Cách gỡ lỗi đầu vào từ thiết bị đầu vào (/ dev / input / event *)


19

Tôi có một bộ thu IR đang sử dụng trình điều khiển imon và tôi muốn nó hoạt động với kernel. Ngay bây giờ một nửa các phím trên điều khiển từ xa ( hình ảnh ) hoạt động, nhưng một suy nghĩ quan trọng như các phím số thì không!

Suy nghĩ kỳ lạ là mô-đun sơ đồ bàn phím nhân (RC-imon-pad) có vẻ đúng nhưng có vẻ như nó không thực sự được sử dụng vì các khóa tương tự đang hoạt động mà không có mô-đun đó.

Có vẻ như mô-đun RC-imon-pad luôn được tải khi tôi tải imon, và sau đó tôi nghi ngờ rằng các mã khóa được lưu trữ để nó không tạo ra sự khác biệt nếu tôi dỡ bỏ RC-imon-pad

Bây giờ tôi bị mất, nếu tôi làm cat /dev/input/event5hoặc ir-keytable -tcó dữ liệu cho dù tôi nhấn phím nào, vì vậy trình điều khiển đăng ký các nút nhưng có vẻ như chúng được dịch sai mã phím.

Hạt nhân của tôi là một hạt nhân chứng khoán Ubuntu từ Natty (Linux xbmc 2.6.37-11-generic # 25-Ubuntu SMP Tue 21/12424242 UTC 2010 x86_64 GNU / Linux)


2
Có vẻ như vấn đề là hạt nhân gửi mã khóa lớn hơn 255 mà X không đăng ký vì nó bị giới hạn ở số nguyên 8 bit không dấu. Và bây giờ tôi đang biên dịch lại mô-đun hạt nhân với các mã khóa được sửa đổi để kiểm tra lý thuyết này ...
LassePoulsen

1
Btw, thay vì catbạn có thể sử dụng evtestđể cung cấp thông tin được phân tích cú pháp độc đáo.
9000

Câu trả lời:


3

Tôi có cùng một điều khiển từ xa và tôi có nó gửi mã khóa chính xác đến kernel 2.6,38-gentoo-r3 của tôi. Tôi đã không biên dịch mã khóa dưới dạng mô-đun, vì có lẽ họ chưa có thời gian để có thể chọn các keymap riêng lẻ. Đó là tất cả hoặc không có gì và tôi không thích một mô-đun vô dụng lúng túng làm tôi bừa bộn. Thay vào đó, tôi sẽ để v4l-utils xử lý nó với udev.

Vài điều tôi học được:

  • Kiểm tra đầu ra của ir-keytable -r, nó sẽ liệt kê tất cả các mã phím áp dụng cho điều khiển từ xa của bạn.
  • Tải keytable bằng tay: ir-keytable -c -w bleh / keymaps / imon_pad, sau đó ir-keytable -r sẽ trả lại cho bạn bảng
  • Bạn thực sự có thể có một người nhận bị lỗi, bạn không đề cập gì về lịch sử. Tôi nhớ đã nhìn thấy ít nhất một tin nhắn trong danh sách lirc nơi anh chàng nói gửi lại hồ sơ và nhận một tin nhắn mới giải quyết vấn đề của anh ta.

Cho chúng tôi biết làm thế nào nó đi.


Hãy chắc chắn kiểm tra câu trả lời này tất cả mọi người, xinput testrất hữu ích ở đây. unix.stackexchange.com/a/6231/27902
Elijah Lynn

17

Bạn có thể thấy hữu ích xinput listxinput test <device>.

Ví dụ,

danh sách $ xinput
Con trỏ lõi ảo id = 2 [con trỏ chính (3)]
⎜ Lõi ảo con trỏ XTEST id = 4 [con trỏ nô lệ (2)]
⎜ SynPS / 2 Synaptics TouchPad id = 11 [con trỏ nô lệ (2)]
Id Bàn phím lõi ảo id = 3 [bàn phím chính (2)]
    Lõi ảo Xt bàn phím id = 5 [bàn phím phụ (3)]
    Nút nguồn id = 6 [bàn phím phụ (3)]
    Id Video Bus id = 7 [bàn phím phụ (3)]
    Nút ngủ id = 8 [bàn phím phụ (3)]
    Các nút phụ của Laptop Asus id = 9 [bàn phím phụ (3)]
    AT được dịch Bộ 2 bàn phím id = 10 [bàn phím phụ (3)]

và tôi có thể theo dõi bàn phím ( xinput test 10) hoặc bàn di chuột ( xinput test 11hoặc thậm chí xinput test "SynPS/2 Synaptics TouchPad") của mình cho tất cả các loại sự kiện đầu vào và chúng được in đẹp lên bàn điều khiển và các tham số cũng được trích xuất và in.

Điều này sẽ không giải quyết vấn đề của bạn, nhưng ít nhất sẽ giúp một chút bằng cách giải mã sự lộn xộn, ví dụ như cat /dev/input/event1sản xuất.


1
Cảm ơn bạn rất nhiều! Tôi đã xây dựng một máy dò bàn phím dựa trên câu trả lời này.
l0b0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.