DIversi mesi fa, ho sostituito il mio notebook, con uno nuovo, il notebook in questione è un HP Pavilion ab062nl, la scelta è ricaduta su questo portatile, perchè era uno dei pochi notebook con APU carrizo A10, siccome questo driver è supportato dal nuovissimo kernel driver AMDGPU, ero curioso di testarlo (considerando anche la maggior potenza della gpu integrata rispetto alle integrate intel).

Il notebook ha soddisfatto le mie aspettative, anche l’hardware funziona alla perfezione, le performance grafiche sono soddisfacenti per un’integrata, i driver opensource funzionano molto bene ora, c’è solo un grave problema, ovvero un fastidiosissimo bug con la tastiera, per farla semplice i tasti ALT, CTRL e SHIFT funzionano male.

 

video che mostra il comportamento della tastiera afflitta dal bug (come vedete inizialmente i tasti ALT CTRL e SHIFT mentre li premo è come se venissero rilasciati e poi premuti nuovamente, ma ovviamente io non stavo lasciando i tasti, invece dopo aver premuto per un paio di secondi solo il tasto SHIFT il problema scompare momentaneamente (la pressione dei tasti BLOCK MAIUSC o BLOCK NUM scatena immediatamente il “ritorno” del bug))

 

 

In che senso funzionano male?

Quando vengono premuti è come se dopo poco venissero rilasciati (anche se lo stai ancora premendo), ma non solo, altre volte questi tasti si attivano da soli, quindi se stai scrivendo qualcosa nel browser, viene rilevata la pressione CTRL, mentre tu continui a scrivere, e ti vedi comparire un sacco di finestre (che si aprono per le scorciatoie di tastiera, come ad esempio CTRL-o, CTRL-b, ecc…) oppure mentre fai lo scroll della pagina con la rotella del mouse, se si attiva il tasti CTRL in quel momento, vedi tutta la pagina ridimensionarsi cambiando lo zoom.

Oppure altra esperienza negativa con questo bug è mentre si sta usando ALT-TAB per scorrere tra le varie finestre aperte, mentre tieni ancora premuto il tasto ALT, vedi il menu alt-tab scomparire, come se avessi rilasciato ALT, ma ovviamente così non è.

Oppure ancora l’errato funzionamento del tasto SHIFT, lo si può notare quando, vuoi scrivere maiuscolo delle lettere, inizialmente vedi che le fa maiuscole, poi di colpo inizia a scrivere minuscolo anche se tu stai tenendo premuto SHIFT.

 

Insomma l’esperienza è davvero frustrante, non è certo possibile usare un computer in questo stato.

 

andando ad indagare un po monitorando la situazione con il tool xev, ho notato che effettivamente ogni tanto il sistema operativo riceve a caso degli input di questi 3 tasti anche se tu sei assente dal pc, quindi il problema sembra proprio dovuto dal fatto che ogni tanto il sistema operativo vede come se questi tasti vengono premuti (quindi credo che nel caso tu stessi gia premendo per esempio alt per usare alt-tab, il sistema riceve oltre alla tua pressione, un altro input del tasto alt e forse va in conflitto, chiudendoti il menu).

 

ho aperto anche diversi thread su vari forum cercando una soluzione, ma niente, nessuna soluzione, ho aperto un lunghissimo thread su launchpad dove ho scoperto che anche altri utenti con notebook HP Pavilion (anche modelli differenti dal mio ab062nl) avevano lo stesso identico problema, quindi sembra proprio che sia un bug relativo al controller della tastiera degli HP Pavilion.

su launchpad mi è stato consigliato di contattare direttamente gli sviluppatori del kernel, l’ho fatto, ma dopo qualche scambio di email hanno smesso del tutto di rispondermi, nonostante io continuassi a mandargli ulteriori informazioni relative al bug.

 

Alla fine, un giorno, dopo aver cercato soluzione per mesi, è arrivata l’illuminazione dalla segnalazione dell’utente Maudit sul blog lffl (che ringrazio tantissimo).

Mi è stato consigliato da lui di cercare informazioni riguardanti il parametro

i8042

così facendo qualche ricerca ho trovato la documentazione di tutti i paramentri per il kernel, tra questi compativa anche i8042.

così ho iniziato a fare un po di prove, e assieme ad un altro utente su launchpad, ci siamo accorti che se passiamo al kernel il seguente parametro

i8042.dumbkbd

il problema sparisce completamente.

il “problema” è che usando questo paramentro, si “dice” al controller che può SOLO LEGGERE dati dalla tastiera, quindi ora il controller non è più in grado di accendere i LED della tastiera (per notificare se il CAPS LOCK) è attivo o meno (problema aggirabile usando estensioni come “indicator-keylock” o simili, che tramite una notifica e un’icona nel pannello superiore ti segnalano se il block maiusc è attivo.

 

RISOLVERE IL PROBLEMA

Quindi per risolvere il problema ci basta aggiungere questo parametro al kernel.

se usate grub, vi basta aprire il suo file di configurazione con il seguente comando

sudo gedit /etc/default/grub

e aggiungete il parametro

i8042.dumbkbd

all’interno della voce

GRUB_CMDLINE_LINUX_DEFAULT=""

ecco un esempio di come è impostata da me quell’opzione

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.dumbkbd amdgpu.powerplay=1 amdgpu.sched_jobs=64"

a questo punto salvate il file e rigenerate il grub per applicare le modifiche con il seguente comando

sudo update-grub

riavviate il PC e finalmente la tastiera funzionerà correttamente.

 

SOLUZIONE ALTERNATIVA

Se proprio non potete fare a meno del led che segnala lo stato di caps lock, potete usare una soluzione intermedia, che risolve parzialmente il problema, ma lascia funzionanti i led.

 

al posto del parametro

i8042.dumbkbd

dovete passare la kernel i seguenti parametri

i8042.nomux=1 i8042.reset i8042.direct

In questo modo il controller sarà in grado di accedere il led nel tasto block maiusc, però ogni volta che premerete il tasto block maiusc o block num, si ripresenterà il problema per un paio di secondi dalla pressione di questi tasti (poi scomparirà subito).

 

Io sinceramente ho preferito avere il led non funzionante, ma aver “risolto completamente” il problema del mio HP Pavilion.

 

AGGIORNAMENTO

Come mi è stato segnalato su launchpad, il problema è causato dal BIOS, e con l’ultima versione (F.41) il problema è stato risolto.

Quindi basta andare nel sito di HP, cercare i driver/software per il giusto modello del notebook, e scaricare il BIOS aggiornato (io ho testato la versione F.41 di ottobre 2016, attualmente l’ultima, e il problema è sparito).

Una volta scaricata la nuova versione del BIOS, dovrete installarla (da Windows), terminata la procedura, finalmente la tastiera funzionerà come si deve, quindi potete anche togliere l’opzione

i8042.dumbkbd

e quindi anche il LED del CAPS LOCK tornerà a funzionare.