Cảm ơn mọi người.
Tôi mất vài ngày để tìm ra giải pháp, cuối cùng, tôi đã tìm ra đúng cách.
Thẩm quyền giải quyết
Ánh xạ mã quét thành mã phím
Lý lịch
Phiên bản 11 của giao thức X chỉ hỗ trợ mã khóa một byte. Vì vậy, các mã chính trên 255 bị bỏ qua. Ubuntu 20.04 LTS, cho đến nay, vẫn sử dụng phiên bản 11 của giao thức X.
Bàn phím điều khiển từ xa G7BTS của tôi có nút OKâ. Nút này có mã khóa là 353. Trong âxevâ, không có gì xảy ra khi nhấn nút này.
Dung dịch
Tóm lại, giải pháp là tạo một tệp cấu hình hwdb, tệp này được sử dụng để sắp xếp lại các khóa nhất định sang các khóa khác.
udev
udev cung cấp một hàm dựng sẵn gọi là hwdb để duy trì chỉ mục cơ sở dữ liệu phần cứng trong /etc/udev/hwdb.bin. Cơ sở dữ liệu được biên dịch từ các tệp có phần mở rộng .hwdb nằm trong các thư mục /usr/lib/udev/hwdb.d/, /run/udev/hwdb.d/ và /etc/udev/hwdb.d/. Tệp ánh xạ mã quét sang mã khóa mặc định là /usr/lib/udev/hwdb.d/60-keyboard.hwdb.
Các thiết bị đầu vào chung (cũng là bàn phím USB) được xác định bởi phương thức nhân usb:
evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-
trong đó và là ID nhà cung cấp, sản phẩm và phiên bản viết hoa 4 chữ số
Cách tìm những id trên là chìa khóa
cài đặt hardinfo
sudo apt cài đặt hardinfo
phần mềm â Trình cấu hình hệ thống Thiết bị đầu vào â G7BTS Comsumer Control
Thông tin thiết bị
Tên G7BTS Kiểm soát người tiêu dùng
gõ bàn phím
Xe buýt 0x0005
Nhà cung cấp 0x045e
Sản phẩm 0x0041
Phiên bản 0x0300
Một thao tác nhập khác là lấy mã quét của nút âOKâ.
cài đặt evtest
sudo apt-get cài đặt evtest
sudo evtest
Không có thiết bị nào được chỉ định, đang cố quét tất cả /dev/input/event*
Các thiết bị có sẵn:
/dev/input/event0: Công tắc nắp
/dev/input/event1: Nút ngủ
/dev/input/event2: Nút nguồn
/dev/input/event3: AT Translated Set 2 keyboard
/dev/input/event4: Bàn di chuột SynPS/2 Synaptics
/dev/input/event5: TPPS/2 IBM Trackpoint
/dev/input/event6: Các nút bổ sung của ThinkPad
/dev/input/event7: Xe buýt video
/dev/input/event8: Camera tích hợp: C tích hợp
/dev/input/event9: Bàn phím G7BTS
/dev/input/event10: Chuột G7BTS
/dev/input/event11: Kiểm soát người tiêu dùng G7BTS
/dev/input/event12: Điều khiển hệ thống G7BTS
/dev/input/event13: Mic HDA Intel PCH
/dev/input/event14: Micrô HDA Intel PCH
/dev/input/event15: Tai nghe HDA Intel PCH
/dev/input/event16: Tai nghe HDA Intel PCH Dock
/dev/input/event17: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event11: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event19: HDA Intel PCH HDMI/DP,pcm=8
Chọn số sự kiện của thiết bị [0-19]: ^C
Chú ý đến â/dev/input/event11â
Sudo evtest /dev/input/event11
Sau đó nhấn nút OKâ và đầu ra bên dưới
Sự kiện: thời gian 1640238746.775220, loại 4 (EV_MSC), mã 4 (MSC_SCAN), giá trị c0041
Sự kiện: thời gian 1640238746.775220, loại 1 (EV_KEY), mã 353 (KEY_SELECT), giá trị 0
Sự kiện: thời gian 1640238746.775220, -------------- SYN_REPORT ------------
Hãy chú ý đến âgiá trị c0041â. Giá trị c0041 này là mã quét của nút âOKâ.
Tạo tệp hwdb
Bây giờ, chúng tôi có id và mã quét mà chúng tôi cần. Đặt chúng vào âThiết bị đầu vào chung (cũng là bàn phím USB) được xác định bởi modalias nhân usbâ ở trên và cuối cùng chúng ta có tệp cấu hình G7BTS.hwdb bên dưới:
evdev:đầu vào:b0005v045Ep0041e0300*
KEYBOARD_KEY_c0041=nhập
Trong ngữ cảnh, nút OKâ được ánh xạ vào phím enterâ. Bạn có thể ánh xạ nó vào bất kỳ khóa nào bạn muốn.
Đặt tập tin đến đích
sudo mv G7BTS.hwdb /etc/udev/hwdb.d/
Cập nhật
Sudo udevadm hwdb --update
trình kích hoạt sudo udevadm --verbose
Bài kiểm tra
sudo udevadm hwdb --test='evdev:input:b0005v045Ep0041e0300*'
kết quả là
KEYBOARD_KEY_c0041=nhập
Kết thúc
Đó là tất cả các bước để ánh xạ lại các phím. Những ánh xạ lại vẫn hoạt động sau khi khởi động lại.