Puncte:1

Remaparea tastaturii multimedia

drapel cn

Am o telecomandă G7BTS, care are atât tastatură, cât și butoane multimedia. Majoritatea butoanelor sale funcționează bine, cu excepția butonului „OK”.

Butonul OK are un cod de cheie 353, ceea ce înseamnă KEY_SELECT. Dar ubuntu meu 20.04 nu îl recunoaște.

Mai jos sunt câteva cercetări pe care le-am făcut:

  1. sudo evtest

ieșire:

/dev/input/event9: Tastatură G7BTS
/dev/input/event10: Mouse G7BTS
/dev/input/event11: Controlul consumatorilor G7BTS
/dev/input/event12: Controlul sistemului G7BTS
  1. grep "" /sys/class/input/event11/device/id/*

ieșire:

/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

ieșire:

Se testează... (întrerupeți pentru a ieși)
Eveniment: ora 1640250050.701930, tip 4 (EV_MSC), cod 4 (MSC_SCAN), valoare c0041
Eveniment: ora 1640250050.701930, tip 1 (EV_KEY), cod 353 (KEY_SELECT), valoare 1
Eveniment: ora 1640250050.701930, -------------- SYN_REPORT ------------
  1. /etc/udev/hwdb.d/60-keyboard.hwdb

Am încercat să remapez butonul OK pentru a „introduce”.

Conținutul fișierului 60-keyboard.hwdb:

# G7BTS
evdev:input:b0005v045Ep0041*
 KEYBOARD_KEY_c0041=introduceți
  1. sudo udevadm hwdb --test='evdev:input:b0005v045ep0041*'

ieșire:

KEYBOARD_KEY_c0041=introduceți

Până acum, încă nu pot vedea nicio ieșire în xev când apăs pe butonul OK.

Orice sugestii și ajutor vor fi apreciate.

Puncte:0
drapel cn

Multumesc tuturor.

Mi-a luat câteva zile să aflu soluția, în sfârșit, am găsit calea corectă.

Referinţă

Mapează codurile de scanare cu codurile cheie

fundal Versiunea 11 a protocolului X acceptă numai coduri cheie pe un singur octet. Deci, codurile cheie de peste 255 sunt ignorate. Ubuntu 20.04 LTS, până acum, folosește încă versiunea 11 a protocolului X. Tastatura mea de la distanță G7BTS are un buton âOKâ. Acest buton are un cod de cheie de 353. În âxevâ, nu se întâmplă nimic atunci când acest buton este apăsat.

Soluţie

Pe scurt, soluția este crearea unui fișier de configurare hwdb, care este folosit pentru a remapa anumite chei la alte chei.

udev

udev oferă o funcție încorporată numită hwdb pentru a menține indexul bazei de date hardware în /etc/udev/hwdb.bin. Baza de date este compilată din fișiere cu extensia .hwdb situate în directoarele /usr/lib/udev/hwdb.d/, /run/udev/hwdb.d/ și /etc/udev/hwdb.d/. Fișierul implicit de mapare scancodes-to-keycodes este /usr/lib/udev/hwdb.d/60-keyboard.hwdb.

Dispozitive de intrare generice (de asemenea, tastaturi USB) identificate prin modaliile nucleului USB:

evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-

unde , și sunt codurile hexadecimale de 4 cifre ale furnizorului, al produsului și al versiunii

Cum să găsiți acele id-uri de mai sus este cheia

instalați hardinfo
sudo apt install hardinfo
software â System Profiler â Dispozitive de intrare â G7BTS Consumer Control

Informatie despre dispozitiv Denumiți G7BTS Comsumer Control Tastați tastatură Autobuz 0x0005 Vender 0x045e Produs 0x0041 Versiunea 0x0300

Un alt lucru de import este să obțineți codul de scanare al butonului âOKâ.

instalați evtest
sudo apt-get install evtest
sudo evtest

Nu s-a specificat niciun dispozitiv, se încearcă să scaneze tot /dev/input/event* Dispozitive disponibile: /dev/input/event0: Comutator capac /dev/input/event1: butonul Sleep /dev/input/event2: Buton de alimentare /dev/input/event3: tastatură AT Translated Set 2 /dev/input/event4: TouchPad SynPS/2 Synaptics /dev/input/event5: TPPS/2 IBM TrackPoint /dev/input/event6: Butoane ThinkPad Extra /dev/input/event7: magistrală video /dev/input/event8: Camera integrată: C integrată /dev/input/event9: Tastatură G7BTS /dev/input/event10: Mouse G7BTS /dev/input/event11: Controlul consumatorilor G7BTS /dev/input/event12: Controlul sistemului G7BTS /dev/input/event13: HDA Intel PCH Mic /dev/input/event14: HDA Intel PCH Dock Mic /dev/input/event15: Căști HDA Intel PCH /dev/input/event16: Căști 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 Selectați numărul evenimentului dispozitivului [0-19]: ^C

Acordați atenție â/dev/input/event11â

sudo evtest /dev/input/event11

Apoi apăsați butonul âOKâ, iar rezultatul este mai jos

Eveniment: ora 1640238746.775220, tip 4 (EV_MSC), cod 4 (MSC_SCAN), valoare c0041 Eveniment: ora 1640238746.775220, tip 1 (EV_KEY), cod 353 (KEY_SELECT), valoare 0 Eveniment: ora 1640238746.775220, -------------- SYN_REPORT ------------

Fiți atenți la âvaloarea c0041â. Această valoare c0041 este codul de scanare al butonului âOKâ.

Faceți fișierul hwdb

Acum, avem ID-urile și codul de scanare de care avem nevoie. Puneți-le în „dispozitivele de intrare generice (de asemenea, tastaturi USB) identificate de modaliile nucleului USB” de mai sus și, în sfârșit, avem fișierul de configurare G7BTS.hwdb de mai jos:

evdev:input:b0005v045Ep0041e0300* KEYBOARD_KEY_c0041=introduceți

În context, butonul âOKâ este mapat în tasta âenterâ. Îl puteți mapa în orice cheie doriți.

Pune fișierul la destinație

sudo mv G7BTS.hwdb /etc/udev/hwdb.d/

Actualizați

sudo udevadm hwdb --update sudo udevadm trigger --verbose

Test

sudo udevadm hwdb --test='evdev:input:b0005v045Ep0041e0300*'

rezultatul este

KEYBOARD_KEY_c0041=introduceți

sfarsit

Aceștia sunt toți pașii pentru a remapa cheile. Aceste remapări încă funcționează după repornire.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.