Saya memiliki keyboard model M kunci IBM 122 vintage yang saya beradaptasi untuk digunakan pada komputer modern. Saya menggunakan Teensy 2.0 untuk melakukan pengodean dan untuk menangani sisi USB. Saya meminjam firmware dari proyek keyboard Humble Hacker ( https://github.com/humblehacker/keyboard ) dan saya menambahkan kunci tambahan di build config. Sejauh ini baik.
Semua kunci "biasa" bekerja, tetapi kernel tampaknya menjatuhkan kunci tambahan ( F13-F24 , dll.).
Lari /lib/udev/keymap -i input/event0
menunjukkan kode pindai semua kunci normal, tetapi tidak ada untuk kunci tambahan.
Berjalan wireshark
untuk menangkap paket port USB menunjukkan bahwa keyboard sedang mengirim kode pindai, tetapi sepertinya kernel hanya menjatuhkannya pada prinsipnya.
Saya merasa ini adalah sesuatu di driver kernel yang tidak memberikan kode pindaian yang tidak diharapkan.
Saya akan berpikir bahwa akan ada semacam peta kunci "master" dalam beberapa .h
file di sumber kernel di suatu tempat, tetapi sejauh ini, saya belum berhasil dalam upaya saya untuk menemukannya.
Perlu ditekankan bahwa saya tidak bertanya tentang memetakan kunci tambahan dalam X, seperti banyak orang lain sebelum saya. Ini adalah masalah tingkat rendah, tampaknya terkait dengan kernel. Asumsikan untuk saat ini bahwa saya tidak akan menggunakan X sama sekali. Yang saya butuhkan adalah agar kode pindaian muncul ketika saya menjalankan /lib/udev/keymap -i
, saya dapat melakukan sisanya dari sana.
sumber
evtest
bukannya/lib/udev/keymap -i
, apakah itu akan berbeda.Jawaban:
Kernel melihat kode pindaian aneh dan menjatuhkannya. Saya akan mencoba untuk mendapatkan nilai-nilai kode pindai tersebut dan kemudian memperbarui indeks basis data perangkat keras. Jadi singkatnya rencananya adalah ini:
dapatkan kode dari output dmesg - dmesg akan menampilkan sesuatu seperti ini ketika kode kunci yang tidak dikenal ditekan:
a0
menjadi nilai kode.buat file pemetaan kode kunci khusus. Contoh dan bantuan ada di file default
(
/usr/lib/udev/hwdb.d/60-keyboard.hwdb
untuk Arch, mungkin berbeda di distribusi lain).memperbarui dan memicu basis data perangkat keras dengan menjalankan perintah:
di mana
eventXX
sesuai dengan keyboard Anda (Anda bisa mendapatkannya dengan menjalankanevtest
). Anda juga dapat memulai ulang alih-alih memicu.Lihat kedalam Arch wiki dan file pemetaan kode kunci default untuk deskripsi yang lebih terperinci (atau dalam dokumentasi distribusi Anda jika bukan Arch).
Ini adalah metode yang andal dan sederhana, membuat pemetaan pada level kernel sehingga berfungsi apa pun tampilan server, DE dll.
sumber
Situs web ini menawarkan konversi keyboard khusus http://straypoetry.com/ibm-model-m-keyboard/
Berdasarkan informasi dari situs web ini: http://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
sumber