Phiên bản ngắn của những gì tôi muốn thực hiện: Tôi có một bàn đạp chân (INFINITY-IN-USB-1, nếu đó là bất kỳ lợi ích) được thực hiện như một thiết bị HID chung, và tôi muốn nó được cư xử như kiểm soát và các phím alt trên Linux. Tôi đang tìm kiếm thứ gì đó ở cấp độ X, tức là không chỉ các chương trình riêng lẻ.Làm thế nào để nắm bắt đầu vào HID thô trên Linux?
Phiên bản dài hơn: Tôi có thiết lập này hoạt động trong Windows XP bằng cách gọi dll RegisterRawInputDevices và GetRawInputData và nghe đầu vào trong cửa sổ ẩn. Tất cả được thực hiện với một kịch bản khá đơn giản Autohotkey (có thể đăng ở đây nếu có ai quan tâm). Vấn đề là, không cần thêm bất kỳ trình điều khiển nào, v.v. chỉ cần Windows dll gốc.
Tôi muốn thiết lập này hoạt động trên Linux (cụ thể hơn Gnome trong Ubuntu, nhưng thỉnh thoảng tôi sử dụng trình quản lý cửa sổ/distro khác, vì vậy giải pháp về mức X được đánh giá cao). Bàn đạp chân này không tự đăng ký như bàn phím hoặc phím điều khiển, nhưng là thiết bị HID với UsagePage 12, Cách sử dụng 3. Tôi nhận thấy rằng Ubuntu mới nhất có thể phát hiện và sử dụng các phím yêu thích trên Bàn phím Tự nhiên của Microsoft. *. Tôi sử dụng các khóa đó trên Windows bằng cách sử dụng cùng phương pháp như tôi sử dụng bàn đạp chân (nghĩa là không có phần mềm đi kèm). Vì vậy, tôi cho rằng điều này bàn đạp có thể làm việc trên Linux là tốt, nhưng câu hỏi là làm thế nào?
[Tôi mới đến những thứ cấp thấp hơn trên Linux, vì vậy hãy hào phóng với các liên kết để giới thiệu hoặc hướng dẫn bất cứ khi nào áp dụng.]
* Đối với những người không nằm trong bí quyết, các thanh ghi Bàn phím Microsoft Natural như cả bàn phím thông thường và thiết bị HID chung. Nếu không có một số ứng dụng (chẳng hạn như ứng dụng đi kèm) biết cách diễn giải đầu vào HID, các phím thông thường sẽ hoạt động nhưng các phím yêu thích và các phím chức năng đặc biệt là vô ích.
Để làm rõ, Linux KHÔNG thấy bàn đạp ép làm đầu vào. Nó nhận ra thiết bị USB, nhưng xev không cho đầu ra cho bàn đạp. Tôi đã thấy báo cáo của người dùng succesefully bằng cách sử dụng bàn đạp dưới WINE cho phần mềm sao chép, nhưng điều đó phải làm việc theo cách Windows và không cung cấp những gì tôi muốn (mà làm cho bàn đạp trông giống như một bàn phím cho tất cả các ứng dụng Linux bản địa). Tôi tự hỏi liệu một số trình điều khiển bàn phím Linux cấp thấp có cần thiết không?
Dưới đây là một số thông tin hơn: Nếu tôi phát hành này tại nhà ga
cat /dev/usb/hiddev0
(dev/usb/hiddev0
là bàn đạp của tôi), tôi nhận được mã số liệu tương ứng với máy ép đạp của tôi. Đó là một sự khởi đầu. Tôi biết những gì các mã thô có nghĩa là: trong nhị phân, 0001, 0010, 0100 tương ứng với mỗi bàn đạp, tương ứng, và sự kết hợp của bàn đạp ép gửi kết hợp của những số nhị phân, và phát hành đầu vào kích hoạt bàn đạp của bất cứ bàn đạp vẫn đang được nhấn (nếu tất cả đạp lên, 0000 được gửi).
Làm cách nào để X nhận được dev/usb/hiddev0
và dịch mã thô thành mã khóa đặc biệt để tôi có thể ánh xạ chúng bằng xmodmap hoặc gì đó?
Bạn có thể xây dựng thêm một chút không? Làm thế nào để nghe/dev/usb/hiddev0 lập trình (bài viết bạn chỉ liên kết nói về uinput)? Chương trình kết quả (mà lắng nghe trên hiddev và gửi các sự kiện bàn phím/chuột thông qua uinput) sẽ phải chạy như một daemon, tôi giả sử? – polyglot
Vâng, tôi cho rằng câu hỏi của bạn là bạn đã biết cách đọc hiddev0. Bạn có thể sẽ viết một daemon. Bắt đầu bằng cách viết một chương trình liên tục đọc hiddev0 và in ra các lần nhấn. Sau đó, bạn có thể sửa đổi nó để phát ra các sự kiện mới thông qua uinput. Điều này về cơ bản sẽ tái tiêm những sự kiện này trở lại vào hạt nhân, nhưng như sự kiện bàn phím hoặc chuột (bạn chọn). Không cần thay đổi đối với X. –
Điều đó dường như là một bài viết rất phổ biến trên uinput. Được liên kết từ khắp nơi trên web. Than ôi, nó không còn nữa và Google chỉ tìm thấy một bản PDF được chuyển đổi thành văn bản. Có ai có bản PDF gốc ở một nơi mà nó có thể được chia sẻ không? –