ปุ่มฟังก์ชันแป้นพิมพ์จะเรียกใช้ทางลัดสื่อเสมอไม่ว่าจะกด Fn ค้างไว้หรือไม่
ฉันเพิ่งซื้อคีย์บอร์ดแบบกลไกVarmilo VA109M ใช้งานได้ดีบน Windows แต่ดูเหมือนจะสับสนในการติดตั้ง Ubuntu ของฉันเนื่องจากปุ่มฟังก์ชัน F1-F12 ปรากฏขึ้นเพื่อเปิดใช้งานทางลัดสื่อเสมอไม่ว่าฉันจะถือคีย์ตัวปรับแต่ง Fn เฉพาะหรือไม่ก็ตาม ตัวอย่างเช่น F12 จะเพิ่มระดับเสียงระบบของฉันถ้าฉันกดมันเองและจะทำเช่นเดียวกันถ้าฉันกด Fn + F12 ไม่มีทางที่จะทำให้มันทำงานเหมือนคีย์ F12 ปกติได้ สิ่งนี้ทำให้ฉันมีปัญหาเพราะฉันเขียนโปรแกรมเป็นจำนวนมากและทางลัด IDE จำนวนมากต้องอาศัยปุ่มฟังก์ชันมาตรฐาน
ฉันได้ลองรีเซ็ตการตั้งค่าภายในของแป้นพิมพ์โดยกด Fn + Esc ค้างไว้ แต่ก็ไม่ได้ผล Windows ของฉันติดตั้งบนเครื่องเดียวกันทำงานได้ดีอย่างสมบูรณ์กับแป้นพิมพ์นี้ มีอะไรที่ฉันสามารถทำได้เพื่อลองวินิจฉัยว่า Ubuntu กำลังสับสนเกี่ยวกับอะไร?
แก้ไข: lsusb
เอาต์พุตดังต่อไปนี้:
Bus 001 Device 003: ID 05ac:024f Apple, Inc. Varmilo Keyboard
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x05ac Apple, Inc.
idProduct 0x024f
bcdDevice 1.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x005b
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 350mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 75
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 85
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 33
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 4
คำตอบ
นี่แก้ได้!
เมื่อเร็ว ๆ นี้ฉันได้ทำการวิจัยเกี่ยวกับเรื่องนี้ด้วยตัวเองและในขณะที่ Jd3eBP พูดถูกเกี่ยวกับแป้นพิมพ์ที่แสร้งทำเป็นแป้นพิมพ์ของ Apple แต่จริงๆแล้วอาจเป็นปัญหากับการกระพริบของ Varmilo ที่โรงงาน
พวกเขาขายแป้นพิมพ์เวอร์ชัน Mac ซึ่งฉันคิดว่าแตกต่างเฉพาะในเฟิร์มแวร์และการติดฉลากโดยค่าเริ่มต้นฉันคิดว่ามันรองรับเค้าโครง Mac แต่ก็ควรจะสามารถเปลี่ยนเป็น "โหมด windows" ซึ่งอาจจะสลับลำดับของปุ่มเป็น สิ่งที่คุณคาดหวังมันระบุว่าตัวเองเป็นแป้นพิมพ์ของ Apple เพื่อให้ Mac ใช้งานได้อย่างเหมาะสม
อย่างไรก็ตามดูเหมือนว่าบางทีพวกเขาอาจจะแฟลชเฟิร์มแวร์นั้นลงบนแป้นพิมพ์ทุกตัวโดยไม่ได้ตั้งใจแทนที่จะเป็นเฉพาะ Mac เท่านั้นซึ่งไม่สามารถสังเกตเห็นได้ใน Windows เนื่องจากไม่สนใจ id แต่บน linux จะเปิดใช้งานไดรเวอร์ hid_apple
สารละลาย:
ในส่วนคำตอบ มีสองตัวเลือกใหญ่ในการแก้ปัญหานี้ฉันทดสอบทั้งคู่และพบว่าตัวเลือกที่สองดีกว่ามาก
เปลี่ยน hid_apple เป็นโหมดที่ใช้กับปุ่มฟังก์ชั่นตามปกติซึ่งโดยทั่วไปจะช่วยแก้ปัญหาได้ คุณสามารถดูคำแนะนำได้ที่นี่สำหรับวิธีการดังกล่าวซึ่งจะใช้ได้กับ Ubuntu เช่นกันhttps://wiki.archlinux.org/index.php/Apple_Keyboard#Function_keys_do_not_work.
แฟลชคีย์บอร์ดอีกครั้งด้วยผลิตภัณฑ์และ ID ผู้จำหน่ายเพื่อไม่ให้ตรวจพบ นี่เป็นคำตอบที่ถูกต้อง แต่มีความเสี่ยงมากกว่าเล็กน้อย คุณสามารถรับไฟล์เฟิร์มแวร์ได้จากเว็บไซต์ผู้ผลิตที่นี่https://en.varmilo.com/keyboardproscenium/Driverdownloadโดยใช้การดาวน์โหลด VA87M ตัวอัปเดตใช้งานไม่ได้ (ฉันคิดว่าฉันต้องการการแปลเป็นภาษาจีน) ดังนั้นคุณสามารถใช้ตัวอัปเดตที่ให้มากับใครบางคนได้ที่นี่https://www.reddit.com/r/Varmilo/comments/g4sabk/fn_lock_on_va87m/โดยใช้ไฟล์เฟิร์มแวร์อย่างเป็นทางการจากการวัดผลที่ดี หากคุณไม่ไว้วางใจเราได้ยินว่าหากคุณส่งอีเมลถึง Varmilo เกี่ยวกับปัญหาพวกเขาจะให้ไฟล์ที่จำเป็น
ตัวอัปเดตนั้นทำงานภายใต้ไวน์ให้ฉันหลังจากติดตั้งไวน์จากเว็บไซต์อย่างเป็นทางการ นี่เป็นเพียงการรีเฟรชผู้จำหน่ายและ ID ผลิตภัณฑ์เพื่อไม่ให้ปรากฏเป็นแป้นพิมพ์ของ Apple นอกจากนี้ยังลบฟังก์ชัน "เปลี่ยนไปใช้โหมด windows / mac" ที่ไม่ได้ใช้ในเวอร์ชัน Windows เท่านั้น คุณอาจแฟลชเฟิร์มแวร์ Mac เพื่อย้อนกลับไปใช้พฤติกรรมเดิมได้หากคุณต้องการฉันไม่ได้ทดสอบอย่างไรก็ตาม
Varmilo ทำ USB ไม่ถูกต้อง หลีกเลี่ยง.
รอบ WWW มันจะเห็นได้ว่าคีย์บอร์ดของนานัปการตู่รายงานผู้ผลิตของพวกเขาเป็นแอปเปิ้ล (05ac รหัสผู้ให้บริการเป็นโดยอ้างว่า Varmilo VS109M และโดย Varmilo VA88M) ไซเปรส (ID 04b4 ผู้ขายอ้างว่าเป็นโดย Varmilo Z104M ) ROF นิคส์ ( รหัสผู้ขาย ffff ตามที่อ้างโดย Varmilo VA87M ), Nordic Semiconductor (ID ผู้จำหน่าย 1915 ตามที่อ้างโดย Varmilo VB87M ), Holtek และอื่น ๆ
สิ่งนี้ผิดพลาดอย่างชัดเจนและเป็นปัญหาอย่างมาก
หากอุปกรณ์ฮาร์ดแวร์ของคนระบุผู้ผลิต (ในการแจงนับอุปกรณ์ PCI, USB, et al. รถเมล์) เป็นแอปเปิ้ลและผลิตภัณฑ์ของตนเป็นแป้นพิมพ์เฉพาะแอปเปิ้ลแล้วมันเป็นอย่างดีที่ถูกต้องสำหรับระบบปฏิบัติการที่จะรักษามันเป็นแป้นพิมพ์ที่แอปเปิ้ล ID ผู้ขาย 05AC รหัสผลิตภัณฑ์ 024F คือแป้นพิมพ์อะลูมิเนียมของ Apple (US)
ปัญหาตรงนี้คือ VA109M ไม่ใช่คีย์บอร์ดนั้น
แป้นพิมพ์ของ Apple มีความหมายพิเศษและผิดปกติสำหรับFnคีย์ซึ่งแตกต่างจากแป้นพิมพ์ส่วนใหญ่ ไดรเวอร์อุปกรณ์ Linux ที่เชื่อมต่อกับแป้นพิมพ์ของ Apple คือhid_apple
และรู้ว่าจะจัดการFnคีย์พิเศษของ Apple ด้วย "การใช้งาน USB HID" ส่วนตัว
VA109M ไม่ใช่คีย์บอร์ดของ Apple มันคือคีย์บอร์ด Varmilo มันไม่ทำงานเหมือนแป้นพิมพ์ของ Apple มันไม่ได้ปล่อยแอปเปิ้ล USB HID พิเศษ "การใช้งาน" Fnสำหรับ เช่นเดียวกับแป้นพิมพ์ส่วนใหญ่ก็ไม่ได้ทำให้Fnมองเห็นได้ผ่านทาง USB ได้ในทุก
ดังนั้นการขับรถมันเหมือนแป้นพิมพ์แอปเปิ้ลที่มันบอกว่ามันเป็นไม่ได้ทำงาน
- การแก้ไขที่ไม่ดีซึ่งยังไม่สำคัญในการออกกฎหมายคือการปิดใช้งานหรือลบ
hid_apple
ไดรเวอร์ออกจาก Linux - การแก้ไขที่ไม่ดีคือการใช้
fnmode=2
ตัวเลือกให้กับhid_apple
ไดรเวอร์เพื่อกลับFnสถานะกะ อย่างน้อยก็เปลี่ยนไปใช้ความหมายของคีย์เหล่านั้นเป็นปุ่มฟังก์ชันมากกว่าปุ่มควบคุมสื่อ / อุปกรณ์ - การแก้ไขที่ถูกต้องคือการซื้อคีย์บอร์ดจากผู้ผลิตที่รู้วิธีตั้งรหัสผู้จำหน่ายอย่างถูกต้องแทนที่จะซื้อจาก Varmilo
อ่านเพิ่มเติม
- Vroomfondel (2020-06-17). udev: คีย์บอร์ดผิดพลาดตรวจพบว่าเป็นแอปเปิ้ล ข้อผิดพลาด Debian # 963002
ตามผู้ผลิต: https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221
Windows OS เท่านั้น macOS ไม่รองรับปุ่มลัด หากนี่หมายถึงปุ่มฟังก์ชันนี่อาจเป็นคำตอบว่าทำไม บางทีการรองรับ macOS ของพวกเขาอาจไม่แน่นอนพอ ๆ กับการรองรับ Linux