web analytics

Kernel Update in Linux Mint/Ubuntu

Print Friendly, PDF & Email

Een kernel update doe je niet zomaar. Al zijn er voordelen aan het binnenhalen van een nieuwere kernel het blijft altijd een riskante onderneming.
Het is dus aan jou, de gebruiker, om te beslissen of je naar een nieuwere kernel wenst te upgraden of niet.

Op het einde van deze post toon ik hoe je GRUB kan aanpassen zodat je toch een oudere kernel kan opstarten indien de update naar een recentere kernel, je systeem plat legt.

kernel.org

Draai je een Linux distro, dan heb je onderliggend de Linux kernel die je het werken op je systeem mogelijk maakt. Er komen regelmatig nieuwere versies uit van de kernel. Op de site https://www.kernel.org/ kan je de lijst van kernels terugvinden. Op 03/03/2016 is de kernel 4.4.4 de meest recente, stabiele kernel.

Kernel overzichtWelke kernel draai jij op je systeem?

Om te weten welke kernel je draait op je systeem, open je een terminal en geef je volgende commando in:

$ uname -r

Je ziet dan je kernel versie (zoals hieronder op mijn desktop)

alain@desktop ~ $ uname -r
3.19.0-32-generic

Waar je ook kan zien welke kernel je draait is in je Updatebeheer.
Start je updatebeheer en selecteer de optie Linuxkernels onder het menu Tonen.

Linuxkernels menuDan wordt het volgende venster getoond:

LinuxkernelsZoals je hierboven merkt, is bij mij momenteel kernel 3.19.0-32 geïnstalleerd maar er worden nog andere kernels aangeboden . Door verder te scrollen in de lijst kan je zien welke de meest recente kernel is die je kan installeren en die is kernel 4.2.0-30

Meest recente kernelWanneer een nieuwere kernel installeren?

Aan de ene kant kan je zeggen ‘Mijn systeem draait lekker met de 3.19.0-32. Waarom een risico lopen en een recentere kernel installeren?’. Je hebt inderdaad een punt. ‘Never change a winning team’ dus.

Maar aan de andere kant moet je ook beseffen dat een nieuwere kernel extra mogelijkheden aanbiedt. Zo kan het zijn dat je wifi op je netbookje plots wel werkt, of dat je shutdown van je systeem nu wel alles netjes uitzet en niet meer blijft hangen.

De ‘changelog‘ naast iedere kernel op kernel.org geeft je een overzicht van de aanpassingen. Ok,  het is voer voor specialisten maar je ziet dat er bv:

Hardware/Driver aanpassingen gebeuren

commit 74e579764007b3ef63d791116c7d252e0032cc1e
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Tue Feb 2 15:11:15 2016 +0200

    iwlwifi: mvm: don't allow sched scans without matches to be started
    
    commit 5e56276e7555b34550d51459a801ff75eca8b907 upstream.
    
    The firmware can perform a scheduled scan with not matchsets passed,
    but it can't send notification that results were found.  Since the
    userspace then cannot know when we got new results and the firmware
    wouldn't trigger a wake in case we are sleeping, it's better not to
    allow scans without matchsets.
    
    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=110831
    
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 

of veiligheidsaanpassingen

commit e4a5a335105a557b5a78c1513650d1cf7c9f2edb
Author: Jann Horn <jann@thejh.net>
Date:   Wed Jan 20 15:00:01 2016 -0800

    security: let security modules use PTRACE_MODE_* with bitmasks
    
    commit 3dfb7d8cdbc7ea0c2970450e60818bb3eefbad69 upstream.
    
    It looks like smack and yama weren't aware that the ptrace mode
    can have flags ORed into it - PTRACE_MODE_NOAUDIT until now, but
    only for /proc/$pid/stat, and with the PTRACE_MODE_*CREDS patch,
    all modes have flags ORed into them.
    
    Signed-off-by: Jann Horn <jann@thejh.net>
    Acked-by: Kees Cook <keescook@chromium.org>
    Acked-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Wat kan een nieuwere kernel je opleveren?

Veiligheid

Quasi iedere nieuwe kernel update zal veiligheids aanpassingen hebben die veiligheidslekken zullen sluiten. Dat alleen al is een heel belangrijke reden om de kernel te updaten.

Stabiliteit

Naast veiligheids aanpassingen worden ook zaken bijgewerkt die kunnen leiden tot het crashen van de kernel bij gewoon gebruik. Sommigen beweren dat net de upgrade naar een nieuwere kernel de stabiliteit vermindert, omdat je met een kernel draait die je nog nooit gedraaid hebt en je dus niet van de veronderstelling mag uitgaan dat deze het evengoed zal doen als de vorige. Dat is gedeeltelijk waar, maar die kans is nogal klein en vooral zij die servers draaien moeten voorzichtig te werk gaan. Voor de meeste thuisgebruikers zijn de voordelen van de nieuwe kernel groter dan de nadelen van een mogelijks minder stabiel systeem.

Drivers update

Bovenstaande voordelen kom je meestal tegen bij ‘minor kernel updates’ (bv. van 3.0.18 to 3.0.19), maar bij ‘major updates’ (denk aan 3.0.19 naar 4.1.0) is de impact veel groter. Ten eerste garandeert iedere ‘major kernel update’  je de laatste open-source drivers voor je apparaten. Van al de bijgewerkte drivers zijn deze waarvan je het resultaat het meest zal opmerken, de grafische drivers. Je kan natuurlijk de bedrijfseigen – third-party – drivers installeren, maar bij iedere major kernel update worden de open-source drivers, beter en beter.

Nieuwe kernel functies

Bij bepaalde ‘major kernel updates’ komen er nieuwe functies. Dat zijn meestal onderdelen van de kernel die de bovenliggende software kan gebruiken. Het zou best kunnen dat een recente versie van een bepaald programma het niet doet met je huidige kernel maar dat na een kernel update je wel gebruik kan maken van het programma.

Betere performantie

Er wordt steeds gepoogd om de kernel sneller te laten werken door de onderliggende code in de kernel te optimalizeren.

Hoe de kernel installeren

Start updatebeheer en ga via het menu Tonen, naar de optie Linuxkernels.

Selecteer de kernel in de lijst die je wenst te installeren en klik op de knop ‘Installeer de xxxx kernel’, waarbij xxxx het nummer van de kernel is.

Install new kernelDe kernel wordt dan geïnstalleerd als eender welk ander programma

Pakketbestanden aan het ophalenNa de installatie van de nieuwe kernel, zal deze bij je eerstvolgende reboot opgestart worden.

En de vorige kernel dan?

De vorige kernel staat nog altijd op je harde schijf. Alleen is die niet geladen. En gelukkig dat de kernel daar nog staat, want moest er iets mis gaan met je nieuwe kernel en je systeem doet het niet meer, dan kan je mits wat aanpassen van configuratiebestanden van GRUB je oudere kernel terug gebruiken om te starten.

In het updatebeheer kun je zien dat je oude kernel nog geïnstalleerd is, maar niet geladen.

Vorige kernel

Herstarten

Wanneer je herstart zal je nieuwe kernel automatisch opgestart worden.

Je kan via de terminal of via het updatebeheer controleren of het wel de goede kernel is die draait.

alain@desktop ~ $ uname -r
4.2.0-30-generic

DE GUI uitdraai:

Nieuw kernel actiefWat als het misgaat?

Zomaar direct rebooten en je nieuwe kernel laden als je geen vangnet hebt kan soms wel slecht aflopen. Er kan vanalles misgaan zoals het niet meer naar je grafische omgeving kunnen gaan of een kernel panic (het equivalent van de BSOD bij Windows).

kernelpanicDan ben je verplicht om via de een tekst-editor je GRUB aan te passen. Dan kan je best voordien de onderstaande stappen ondernemen.

Grub aanpassen

We gaan twee aanpassingen doorvoeren:

  • Maken dat we GRUB altijd zien bij het booten
  • GRUB aangeven alle geïnstalleerde kernels te vertonen

Als de nieuwe kernel werkt, kan je deze aanpassingen gerust ongedaan maken.

Stap 1: Veiligheidskopie maken van het configuratiebestand

We gaan aanpassingen doorvoeren in het bestand /etc/default/grub. Alvorens we dat gaan doen, maken we een backup van het bestand.

$ sudo cp /etc/default/grub /etc/default/grub.old

Stap 2: Toon GRUB altijd bij het booten

Deze onderstaande aanpassing zal steeds GRUB vertonen bij het booten. Heb je een dual-boot systeem, dan doet GRUB dat al automatisch, maar toch kan het geen kwaad om die regel toe te voegen aan GRUB configuratiebestand. Je moet GRUB zien om tijdens het booten de goede kernel te kunnen selecteren.

Open het bestand /etc/default/grub als root met je favoriete teksteditor. Ik gebruik hier nano als editor.

$ sudo nano /etc/default/grub

Voeg onderstaande de lijn toe
GRUB_TIMEOUT_STYLE=”menu”

Edit /etc/default/grubStap 3: Toon alle geïnstalleerde kernels

Voeg onderstaande de lijn toe
GRUB_DISABLE_SUBMENU=y
Edit GRUB tweede aanpassing
Bewaar en sluit het bestand af.

Run vervolgens update-grub als root

$ sudo update-grub

update-grubJe merkt dat GRUB twee kernels detecteert, en dat de meest recente bovenaan staat en dus automatisch zal geladen worden.

Bij het booten ziet je GRUB scherm er dan zo uit. GRUB vertoont een lijst van al je kernels en je kan zelf dan de goede kiezen om op te starten.

grubNadien kan je via het updatebeheer de slechte/oudere kernel verwijderen.

1,362 totaal aantal vertoningen, 18 aantal vertoningen vandaag

Beoordeling

2 Reacties

  1. jacques peperstraete

    Zo hebben we weer wat bijgeleerd;

    Reageren
  2. Justo

    Ik heb de nieuwe kernel geinstalleerd,en JOEPIE,de wifi werkt nu,wat bij de vorige kernel niet het geval was.

    grtjs en bedankt.
    Justo

    Reageren

Geef een reactie

%d bloggers liken dit: