Score:1

รีแมปคีย์บอร์ดมัลติมีเดีย

ธง cn

ฉันมีรีโมตคอนโทรล G7BTS ซึ่งมีทั้งคีย์บอร์ดและปุ่มมัลติมีเดีย ปุ่มส่วนใหญ่ทำงานได้ดียกเว้นปุ่ม "ตกลง"

ปุ่มตกลงมีรหัสรหัส 353 ซึ่งหมายถึง KEY_SELECT แต่ Ubuntu 20.04 ของฉันไม่รู้จัก

ด้านล่างนี้คืองานวิจัยบางส่วนที่ฉันได้ทำไปแล้ว:

  1. sudo evtest

เอาท์พุท:

/dev/input/event9: แป้นพิมพ์ G7BTS
/dev/input/event10: เมาส์ G7BTS
/dev/input/event11: G7BTS Consumer Control
/dev/input/event12: การควบคุมระบบ G7BTS
  1. grep "" /sys/class/input/event11/device/id/*

เอาท์พุท:

/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

เอาท์พุท:

กำลังทดสอบ ... (ขัดจังหวะเพื่อออก)
เหตุการณ์: เวลา 1640250050.701930 ประเภท 4 (EV_MSC) รหัส 4 (MSC_SCAN) ค่า c0041
เหตุการณ์: เวลา 1640250050.701930 ประเภท 1 (EV_KEY) รหัส 353 (KEY_SELECT) ค่า 1
เหตุการณ์: เวลา 1640250050.701930, -------------- SYN_REPORT ------------
  1. /etc/udev/hwdb.d/60-keyboard.hwdb

ฉันพยายามทำการแมปปุ่มตกลงใหม่เป็น 'เข้า'

เนื้อหาไฟล์ 60-keyboard.hwdb:

#G7BTS
evdev:อินพุต:b0005v045Ep0041*
 KEYBOARD_KEY_c0041=เข้า
  1. sudo udevadm hwdb --test='evdev:input:b0005v045ep0041*'

เอาท์พุท:

KEYBOARD_KEY_c0041=เข้า

จนถึงตอนนี้ ฉันยังไม่เห็นเอาต์พุตใดๆ ใน xev เมื่อฉันกดปุ่ม OK

ข้อเสนอแนะและความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

Score:0
ธง cn

ขอบคุณทุกคน

ฉันใช้เวลาหลายวันในการหาทางออก ในที่สุดฉันก็พบวิธีที่ถูกต้อง

อ้างอิง

แมปรหัสสแกนกับรหัสคีย์

พื้นหลัง เวอร์ชัน 11 ของโปรโตคอล X รองรับรหัสคีย์แบบไบต์เดี่ยวเท่านั้น ดังนั้นรหัสคีย์ที่สูงกว่า 255 จะถูกละเว้น จนถึงตอนนี้ Ubuntu 20.04 LTS ยังคงใช้โปรโตคอล X เวอร์ชัน 11 แป้นพิมพ์รีโมต G7BTS ของฉันมีปุ่ม âOKâ ปุ่มนี้มีรหัสคีย์ 353 ภายใน âxevâ จะไม่มีอะไรเกิดขึ้นเมื่อกดปุ่มนี้

สารละลาย

โดยย่อ วิธีแก้ไขคือสร้างไฟล์การกำหนดค่า hwdb ซึ่งใช้เพื่อรีแมปคีย์บางคีย์กับคีย์อื่น

อูเดฟ

udev มีฟังก์ชันในตัวที่เรียกว่า hwdb เพื่อรักษาดัชนีฐานข้อมูลฮาร์ดแวร์ใน /etc/udev/hwdb.bin ฐานข้อมูลรวบรวมจากไฟล์ที่มีนามสกุล .hwdb ซึ่งอยู่ในไดเร็กทอรี /usr/lib/udev/hwdb.d/, /run/udev/hwdb.d/ และ /etc/udev/hwdb.d/ ไฟล์การแม็พ scancodes-to-keycodes เริ่มต้นคือ /usr/lib/udev/hwdb.d/60-keyboard.hwdb

อุปกรณ์อินพุตทั่วไป (รวมถึงแป้นพิมพ์ USB) ที่ระบุโดย modalias ของเคอร์เนล usb:

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

โดยที่ และ คือผู้จำหน่ายตัวพิมพ์ใหญ่ฐานสิบหก 4 หลัก รหัสผลิตภัณฑ์และเวอร์ชัน

วิธีค้นหารหัสเหล่านั้นเป็นกุญแจสำคัญ

ติดตั้งฮาร์ดอินโฟ
sudo apt ติดตั้ง hardinfo
ซอฟต์แวร์ â System Profiler â Input Devices â G7BTS Comsumer Control

ข้อมูลอุปกรณ์ ชื่อ G7BTS Comsumer Control พิมพ์แป้นพิมพ์ รถเมล์ 0x0005 เวนเดอร์ 0x045e สินค้า 0x0041 เวอร์ชัน 0x0300

สิ่งนำเข้าอีกอย่างคือการรับรหัสสแกนของปุ่ม âOKâ

ติดตั้ง evtest
sudo apt-get ติดตั้ง evtest
sudo evtest

ไม่ได้ระบุอุปกรณ์ กำลังพยายามสแกน /dev/input/event* ทั้งหมด อุปกรณ์ที่มี: /dev/input/event0: สวิตช์ฝาปิด /dev/input/event1: ปุ่มสลีป /dev/input/event2: ปุ่มเปิดปิด /dev/input/event3: แป้นพิมพ์ AT Translated Set 2 /dev/input/event4: SynPS/2 Synaptics ทัชแพด /dev/input/event5: TPPS/2 IBM TrackPoint /dev/input/event6: ปุ่มพิเศษของ ThinkPad /dev/input/event7: บัสวิดีโอ /dev/input/event8: รวมกล้อง: รวม C /dev/input/event9: แป้นพิมพ์ G7BTS /dev/input/event10: เมาส์ G7BTS /dev/input/event11: G7BTS Consumer Control /dev/input/event12: การควบคุมระบบ G7BTS /dev/input/event13: ไมค์ HDA Intel PCH /dev/input/event14: HDA Intel PCH Dock Mic /dev/input/event15: หูฟัง HDA Intel PCH /dev/input/event16: หูฟัง 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 เลือกหมายเลขกิจกรรมของอุปกรณ์ [0-19]: ^C

ให้ความสนใจกับ â/dev/input/event11â

sudo evtest /dev/input/event11

จากนั้นกดปุ่ม âOKâ และผลลัพธ์จะอยู่ด้านล่าง

เหตุการณ์: เวลา 1640238746.775220 ชนิด 4 (EV_MSC) รหัส 4 (MSC_SCAN) ค่า c0041 เหตุการณ์: เวลา 1640238746.775220 ประเภท 1 (EV_KEY) รหัส 353 (KEY_SELECT) ค่า 0 เหตุการณ์: เวลา 1640238746.775220, -------------- SYN_REPORT ------------

ให้ความสนใจกับ âvalue c0041â ค่านี้ c0041 เป็นรหัสสแกนของปุ่ม âOKâ

สร้างไฟล์ hwdb

ตอนนี้เรามีรหัสและรหัสสแกนที่เราต้องการแล้ว ใส่ลงใน âอุปกรณ์อินพุตทั่วไป (เช่น แป้นพิมพ์ USB) ที่ระบุโดย usb kernel modaliasâ ด้านบน และสุดท้าย เราก็มีไฟล์การกำหนดค่า G7BTS.hwdb ด้านล่าง:

evdev:อินพุต:b0005v045Ep0041e0300* KEYBOARD_KEY_c0041=เข้า

ในบริบทนี้ ปุ่ม âOKâ จะแมปเข้ากับปุ่ม âenterâ คุณสามารถจับคู่กับคีย์ใดก็ได้ที่คุณต้องการ

วางไฟล์ไปยังปลายทาง

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

อัปเดต

sudo udevadm hwdb -- อัปเดต sudo udevadm ทริกเกอร์ --verbose

ทดสอบ

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

ผลลัพธ์คือ

KEYBOARD_KEY_c0041=เข้า

ตอนจบ

นั่นคือขั้นตอนทั้งหมดในการรีแมปคีย์ การรีแมปเหล่านั้นยังคงใช้งานได้หลังจากรีบูต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา