I tasti funzione della tastiera attivano sempre le scorciatoie multimediali, indipendentemente dal fatto che Fn sia tenuto premuto
Di recente ho acquistato una tastiera meccanica Varmilo VA109M . Funziona bene su Windows, ma sembra confondere la mia installazione di Ubuntu in quanto i tasti funzione F1-F12 sembrano sempre attivare le scorciatoie multimediali, indipendentemente dal fatto che io abbia tenuto o meno il tasto modificatore Fn dedicato. Ad esempio, F12 aumenterà il volume del mio sistema se lo premo da solo e farà lo stesso se premo Fn + F12; non c'è modo di farlo funzionare come un normale tasto F12. Questo mi sta causando problemi perché faccio molta programmazione e molte scorciatoie IDE si basano sui tasti funzione standard.
Ho provato a ripristinare le impostazioni interne della tastiera tenendo premuti Fn + Esc, ma questo non ha aiutato. La mia installazione di Windows sulla stessa macchina funziona perfettamente con questa tastiera. C'è qualcosa che posso fare per provare a diagnosticare esattamente ciò su cui Ubuntu si sta confondendo?
EDIT: lsusb
emette quanto segue:
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
Risposte
Questo è risolvibile!
Quindi ho fatto delle ricerche su questo io stesso di recente e mentre Jd3eBP ha ragione sulla tastiera che finge di essere una tastiera Apple, in realtà è probabilmente un problema con il lampeggiamento di Varmilo in fabbrica.
Vendono una versione Mac della tastiera che penso differisca solo per firmware ed etichettatura, per impostazione predefinita penso che supporti il layout Mac, dovrebbe anche essere in grado di passare alla "modalità Windows" che probabilmente cambia l'ordine dei tasti in quello che ti aspetteresti, si identifica come una tastiera Apple per convincere i Mac a trattarla correttamente.
Tuttavia sembra che forse abbiano accidentalmente fatto lampeggiare quel firmware su ogni tastiera anziché solo su quelle Mac, il che non è evidente su Windows poiché ignora l'id, ma su Linux attiverà il driver hid_apple.
Soluzione:
Passiamo alla risposta. Ci sono due grandi opzioni per risolvere questo problema, le ho testate entrambe e ho finito per trovare la seconda molto meglio.
Cambia hid_apple in una modalità in cui tratta normalmente i tasti funzione, afaik questo risolverà sostanzialmente il problema. Puoi trovare le istruzioni qui su come farlo, funzionerà anche su Ubuntu.https://wiki.archlinux.org/index.php/Apple_Keyboard#Function_keys_do_not_work.
Reflash della tastiera con l'ID del prodotto e del fornitore in modo tale che non venga rilevato. Questa è probabilmente la risposta giusta, ma un po' più rischiosa. È possibile ottenere i file del firmware dal sito del produttore qui,https://en.varmilo.com/keyboardproscenium/Driverdownload, utilizzando il download VA87M. Lo stesso programma di aggiornamento non ha funzionato (penso di aver bisogno della localizzazione cinese installata), quindi puoi utilizzare il programma di aggiornamento che è stato fornito a qualcuno quihttps://www.reddit.com/r/Varmilo/comments/g4sabk/fn_lock_on_va87m/, utilizzando il file del firmware ufficiale di per buona misura. Se non ti fidi, ho sentito che se invii un'e-mail a Varmilo in merito al problema, ti forniranno i file richiesti.
Quel programma di aggiornamento ha funzionato sotto wine per me dopo aver installato wine dal sito ufficiale. Questo riflette solo il fornitore e l'ID prodotto per non apparire come una tastiera Apple, rimuove anche la funzionalità "passa alla modalità Windows/Mac" che era inutilizzata nella versione solo per Windows. Probabilmente potresti eseguire il flashing del firmware del Mac per ripristinare il vecchio comportamento, se lo desideri, ma non l'ho testato.
Varmilo non funziona bene con l'USB. Evitare.
In giro per il WWW si può notare che le sue tastiere riportano variamente falsamente i loro produttori come Apple (vendor ID 05ac come affermato dal Varmilo VS109M e dal Varmilo VA88M), Cypress (vendor ID 04b4 come affermato dal Varmilo Z104M ), ROF Electronics ( ID fornitore ffff, come affermato da un Varmilo VA87M ), Nordic Semiconductor (ID fornitore 1915 come affermato da un Varmilo VB87M ), Holtek e altro.
Questo è chiaramente errato e altamente problematico.
Se il proprio dispositivo hardware identifica il suo produttore (nell'enumerazione dei dispositivi di bus PCI, USB, ecc.) come Apple e il suo prodotto come una specifica tastiera Apple, allora è perfettamente legittimo che i sistemi operativi lo trattino come quella tastiera Apple . ID fornitore 05AC L'ID prodotto 024F è la tastiera Apple in alluminio (USA).
Il problema qui è che il VA109M non è quella tastiera .
La tastiera Apple ha una semantica speciale e insolita per il Fntasto, che differisce dalla maggior parte delle tastiere. Il driver del dispositivo Linux che viene collegato alle tastiere Apple è hid_apple
e che sa gestire la Fnchiave speciale di Apple con il suo "utilizzo" HID USB privato.
Il VA109M non è una tastiera Apple. È una tastiera Varmilo. Non funziona come una tastiera Apple. Non emette l'"utilizzo" HID USB speciale di Apple per i file Fn. Come la maggior parte delle tastiere, non è affatto visibileFn tramite USB .
Quindi guidarlo come la tastiera Apple che dice che lo è, non funziona .
- Una soluzione scadente, che è anche non banale da attuare, è disabilitare o rimuovere il
hid_apple
driver da Linux. - Una soluzione scadente consiste nell'utilizzare l'
fnmode=2
opzione delhid_apple
driver per invertire il suo Fnstato di cambio. Questo almeno passa alla semantica di quei tasti che sono tasti funzione piuttosto che tasti di controllo multimediale/dispositivo. - La soluzione giusta è acquistare tastiere da un produttore che sa come impostare correttamente gli ID fornitore, piuttosto che da Varmilo.
Ulteriori letture
- Vroomfondel (2020-06-17). udev: Tastiera rilevata erroneamente come Apple . Errore Debian n. 963002.
Secondo il produttore:https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221
Solo sistema operativo Windows, macOS non supporta i tasti di scelta rapida. Se questo si riferisce al tasto funzione, allora questa potrebbe essere la risposta. Forse il loro supporto per macOS è imprevedibile quanto il loro supporto per Linux.