Les touches de fonction du clavier déclenchent toujours des raccourcis multimédias, que Fn soit enfoncé ou non
J'ai récemment acheté un clavier mécanique Varmilo VA109M . Cela fonctionne bien sous Windows, mais semble confondre mon installation Ubuntu dans la mesure où les touches de fonction F1-F12 apparaissent toujours pour activer les raccourcis multimédias, que j'aie ou non maintenu la touche de modification Fn dédiée. Par exemple, F12 augmentera le volume de mon système si j'appuie dessus tout seul, et fera de même si j'appuie sur Fn+F12 ; il n'y a aucun moyen de le faire agir comme une touche F12 normale. Cela me pose des problèmes car je fais beaucoup de programmation et de nombreux raccourcis IDE reposent sur les touches de fonction standard.
J'ai essayé de réinitialiser les paramètres internes du clavier en maintenant Fn + Esc, mais cela n'a pas aidé. Mon installation Windows sur la même machine fonctionne parfaitement bien avec ce clavier. Y a-t-il quelque chose que je puisse faire pour essayer de diagnostiquer exactement ce qui confond Ubuntu?
EDIT : lsusb
affiche les éléments suivants :
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
Réponses
C'est résoluble !
J'ai donc fait des recherches moi-même récemment et bien que Jd3eBP ait raison sur le fait que le clavier prétend être un clavier Apple, c'est probablement un problème avec le clignotement de Varmilo à l'usine.
Ils vendent une version Mac du clavier qui, je pense, ne diffère que par le micrologiciel et l'étiquetage, par défaut, je pense qu'il prend en charge la disposition Mac, il est également censé pouvoir passer en "mode Windows" qui échange probablement l'ordre des touches à ce à quoi vous vous attendez, il s'identifie comme un clavier Apple pour que les Mac le traitent correctement.
Cependant, il semble qu'ils aient accidentellement flashé ce micrologiciel sur chaque clavier au lieu des seuls Mac, ce qui n'est pas perceptible sous Windows car il ignore l'identifiant, mais sous Linux, le pilote hid_apple sera activé.
La solution:
Passons à la partie réponse. Il y a deux grandes options pour résoudre ce problème, j'ai testé les deux et j'ai fini par trouver la seconde bien meilleure.
Changez hid_apple dans un mode où il traite les touches de fonction normalement, autant que je sache, cela résoudra essentiellement le problème. Vous pouvez trouver des instructions ici pour savoir comment procéder, cela fonctionnera également sur Ubuntu.https://wiki.archlinux.org/index.php/Apple_Keyboard#Function_keys_do_not_work.
Flashez le clavier avec l'ID du produit et du fournisseur afin qu'il ne soit pas détecté. C'est sans doute la bonne réponse mais un peu plus risquée. Vous pouvez obtenir les fichiers du firmware sur le site du fabricant ici,https://en.varmilo.com/keyboardproscenium/Driverdownload, en utilisant le téléchargement VA87M. Le programme de mise à jour lui-même n'a pas fonctionné (je pense que j'avais besoin d'installer la localisation chinoise), vous pouvez donc utiliser le programme de mise à jour qui a été fourni à quelqu'un icihttps://www.reddit.com/r/Varmilo/comments/g4sabk/fn_lock_on_va87m/, en utilisant le fichier de firmware officiel du pour faire bonne mesure. Si vous ne faites pas confiance à cela, j'entends que si vous envoyez un e-mail à Varmilo à propos du problème, ils vous fourniront les fichiers requis.
Ce programme de mise à jour a fonctionné sous wine pour moi après avoir installé wine à partir du site officiel. Cela reflashe simplement l'ID du fournisseur et du produit pour ne pas apparaître comme un clavier Apple, il supprime également la fonctionnalité "passer en mode Windows/Mac" qui n'était pas utilisée sur la version Windows uniquement. Vous pouvez probablement flasher le firmware du Mac pour revenir à l'ancien comportement si vous le souhaitez, je n'ai cependant pas testé cela.
Varmilo ne fait pas correctement l'USB. Éviter de.
Autour du WWW, on peut voir que ses claviers signalent faussement leurs fabricants comme Apple (ID de fournisseur 05ac comme revendiqué par le Varmilo VS109M et par le Varmilo VA88M), Cypress (ID de vendeur 04b4 comme revendiqué par le Varmilo Z104M ), ROF Electronics ( ID de fournisseur ffff, tel que revendiqué par un Varmilo VA87M ), Nordic Semiconductor (ID de fournisseur 1915 tel que revendiqué par un Varmilo VB87M ), Holtek, etc.
Ceci est clairement erroné et très problématique.
Si un périphérique matériel identifie son fabricant (dans l'énumération des périphériques des bus PCI, USB, etc.) comme Apple et son produit comme un clavier Apple spécifique, il est alors parfaitement légitime que les systèmes d'exploitation le traitent comme ce clavier Apple . L'ID de fournisseur 05AC L'ID de produit 024F est le clavier en aluminium Apple (États-Unis).
Le problème ici est que le VA109M n'est pas ce clavier .
Le clavier Apple a une sémantique spéciale et inhabituelle pour la Fntouche, qui diffère de la plupart des claviers. Le pilote de périphérique Linux qui est attaché aux claviers Apple est hid_apple
, et qui sait gérer la Fnclé spéciale d'Apple avec son "utilisation" USB HID privée.
Le VA109M n'est pas un clavier Apple. C'est un clavier Varmilo. Il ne fonctionne pas comme un clavier Apple. Il n'émet pas "l'utilisation" spéciale Apple USB HID pour Fn. Comme la plupart des claviers, il ne rend pas du toutFn visible via l'USB .
Donc, le conduire comme le clavier Apple qu'il dit, ne fonctionne pas .
- Une mauvaise solution, qui n'est pas non plus facile à mettre en œuvre, consiste à désactiver ou à supprimer le
hid_apple
pilote de Linux. - Une mauvaise solution consiste à utiliser l'
fnmode=2
option permettant auhid_apple
conducteur d'inverser son Fnétat de changement de vitesse. Cela passe au moins à la sémantique de ces touches qui sont des touches de fonction plutôt que des touches de contrôle de média/dispositif. - La bonne solution consiste à acheter des claviers auprès d'un fabricant qui sait comment définir correctement les ID de fournisseur, plutôt que chez Varmilo.
Lectures complémentaires
- Vroomfondel (2020-06-17). udev : Clavier mal détecté comme étant Apple . Bogue Debian #963002.
Selon le fabricant :https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221
Système d'exploitation Windows uniquement, macOS ne prend pas en charge les touches de raccourci. Si cela fait référence à la touche de fonction, cela peut être la raison pour laquelle. Peut-être que leur support macOS est aussi inégal que leur support Linux.