Inviato da Marco Brenna il Dom, 16/02/2020 - 18:23
Linux and AMD Ryzen

Ho spremuto il mio vecchio pc fino all'osso ed era giunta l'ora di cambiarlo; ho deciso così di passare da un processore Intel ad AMD... pessima mossa.

Non perchè i processori AMD non siano validi anzi, hanno un ottimo rapporto qualità prezzo ed hanno ormai colmato il gap tecnologico che Intel ha creato negli ultimi anni ma purtroppo hanno qualche piccola difficoltà con Linux.

Mi sono ritrovato con un processore AMD Ryzen di terza generazione ad avere blocchi continui, freeze, crash in idle insomma, di tutto.

Cercando su internet ho scoperto che Ubuntu 18.04 ha un Kernel di default che non supporta i nuovi processori AMD Ryzen. Ci sta in quanto la terza generazione di processori AMD non esisteva ancora nel 2018 ed i team di sviluppo si stanno concentrando sulla versione 5.5 del Kernel.

Per la cronaca, l'errore si mostrava spesso con la dicitura:

Failed to write reg 28b4 wait reg 28c6

In molti, prima dell'aggiornamento del kernel consigliavano di disabilitare il c state del processore e i p state. Il C state è lo stato idle del processore, quando è in uno stato di quiete e i p state sono gli stati relativi ad un carico basso medio e alto. Disabilitare il c state significava tenere sempre il processore "al massimo" o comunque in uno stato di alte performance aumentando così il consumo di batteria e diminuendo la longevità del nostro PC.

Non è quindi la soluzione migliore, non sto nemmeno a spiegarvi come si fa in quanto bisogna scaricare un software, installare pacchetti, avviare un modulo del kernel all'avvio, insomma, non qualcosa per tutti.

La soluzione ideale è arrivata semplicemente con l'aggiornamento al kernel Linux 5.5. Posso confermare che installando il Kernel 5.5.4 ad esempio, il problema si risolve e il vostro pc tornerà ad essere reattivo e senza crash continui.

Veniamo alla parte pratica:

Come fare ad aggiornare il kernel di Ubuntu ad una versione più recente

Ci viene in aiuto lo strumento di aggiornamento del kernel chiamato ukuu kernel update utility

Per prima cosa installiamolo:

sudo apt-get install ukuu

e lanciamolo:

ukuu

Vi verrà mostrata una pratica interfaccia utente dove installare il Kernel che preferite.

Selezionate l'ultima versione disponibile che inizi con 5.5 e premete il pulsante per installare il tutto.

Quando tutto è finito riavviate il pc ed i vostri problemi saranno finiti.... o forse no.

Per tornare al kernel precedente in caso di problemi potrete sempre premere il tasto "esc" al primissimo avvio del sistema, far apparire GRUB e, nell'avvio avanzato selezionare il vecchio Kernel.

Vi anticipo già che virtualbox e alcuni driver (nel mio caso la scheda wifi) smetteranno di funzionare.

Il motivo è che il sistema automatico di compilazione dei moduli del kernel DKMS andrà in errore di compilazione perchè la versione 5 del kernel è compilata con GCC 9 mentre voi avete installato sul vostro sistema GCC 7.

Anche per questa problematica esiste un workaround: forzare la compilazione di questi moduli con GCC 8 (presente nei repository) invece di utilizzare il 7 presente di default.

Questa però è tutta un'altra faccenda ed un altro articolo (che arriverà presto con le indicazioni su come fare).

Fatemi sapere se avete avuto questo problema e siete riusciti a risolverlo!

Marco Brenna

 

Aggiungi un commento

Solo ad uso interno per potervi rispondere, non verrà mostrato pubblicamente