Come aggiornare il kernel all'ultima versione mainline senza alcun aggiornamento Distro?


146

Attualmente sto eseguendo Linux-3.0 e voglio aggiornarlo a Linux-3.3.1 l'ultima versione stabile del kernel come menzionato su http://www.kernel.org . Posso aggiornare a 3.3.1 in Ubuntu senza alcun rischio di crash? Sto aggiornando il mio kernel regolarmente come fornito da Update Manager .. Attualmente ho Linux- 3.0.0.17 .. Posso aggiornare?

NOTA:

L'ultima versione del kernel che qualsiasi utente dovrebbe utilizzare in Ubuntu viene aggiornata automaticamente tramite Update Manager, quindi l'utente non richiede normalmente azioni per quanto riguarda gli aggiornamenti del kernel. A cosa si riferisce l'autore della domanda è il kernel mainline , vedi: Devo aggiornare ai kernel "mainline"?


Risposte:


121

Il set più semplice di istruzioni che ho sempre usato per l'aggiornamento / il downgrade del kernel sono dell'utente ubuntuforums.org con il nome di lykwydchykyn (URL modificato da me per questo post):

  1. Vai qui: http://kernel.ubuntu.com/~kernel-ppa/mainline/
  2. Scarica 3 (forse 4) debs in una cartella da qualche parte:

    linux-headers-VERSION-NUMBER_all.deb
    linux-headers-VERSION-NUMBER_amd64.deb
    linux-image-VERSION-NUMBER_amd64.deb
    linux-image-extra-VERSION-NUMBER_amd64.deb   # if available
    
  3. Installa i debs con qualunque front-end del gestore pacchetti che usi (gdebi è ancora in giro?), Oppure usa questi comandi:

    cd /path/to/folder/where/you/put/the/debs
    sudo dpkg -i *.deb
    

fonti:


3
per esempio qui trovi due versioni per ogni architettura: lowlatencye generic, quale prendere? kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty
rubo77

Senza fortuna. Venivo dal kernel a bassa latenza Utopic a 64 bit (3.16.0-31) nel repository standard. Ho eseguito l'aggiornamento a v3.16.7-ckt8 (linux-image-3.16.7-031607-lowlatency_3.16.7-031607.201503111033_amd64.deb) che è in esecuzione ma ancora nessun trackpad. Questo è per un Acer C710.
Ubuntourist,

Ho avuto problemi con il touchpad. Il mio BIOS predefinito era impostato sulla modalità avanzata. Dice che nel bios potrebbero esserci problemi usando la modalità avanzata senza un driver. Tuttavia la modalità di base funziona bene in Ubuntu. Sfortunatamente, la modalità di base funziona in modo terribile in Windows! Spero che questo aiuti in modo semplice.
Bhikkhu Subhuti

1
Per completezza, oltre ai passaggi di @ Bucic - (4) accetta il nuovo boot loader grub (1a opzione). Questo è probabilmente ciò di cui la maggior parte delle persone ha bisogno. Se vuoi vedere esattamente cosa cambia, fai un confronto per verificare, ma probabilmente riscriverà il tuo file conf di Grub con le nuove informazioni del kernel che desideri. (5) riavvio. Inoltre, questa è la strada molto più sicura, che sarà anche aggiornare la propria versione di Linux: sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot. In entrambi gli scenari, dopo il riavvio, eseguire echo $(uname -r)per confermare che si è avviato correttamente nel nuovo kernel.
Manuel J. Diaz,

1
@ rubo77 su lowlatency vs generico: askubuntu.com/questions/126664/…
Noremac,

70

Puoi sempre fare quanto segue:

apt-cache search linux-image

Scegli quello che vuoi e poi fai:

sudo apt-get install linux-image-your_version_choice linux-headers-your_version_choice linux-image-extra-your_version_choice

4
Ciò non darebbe un kernel mainline ; piuttosto, darebbe una build Ubuntu (del numero di versione specificato).
Eliah Kagan,

14
Probabilmente meglio che andare con un mainline però, poiché è stato massaggiato per il sistema operativo di destinazione.
cambio rapido

Ha funzionato come un fascino in Debian 8. Grazie!
GTodorov,

9
non dimenticare di installare anche le intestazioni del kernel: sudo apt-get install linux-headers- [versione] -generic. [versione] dovrebbe essere la stessa della versione del kernel
mauek unak

1
Questa voce dovrebbe essere cambiata in modo da indicare all'utente di installare il pacchetto linux-image-extra perché senza di essa alcune cose potrebbero non funzionare - come una tastiera USB che usi per inserire la password per decrittografare il tuo disco.
Wojci,

24

La mia risposta è: SÌ, puoi. La versione stabile era 3.4, ma in questo tutorial uso 3.3.1.

Ubuntu (32 bit) PAE generico:

Esegui i seguenti comandi:

mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb
sudo dpkg -i linux-*.deb 
sudo update-grub
sudo reboot now

Ubuntu (64 bit):

Esegui i seguenti comandi:

mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb
sudo dpkg -i linux-*.deb 
sudo update-grub
sudo reboot now

Godere!


installo il kernel 3.8.5-raring come hai detto sul mio Ubuntu 12.04. ma ora il mio sistema operativo non funziona e non c'è alcun menu cli o grub. solo pensando.
shgnInc,

Buono ma deve essere aggiornato. Consiglio di trovare la versione e quindi google come installarla. Fai clic sulle pagine fino a trovare qualcosa del genere. Per rc6 ho trovato questo yourownlinux.com/2016/03/…
Bhikkhu Subhuti

12

Contrariamente ad alcune risposte qui Ubuntu rilascia il nuovo kernel entro un giorno o due dal team del kernel principale. Ho usato per aggiornare nel modo più duro come suggerito da alcune delle risposte qui, ma ho scoperto che questo è un modo più semplice.

Implicazioni dell'installazione manuale dei kernel

L'installazione manuale dei kernel richiede un lavoro extra.

Ci sono ragioni per cui vuoi installare l'ultimo kernel mainline:

  • Un bug nell'ultimo aggiornamento del kernel Ubuntu LTS e non è possibile effettuare il downgrade
  • Il nuovo hardware non è supportato nel flusso di aggiornamento del kernel LTS Ubuntu corrente o negli aggiornamenti HWE
  • Volete un aggiornamento di sicurezza o una nuova funzionalità disponibile solo nell'ultima versione del kernel mainline.

A partire dal 15 gennaio 2018 è l'ultimo kernel mainline stabile 4.14.13. Al momento in cui scriviamo, molti sono interessati a installarlo per proteggersi dalle falle di sicurezza di Meltdown. Se scegli di installarlo manualmente dovresti sapere:

  • I kernel LTS precedenti non verranno aggiornati fino a quando non saranno maggiori della prima opzione del menu principale denominata Ubuntu .
  • I kernel installati manualmente non vengono rimossi con il solito sudo apt auto-removecomando. Devi seguire questo: Come rimuovo le vecchie versioni del kernel per pulire il menu di avvio?
  • Monitora gli sviluppi nei kernel più vecchi per quando vuoi tornare al normale metodo di aggiornamento del kernel LTS. Quindi eliminare il kernel della linea principale installato manualmente come descritto nel collegamento precedente al punto elenco.
  • Dopo aver rimosso manualmente l'ultima versione del kernel mainline sudo update-grube l'ultimo kernel LTS di Ubuntu sarà la prima opzione chiamata Ubuntu nel menu principale di Grub.

Trovare l'ultimo kernel

Vai a ( kernel.ubuntu.com - Kernel PPA Mainline ) e premi il Endtasto:

Mainline kernel 1

Ora fai clic sul collegamento 4.9.8(o su uno più recente se disponibile quando leggi questo) e verrà visualizzato quanto segue:

kernel mainline 2

Nota i collegamenti con i segni neri dell'aerografo. Questi sono i tre che verranno scaricati per Ubuntu 16.04 64-Bit utilizzando processori Intel o AMD .

Installazione tramite terminale

Apri una sessione terminale con Ctrl+ Alt+ Te usa:

cd ~/Downloads # Change to your downloads directory
ll linux*.deb  # Check if any previous downloads still exist
rm linux*.deb  # Use this command if any previous downloads found

Ora torna alla schermata di download in alto e fai clic su tutti e tre i .debdownload del kernel. Una volta completati i download (vedrai lo stato nel tuo browser) torna alla sessione terminale e usa:

sudo dpkg -i linux*.deb
rm linux*.deb
sudo reboot

Ecco! - stai eseguendo l'ultimo kernel quando è selezionata la prima opzione nel menu di avvio di grub. Le versioni del kernel precedenti sono ancora disponibili nel menu Opzioni avanzate di grub .

Dopo aver installato il kernel più recente una dozzina di volte, farai la domanda " Come rimuovo le versioni più vecchie del kernel? " E troverai le risposte qui in Chiedi a Ubuntu .


Dovresti rispondere a questo dicendo "Non complicare la tua vita".
Fabby,

9

risposta in ritardo ma nuova.

Aggiungerò alcune ulteriori informazioni nella mia risposta. Ora il mio vecchio kernel era linux-headers-4.8.0-53. Per scoprire quale kernel hai digitato uname -rnel terminale. Adesso digita questo comando per ottenere l'elenco dei kernel disponibili.

apt-cache search linux-image

questo ti darà un output molto grande. Ora scegli uno di quelli che vuoi installare e installalo seguendo i comandi (Non digitare questi comandi in questo modo, sostituisci la parola kernal_version con la versione del kernel che desideri installare)

sudo apt-get install linux-image-kernal_version
sudo apt-get install linux-image-extra-kernal_version
sudo apt-get install linux-headers-kernal_version

Ora nel mio caso scelgo, linux-image-4.10.0-22-genericquindi il mio comando sarà simile a questo

sudo apt-get install linux-image-4.10.0-22-generic 
sudo apt-get install linux-image-extra-4.10.0-22-generic
sudo apt-get install linux-headers-4.10.0-22-generic

ora alla fine rimuovere il vecchio kernel con il comando

sudo apt-get autoremove

Ora, quando l'ho fatto per la prima volta, non so se è un mio problema hardware o a causa della rimozione del vecchio kernel, ma il mio laptop mi mostra uno schermo nero che succede a volte al mio laptop. Quindi rimuovo la batteria e riavviato e ho digitato il comando Inoltre, non soffro più del mio problema con lo schermo nero .

uname -r

e mi dà

linux-image-4.10.0-22-generic

il che significa che il kernel è aggiornato.


3
Il tuo problema con la schermata nera potrebbe essere dovuto al fatto che hai rimosso il kernel in uso. Dopo aver installato il nuovo kernel, è necessario riavviare. Quindi rimuovere il vecchio kernel.
Ravery

Bella risposta. Anche se le cose sono cambiate un po 'ora, ho dovuto cambiare linux-image-extrain linux-modules-extraper la versione 4.18.0-22-genericper fare questo lavoro.
Deerchao,

7

C'è un modo molto più semplice per farlo, ed è il modo in cui lo uso. Basta scaricare lo script Ubuntu Mainline Kernel Updater ed eseguirlo da un terminale. Scaricherà i .deb per te, installerà il nuovo kernel e, facoltativamente, rimuoverà quello vecchio (non raccomandato), quindi facoltativamente riavvia.

Esempio di output (copiato dal mio terminale):

evilsupahfly@the-black-beast:~$ sudo KernelUpdateChecker -no-rc -r utopic
Run this command to install the new kernel
/tmp/kernel-update
root@the-black-beast:~# /tmp/kernel-update
Config Notes:
Rejecting Release Candidates
Accepting Latest Kernel
Accepting kernels compiled for utopic
Accepting kernels with a version higher than 3.15.0-031500-lowlatency

Information:
Origin: 
    http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15.1-utopic
Kernel Version:
    3.15.1-031501
Release Date:
    2014/06/16 @ 18:41 (YYYY/MM/DD @ HH:MM)

Care to look at the change log? (y=Yes, n=No) (n)

(download output skipped)    

Greetings root
    I (the-black-beast) am now self aware and a sentient being, have a nice day.
    Oh and by the way SKYNET is now active.

Installing Linux 3.15.1-031501:

(installer output skipped)

The New Kernel looks to have been installed

WARNING: If the new kernel does not boot you may regret saying yes here.
Would you like to remove the current one? (y=Yes, n=No) (n): n

Are you ready to Reboot? (y=Yes, n=No) (n): n

Quasi interamente automatizzato e completamente privo di problemi.


6

Ho scritto una sceneggiatura e sarò sempre aggiornato.

ukupgrade: aggiornamento del kernel di Ubuntu

  • Apri il tuo terminale preferito ed esegui i seguenti comandi
  • Autorizza file eseguibili

    chmod +x ./ukupgrade

  • Chiama lo script

    ./ukupgrade


1
questo è stato il migliore.
Ali,

continua a installare la versione a bassa latenza quando si richiede ~
user2413

Non sapevo di questo strumento, quindi ho anche scritto uno strumento simile, che supporta anche la selezione del sapore generico / a bassa latenza. Puoi trovarlo qui: github.com/cristim/kernel-update
Cristian Măgherușan-Stanciu

6

Esegui i seguenti comandi di Terminale per installare un nuovo kernel mainline di Ubuntu .

sudo apt-get update
sudo apt-get install python-bs4 python-apt
cd /tmp
rm -rf medigeek-kmp*
wget https://github.com/medigeek/kmp-downloader/tarball/master -O kmpd.tar.gz
tar xzf kmpd.tar.gz
cd medigeek-*
python kmpd.py -d

Lo script è ospitato su Github . Premi Enterinvece di un numero se rimani bloccato su una determinata domanda nello script Python.


3
Sono l'autore di quella sceneggiatura. L'ho appena risolto. Si prega di presentare segnalazioni di bug, la maggior parte delle volte i programmatori non sanno che esistono bug finché qualcuno non presenta una segnalazione. :)
Savvas Radevic,

Qual è il vantaggio del tuo script nel fare semplicemente l'installazione del debpacchetto come descritto dalla migliore risposta qui?
rubo77,

Stavo pensando a questo tipo di strumento da quando mi sono schiantato perché apt non ha installato dipendenze per me. Penseresti che apt riguardasse le dipendenze. Sbagliato. Uno script può essere aggiornato per l'ultima versione o cercarne uno e lasciare all'utente la scelta. Detto questo, se avrò di nuovo il mio sistema, andrò direttamente poiché ho trovato i comandi del terminale per rc6
Bhikkhu Subhuti

@SavvasRadevicImportError: No module named apt_pkg
Yahya

1
@SavvasRadevic L'ho già fatto, ma ho appena riferito come da tua richiesta.
Yahya,

5

Se non vuoi passare attraverso la seccatura per aggiornare manualmente il kernel puoi provare UUKU. Funziona bene anche su derivati ​​Ubuntu come elementory, mint.

L'ho usato per risolvere il mio problema WiFi poiché a volte alcuni nuovi hardware non vengono rilevati dal vecchio kernel. Oltre all'aggiornamento del driver hardware non trovo la necessità di aggiornare il kernel. I nuovi kernel hanno sicurezza e un leggero aggiornamento delle prestazioni, ma hanno anche la tendenza a rompere cose come la tua VM.

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install ukuu
ukuu-gtk

FONTE:

http://www.makeuseof.com/tag/upgrade-kernel-ukuu-ubuntu/

http://www.teejeetech.in/2016/07/ukuu-v167.html?m=1


3

Un'altra opzione è provare build personalizzate e ottimizzate, come questo kernel 3.2.1 ottimizzato i3 / i5 / i7 per Ubuntu:

DuoPetalFlower, I miei esperimenti con Linux - 3.2.1 kernel

Ha anche build Intel Atom ottimizzate che possono funzionare abbastanza bene se stai cercando di spremere fino all'ultima oncia di prestazioni da un netbook.

Esistono altri kernel come Liquorix che affermano di essere ottimizzati meglio per le prestazioni del desktop.

Sebbene non sia raccomandato da alcuni, puoi spesso eseguire kernel ufficiali da versioni successive di Ubuntu senza problemi. Attualmente sto eseguendo il kernel 3.3.3 preciso su oneiric e la mia macchina funziona meglio che mai. Le prestazioni e la durata della batteria sono aumentate, mentre le temperature sono scese di alcuni gradi. Anche il mio problema di schermo nero quando si riprende dallo standby è scomparso. Anche se personalmente non ho avuto problemi con l'utilizzo di kernel più recenti, troverete alcune persone che sono fortemente contrarie a farlo.


2

Come hai visto, Ubuntu fornisce versioni del kernel Linux, ma non sempre così velocemente come sono rilasciate a monte, puoi sempre compilare tu stesso il kernel 3.3.1, ma potrebbe essere più sforzo di quello che stavi cercando. Altrimenti, cerca in giro e sono sicuro che troverai un tutorial che puoi seguire come questo . (nota che non l'ho verificato a fondo quindi fai attenzione perché i kernel sono bestie pericolose)


2

Nessuna delle risposte precedenti ha soddisfatto il mio problema di aggiornare manualmente il kernel all'ultima versione stabile. (Il mio laptop attuale è molto sensibile agli RC, Dell XPS 9365).

Ho creato uno script shell che cerca le versioni più recenti del kernel e le mostra come opzioni da installare. Puoi provarlo, è su github , assicurati di leggere il file README.


2

Ho creato questo script kernel-upgrade.shche scarica e installa un kernel selezionato da http://kernel.ubuntu.com/~kernel-ppa/mainline :

TMP=/var/tmp/kernel
mkdir -p "$TMP" && cd "$TMP"
rm -f "$TMP"/*
F=v4.16-rc6
V=4.16.0-041600rc6
R=$(wget -qO - "http://kernel.ubuntu.com/~kernel-ppa/mainline/$F/0005-debian-changelog.patch" | sed -ne '/^+linux/{s/.*\.\([0-9]\+\)).*/\1/p;q}')
B="$V.$R"
URL=http://kernel.ubuntu.com/~kernel-ppa/mainline
set -x
wget "$URL/$F/linux-headers-$V-generic_${B}_amd64.deb" \
    "$URL/$F/linux-headers-${V}_${B}_all.deb" \
    "$URL/$F/linux-image-$V-generic_${B}_amd64.deb"
sudo dpkg -i "linux-headers-$V-generic_${B}_amd64.deb" \
    "linux-headers-${V}_${B}_all.deb linux-image-$V-generic_${B}_amd64.deb"
# now enter: sudo reboot now

Nel caso in cui Ubuntu non si avvii con il nuovo kernel, è possibile selezionare "impostazioni avanzate" nel menu di grub e selezionare per avviare l'ultimo kernel in esecuzione lì.


Nota: dalla 4.15-rc7 il kernel ha la correzione KPTI contro gli attacchi di fusione e dalla 4.15.1 per "Spectre Variant 2, Mitigation 2" (consultare http://github.com/speed47/spectre-meltdown-checker/ )


Ho qualche difficoltà nell'esecuzione di questo script. Potrei fare qualcosa di sbagliato, quindi ecco i miei passaggi: 1. Avvio protetto disabilitato nel BIOS, 2. salvato lo script in kernel-upgrade.she chmod 777 kernel-upgrade.sh. L'ho quindi eseguito come sudo ./kernel-upgrade.sh. Ottengo quindi gli errori rm: cannot remove '/var/tmp/kernel/*': No such file or directory:; quindi ++ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16...<troncamento dell'URL> `Collegamento a kernel.ubuntu.com (kernel.ubuntu.com) | 91.189.94.216 |: 80 ... connesso. Richiesta HTTP inviata, in attesa di risposta ... 404 Not Found` Il 404 accade 3x
Leftover Salad

il primo avviso di rmpotrebbe essere ignorato (l'ho aggiunto rm -fora). il resto non è chiaro, qual è il problema. troncare l'URL qui non aiuta, risolvendo il problema. puoi pubblicare l'output in pastebin.com , in modo che possiamo vedere quale sarà l'URL risultante?
rubo77,

certo, incollato qui pastebin.com/KcdVdKQr
Leftover Salad

anche se è importante, sto eseguendo Ubuntu 17.10
Leftover Salad

Ha detto che questo è il percorso sbagliato: kernel.ubuntu.com/~kernel-ppa/mainline/v4.16-rc6/… controlla questo per il percorso giusto: kernel.ubuntu.com/~kernel-ppa/mainline/v4. 16-rc6
rubo77,

2

per installare l'ultimo kernel installare Ubuntu Kernel Update Utility

$ sudo add-apt-repository ppa:teejee2008/ppa

$ sudo apt-get install ukuu

disabilitare il controllo di accesso con il seguente comando:

$ sudo xhost +

quindi installare con ukuu

$ sudo ukuu

$ sudo ukuu --install-latest

quindi corri per sicurezza

$ sudo xhost -

e riavviare

$ sudo reboot

se vuoi vedere un elenco di tutte le versioni del kernel usa 'sudo ukuu --list'.
Vitaliy LiBrus,

se vuoi vedere altre opzioni di ukuu digita 'ukuu --help'
Vitaliy LiBrus

Non dovresti farlo sudo xhost -dopo aver finito? (confronta: github.com/teejee2008/ukuu/issues/25#issuecomment-341501666 )
studente

@studente, sì, grazie! L'ho aggiunto all'elenco dei passaggi
Vitaliy LiBrus,

0

Controlla la tua versione del kernel $ uname -sr

Scarica Kernel v5 per 32 bit

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb

Scarica Kernel v5 per 64 bit

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb

Installalo

$ sudo dpkg -i *.deb

Quindi riavviare

sudo reboot

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.