Điểm:1

Ánh xạ lại bàn phím đa phương tiện

lá cờ cn

Tôi có một bộ điều khiển từ xa G7BTS, có cả bàn phím và các nút đa phương tiện. Hầu hết các nút của nó hoạt động tốt ngoại trừ nút "OK".

Nút OK có mã khóa 353, có nghĩa là KEY_SELECT. Nhưng Ubuntu 20.04 của tôi không nhận ra nó.

Dưới đây là một số nghiên cứu tôi đã thực hiện:

  1. sudo evtest

đầu ra:

/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
  1. grep "" /sys/class/input/event11/device/id/*

đầu ra:

/sys/class/input/event11/device/id/bustype:0005
/sys/class/input/event11/device/id/product:0041
/sys/class/input/event11/device/id/vendor:045e
/sys/class/input/event11/device/id/version:0300
  1. Sudo evtest /dev/input/event11

đầu ra:

Đang kiểm tra... (ngắt để thoát)
Sự kiện: thời gian 1640250050.701930, loại 4 (EV_MSC), mã 4 (MSC_SCAN), giá trị c0041
Sự kiện: thời gian 1640250050.701930, loại 1 (EV_KEY), mã 353 (KEY_SELECT), giá trị 1
Sự kiện: thời gian 1640250050.701930, -------------- SYN_REPORT ------------
  1. /etc/udev/hwdb.d/60-keyboard.hwdb

Tôi đã cố ánh xạ lại nút OK thành 'nhập'.

Nội dung tệp 60-keyboard.hwdb:

#G7BTS
evdev:đầu vào:b0005v045Ep0041*
 KEYBOARD_KEY_c0041=nhập
  1. sudo udevadm hwdb --test='evdev:input:b0005v045ep0041*'

đầu ra:

KEYBOARD_KEY_c0041=nhập

Cho đến nay, tôi vẫn không thể thấy bất kỳ đầu ra nào trong xev khi nhấn nút OK.

Mọi đề xuất và trợ giúp sẽ được đánh giá cao.

Điểm:0
lá cờ cn

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.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.