Hóa ra kernel đã nhặt nó lên, nhưng vẫn phàn nàn rằng nó không được công nhận.
Đối với bất kỳ ai khác có vấn đề này hoặc muốn lập bản đồ khóa mà HĐH không đọc được, hãy đọc tiếp.
Mở một thiết bị đầu cuối và chạy dmesg | grep -A 1 -i setkeycodes
. Điều này sẽ cung cấp cho bạn nhiều mục như thế này:
[ 9.307463] atkbd serio0: Unknown key pressed (translated set 2, code 0xbe on isa0060/serio0).
[ 9.307476] atkbd serio0: Use 'setkeycodes e03e <keycode>' to make it known.
Điều chúng tôi quan tâm là giá trị thập lục phân sau "setkeycodes", trong trường hợp này là e03e
. Nếu bạn có nhiều trong số này, bạn có thể chạy tail -f /var/log/kern.log
. Khi bạn đã thực hiện xong, bạn có thể nhấn vào nút bạn đang tìm kiếm và điều này sẽ cung cấp cho bạn một dòng giống như trên và một lần nữa, chúng tôi chỉ cần giá trị thập lục phân. Hãy ghi chú điều này.
Bây giờ chạy xmodmap -pke | less
và tìm ánh xạ thích hợp. Trong trường hợp của tôi, tôi cần ánh xạ cái này để chuyển bàn phím cảm ứng của mình, điều đó có nghĩa là tôi quan tâm đến dòng sau:
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
Nếu bạn không thể tìm thấy bất cứ điều gì bạn quan tâm, hãy đọc câu trả lời @Gilles, vì bạn cũng có thể xác định ánh xạ tùy chỉnh, sau đó đọc tiếp (nếu hạt nhân đọc nó, bạn sẽ không cần thêm nó vào xorg.conf. d)
Bây giờ tôi chạy lệnh sau : sudo setkeycodes [hexadecimal] [keycode]
, vì vậy trong trường hợp của tôi đã trở thành : setkeycodes e03e 199
.
Bây giờ bạn có thể sử dụng dòng sau để kiểm tra xem nó có hoạt động không và / hoặc bạn có ánh xạ chính xác:
xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
Khi bạn chạy lệnh này, bạn cần tập trung vào cửa sổ mới mở ( xev
) và kiểm tra đầu ra của bàn điều khiển. Trong trường hợp của tôi, nó đọc như sau:
207 NoSymbol
Điều này rõ ràng là sai, vì tôi đã yêu cầu mã khóa 199
, vì vậy nó được ánh xạ tới XF86TouchpadToggle
. Tôi đã kiểm tra xmodmap -pke
lại và nhận thấy rằng keycode 207
nó thực sự được ánh xạ tới NoSymbol
và tôi nhận thấy rằng có chênh lệch bù là 8, vì vậy tôi đã thử lại setkeycodes
lệnh, nhưng khóa được ánh xạ tới keycode 191
.
sudo setkeycodes e03e 191
Điều này làm việc hoàn hảo.
EDIT - giải pháp tôi cung cấp để làm việc khi khởi động thì không. Tôi sẽ tìm ra điều này vào ngày mai và cập nhật câu trả lời này. Bây giờ tôi cho rằng bạn có thể chạy nó khi khởi động bằng tay.