키보드 기능 키는 Fn을 누르고 있는지 여부에 관계없이 항상 미디어 바로 가기를 트리거합니다.
최근에 Varmilo VA109M 기계식 키보드를 구입했습니다 . Windows에서는 잘 작동하지만 F1-F12 기능 키가 전용 Fn 수정 자 키를 눌렀는지 여부에 관계없이 항상 미디어 바로 가기를 활성화하는 것처럼 보인다는 점에서 Ubuntu 설치를 혼란스럽게하는 것 같습니다. 예를 들어, F12를 누르면 시스템 볼륨이 증가하고 Fn + F12를 누르면 동일한 작업을 수행합니다. 일반 F12 키처럼 작동하도록 할 방법이 없습니다. 많은 프로그래밍을 수행하고 많은 IDE 바로 가기가 표준 기능 키에 의존하기 때문에 문제가 발생합니다.
Fn + Esc를 눌러 키보드의 내부 설정을 재설정하려고했지만 도움이되지 않았습니다. 동일한 컴퓨터에 Windows를 설치하면이 키보드로 완벽하게 작동합니다. 우분투가 혼란스러워하는 것을 정확히 진단하기 위해 할 수있는 일이 있습니까?
편집 : 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 모드"로 전환 할 수 있어야합니다. 예상했던대로 Mac이 제대로 처리하도록하기 위해 Apple 키보드로 식별됩니다.
그러나 아마도 그들은 ID를 무시하기 때문에 Windows에서 눈에 띄지 않는 Mac 전용 키보드 대신 실수로 모든 키보드에 해당 펌웨어를 플래시 한 것처럼 보이지만 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 전용 버전에서 사용되지 않았던 "Windows / Mac 모드로 전환"기능도 제거합니다. 하지만 테스트하지 않았 으면 원하는 경우 Mac 펌웨어를 플래시하여 이전 동작으로 되돌릴 수 있습니다.
Varmilo는 USB를 올바르게 수행하지 않습니다. 기피.
가 WWW 주위에 그것의 키보드가 다양 함을 알 수있다 거짓 애플합니다 (Varmilo VS109M에 의해 그리고 Varmilo VA88M에 의해 항에있어서, 공급 업체 ID의 05ac)로 자신의 업체를보고, 싸이프레스 (벤더 ID의 04b4 Varmilo Z104M에 의해 항 ), ROF 전자 ( 공급 업체 ID ffff ( Varmilo VA87M에서 주장한대로 ), Nordic Semiconductor ( Varmilo VB87M에서 주장한 공급 업체 ID 1915 ), Holtek 등.
이것은 분명히 잘못된 것이며 매우 문제가 있습니다.
하드웨어 장치가 제조업체 (PCI, USB 등의 장치 목록에서)를 Apple로 식별하고 해당 제품을 특정 Apple 키보드로 식별하는 경우 운영 체제에서 해당 Apple 키보드로 취급하는 것이 완벽하게 합법적입니다 . 공급 업체 ID 05AC 제품 ID 024F는 Apple 알루미늄 키보드 (미국)입니다.
여기서 문제는 VA109M 이 키보드가 아니라는 것입니다 .
Apple 키보드에는 Fn대부분의 키보드 와 다른 특수하고 특이한 키 의미가 있습니다. Apple 키보드에 연결되는 Linux 장치 드라이버는 hid_apple
이며 Fn개인 USB HID "사용"으로 Apple의 특수 키 를 처리하는 것을 알고 있습니다 .
VA109M은 Apple 키보드가 아닙니다. Varmilo 키보드입니다. Apple 키보드처럼 작동하지 않습니다. .NET 용 Apple 특수 USB HID "사용"을 내 보내지 않습니다 Fn. 대부분의 키보드와 마찬가지로 FnUSB 를 통해 전혀 보이지 않습니다 .
그래서 그것이 말하는 Apple 키보드처럼 작동하지 않습니다 .
- 제정하기 쉽지 않은 잘못된 수정
hid_apple
은 Linux 에서 드라이버 를 비활성화하거나 제거하는 것 입니다. - 잘못된 해결책은 운전자에게
fnmode=2
옵션 을 사용하여 변속 상태hid_apple
를 반전시키는 것 Fn입니다. 적어도 미디어 / 장치 제어 키가 아닌 기능 키인 키의 의미로 전환됩니다. - 올바른 해결책은 Varmilo가 아닌 공급 업체 ID를 올바르게 설정하는 방법을 알고있는 제조업체에서 키보드를 구입하는 것입니다.
추가 읽기
- 브룸 폰델 (2020-06-17). udev : 키보드가 Apple로 잘못 감지되었습니다 . 데비안 버그 # 963002.
제조업체에 따르면 : https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221
Windows OS 전용, macOS는 바로 가기 키를 지원하지 않습니다. 이것이 기능 키를 참조하는 경우 이것이 그 이유에 대한 답일 수 있습니다. 아마도 그들의 macOS 지원은 Linux 지원만큼 불안정합니다.