
Dopo che è stata rilasciata una versione regolare di Ubuntu, di solito non riceve nuovi aggiornamenti importanti della versione del kernel. Per le versioni LTS, come Ubuntu 18.04, ci sono LTS Enablement Stacks che forniscono aggiornamenti del kernel e Xorg più recenti, ma ci vuole un po ‘di tempo prima che vengano rilasciati. Ad esempio, Ubuntu 18.04 dovrebbe ricevere un kernel aggiornato intorno a febbraio 2019. Se vuoi installare un kernel più nuovo di quello disponibile in Ubuntu per motivi come alcune nuove funzionalità importanti, un migliore supporto hardware, o nel caso in cui risolvono alcuni problemi critici che stai riscontrando con il kernel predefinito di Ubuntu, come alcuni dispositivi che non funzionano, è possibile utilizzare il PPA del kernel principale.
Questo non è un vero e proprio PPA che puoi aggiungere al tuo sistema come un PPA Launchpad e, invece, devi scaricare e installare manualmente i pacchetti DEB. Per rendere questo processo più semplice e opzionalmente essere avvisati quando sono disponibili nuovi kernel nel PPA Mainline, ci sono vari strumenti che puoi usare e questo articolo presenta due di questi strumenti, uno che usa un’interfaccia grafica e un altro che può essere usato dalla riga di comando. Entrambe le utilità supportano non solo Ubuntu, ma anche distribuzioni Linux basate su Ubuntu come Linux Mint.
ATTENZIONE – Leggere prima di aggiornare il kernel Prima di installare qualsiasi cosa dovresti sapere che di solito non è una buona idea installare un kernel mainline sulla tua macchina Ubuntu. Questi kernel sono creati dalle più recenti fonti Linux, senza patch di Ubuntu o altre modifiche e non sono supportati.
Inoltre, l’installazione di un kernel dal PPA del kernel Mainline interrompe in genere i driver proprietari o i moduli fuori-albero, come i driver grafici Nvidia proprietari, i driver wireless Broadcom, il modulo dkms di VirtualBox e così via. Di conseguenza, il tuo computer potrebbe avviarsi su una schermata nera, potresti riscontrare blocchi casuali e/o il tuo WiFi potrebbe non funzionare dopo l’installazione e l’avvio su un kernel mainline. Ad esempio, ho installato l’ultima versione di Linux 4.19 pur avendo installato i driver di grafica Nvidia 396.54 e il modulo Nvidia non è riuscito a compilare. Fortunatamente, Nvidia Graphics PPA ha una versione più recente dei driver che supporta Linux 4.19 – Nvidia 410, quindi l’ho installato per risolvere il problema. Ma se Nvidia 410 non fosse stato rilasciato o se la mia scheda grafica non avesse supportato l’ultima versione dei driver dal PPA, il mio computer si sarebbe avviato a uno schermo nero usando il kernel 4.19 (o avrei dovuto rimuovere i driver proprietari di Nvidia e utilizzare invece Nouveau).
Detto questo, usa questi strumenti per installare il kernel più recente dal PPA del kernel di Ubuntu a tuo rischio!
Aggiorna il kernel in Ubuntu o Linux Mint usando una utility GUI chiamata Ukuu

Ukuu, o Ubuntu Kernel Update Utility, è uno strumento per installare l’ultimo kernel mainline su distribuzioni basate su Ubuntu. L’applicazione mostra l’elenco dei kernel disponibili nel PPA Mainline di Ubuntu, consentendo agli utenti di scaricare e installare facilmente la versione desiderata. Usandolo, puoi anche rimuovere un kernel mainline installato usando questa utility, così come vedere le modifiche in una versione del kernel. Può anche visualizzare notifiche quando sono disponibili nuovi kernel, e può modificare il timeout del menu di GRUB dalle sue impostazioni, utile nel caso in cui si voglia utilizzare un kernel precedente nel caso ci sia un problema con un kernel appena installato. Ukuu può essere scaricato dalla sua pagina del progetto, oppure può essere installato usando un PPA:
sudo apt-add-repository -y ppa:teejee2008/ppa sudo apt update sudo apt install ukuu
Ora è possibile avviare Ukuu, selezionare la versione di Linux che si desidera installare e fare clic sul pulsante Installa. Apparirà una nuova finestra che mostra cosa sta succedendo sotto il cofano, come scaricare i kernel deb e installarli:

Aggiorna il kernel in Ubuntu o Linux Mint dalla riga di comando usando ubuntu-mainline-kernel.sh
ubuntu-mainline-kernel.sh è uno script di Bash per installare facilmente i kernel dal PPA del kernel di Ubuntu. Lo strumento da riga di comando consente anche di rimuovere i kernel installati dal PPA del kernel di Ubuntu, può controllare se è disponibile una nuova versione del kernel, elencare le versioni del kernel installate localmente e cercare ed elencare le versioni del kernel disponibili. Può anche solo scaricare i file deb, senza installarli. Inoltre, rispetto a Ukuu, questo strumento consente anche di installare la versione a bassa latenza (questo riduce la latenza ed è utile ad esempio per la registrazione audio, ma sacrifica il risparmio energetico) , disponibile solo per amd64 e i386, nonché installa il kernel Large Physical Address Extension, che è disponibile solo per armhf. Come regola generale, ti consiglio di verificare il codice utilizzato in questo script e qualsiasi altro script che esegui sul tuo sistema e di eseguirli solo se hai almeno una conoscenza di base di ciò che fanno. È possibile installare lo script ubuntu-mainline-kernel.sh in /usr/local/bin/ utilizzando questi comandi:
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
Il progetto ubuntu-mainline-kernel.sh include anche un file desktop che è possibile aggiungere all’avvio, per verificare automaticamente se c’è una nuova versione del kernel quando si effettua l’accesso. Questo è opzionale e se si desidera questa funzione, è possibile installarla utilizzando questi comandi (è necessario libnotify-bin per mostrare le notifiche del desktop quando è disponibile una nuova versione):
sudo apt install libnotify-bin wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/UbuntuMainlineKernel.desktop mv UbuntuMainlineKernel.desktop ~/.config/autostart/
Ora puoi iniziare a usare ubuntu-mainline-kernel.sh. Controlla l’ultima versione del kernel disponibile dal PPA del kernel di Ubuntu usando -c:
ubuntu-mainline-kernel.sh -c
Per installare una versione del kernel, usa la versione -i, ad es. -i 4.9, come questo:
sudo ubuntu-mainline-kernel.sh -i 4.9
Oppure usa semplicemente -i per installare l’ultima versione disponibile. Ecco come appare:
$ sudo ubuntu-mainline-kernel.sh -i
Finding latest version available on kernel.ubuntu.com
Latest version is: v4.19.0, continue? (y/N)
Will download 6 files from kernel.ubuntu.com:
Downloading CHECKSUMS: 100%
Downloading CHECKSUMS.gpg: 100%
Downloading linux-headers-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-headers-4.19.0-041900_4.19.0-041900.201810221809_all.deb: 100%
Downloading linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Signature of checksum file has been succesfully verified
Checksums of deb files have been succesfully verified with sha256sum
Installing 4 packages
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.19.0-041900-generic
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-041900-generic
Found initrd image: /boot/initrd.img-4.19.0-041900-generic
Found linux image: /boot/vmlinuz-4.18.0-10-generic
Found initrd image: /boot/initrd.img-4.18.0-10-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Cleaning up work folder
Tutte le opzioni disponibili:
ubuntu-mainline-kernel.sh -h
Usage: /usr/local/bin/ubuntu-mainline-kernel.sh -c|-l|-r|-u
Download & install the latest kernel available from kernel.ubuntu.com
Arguments:
-c Check if a newer kernel version is available
-i [VERSION] Install kernel VERSION, see -l for list. You dont have to prefix
with v. E.g. -i 4.9 is the same as -i v4.9. If version is
omitted the latest available version will be installed
-l [SEARCH] List locally installedkernel versions. If an argument to this
option is supplied it will search for that
-r [SEARCH] List available kernel versions. If an argument to this option
is supplied it will search for that
-u [VERSION] Uninstall the specified kernel version. If version is omitted,
a list of max 10 installed kernel versions is displayed
-h Show this message
Optional:
-s, --signed Only install signed kernel packages (not implemented)
-p, --path DIR The working directory, .deb files will be downloaded into
this folder. If omitted, the folder /tmp/ubuntu-mainline-kernel.sh/
is used. Path is relative from $PWD
-ll, --low-latency Use the low-latency version of the kernel, only for amd64 & i386
-lpae, --lpae Use the Large Physical Address Extension kernel, only for armhf
-do, --download-only Only download the deb files, do not install them
-ns, --no-signature Do not check the gpg signature of the checksums file
-nc, --no-checksum Do not check the sha checksums of the .deb files
-d, --debug Show debug information, all internal command's echo their output
--rc Also include release candidates
--yes Assume yes on all questions (use with caution!)
Come recuperare il sistema da un’installazione del kernel non funzionante
Nel caso in cui il tuo computer si avvii su una schermata nera, si blocca o qualcosa non funziona dopo aver aggiornato il kernel, riavvia e seleziona Opzioni avanzate per Ubuntu dal menu di GRUB:

Quindi seleziona la versione precedente del kernel e premi Invio:

Non importa il motivo, dovrai avviare una versione precedente del kernel se vuoi disinstallare il kernel più recente. Questo perché non è possibile rimuovere un kernel attualmente in uso. Se non riesci a vedere il menu di GRUB2, tieni premuto il tasto Maiusc o premi ripetutamente il tasto Esc (questo può variare a seconda del boot del BIOS o UEFI e della versione di Ubuntu/Linux Mint che stai utilizzando) quando viene caricato GRUB. Il menu Grub dovrebbe apparire, permettendoti di selezionare la versione precedente del kernel. Come nota a margine, Ukuu può impostare il menu di GRUB per essere visualizzato durante l’avvio senza dover premere alcun tasto, impostando il timeout del menu di GRUB nelle sue impostazioni. Dopo l’avvio al kernel precedente, è possibile rimuovere il kernel difettoso. Sia Ukuu che ubuntu-mainline-kernel.sh consentono di rimuovere i kernel installati dal PPA del kernel di Ubuntu. Per rimuovere un kernel usando Ukuu, selezionare la versione di Linux che si desidera rimuovere e fare clic sul pulsante Rimuovi. Con ubuntu-mainline-kernel.sh, puoi disinstallare una versione del kernel eseguendo:
ubuntu-mainline-kernel.sh -u VERSION
Dove versione è la versione del kernel, ad es. 4.9. Puoi anche eseguirlo con -u senza specificare una versione, in quel caso lo strumento elencherà fino a 10 versioni del kernel e ti chiederà quale rimuovere. Vale la pena notare che ubuntu-mainline-kernel.sh non elenca i kernel ufficiali di Ubuntu.