Kernel 3.12 utgitt - Installer og kompiler i Debian Linux


En av de største trekkene ved å bruke Linux er den enkle tilpasningen, og en av de morsomste tingene å tilpasse er selve kjernen, hjertet av Linux-operativsystemet. Sjansen er stor for at du mest sannsynlig aldri trenger å kompilere din egen kjerne. Den som sendes med distribusjonen og oppdateringene via pakkehåndteringssystemet ditt er vanligvis god nok, men det er tider når det kan være nødvendig å rekompilere kjernen.

Noen av disse årsakene kan være spesielle maskinvarebehov, ønsket om å lage en monolitisk kjerne i stedet for en modularisert, optimalisering av kjernen ved å fjerne ubrukelige drivere, kjøre en utviklingskjerne, eller rett og slett for å lære mer om Linux. I dette tilfellet skal vi kompilere en nylig utgitt Kernel 3.12 på Debian Wheezy. Den nylig utgitte Kernel 3.12 har flere nye funksjoner, inkludert noen nye drivere for NVIDIA Optimus, og Radeon Kernel Graphics Driver. Det tilbyr også enorme forbedringer til EXT4-filsystemet, og noen oppdateringer til XFS og Btrfs.

Hvordan kompilere og installere Kernel 3.12 i Debian

For å komme i gang trenger vi noen pakker, nemlig fakeroot og kernel-package:

# apt-get install fakeroot kernel-package

La oss nå hente en siste kilde-tarball fra www.kernel.org, eller du kan bruke følgende wget-kommando for å laste den ned.

# wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz

La oss nå pakke ut arkivet.

# tar -xvJf linux-3.12.tar.xz

Etter utpakking vil en ny kjernekildekatalog bli opprettet.

# cd linux-3.12

Nå vil vi konfigurere kjernen. Det er best å starte med en konfigurasjon du bruker for øyeblikket og jobbe derfra. For å gjøre dette, kopierer vi gjeldende konfigurasjon fra /boot-katalogen til gjeldende arbeidskatalog og lagrer den som .config.

# cp /boot/config-`uname –r`.config

For å starte med selve konfigurasjonen har du ett av to alternativer. Hvis du har X11 installert, kan du kjøre make xconfig og ha en fin GUI-meny som hjelper deg når du konfigurerer kjernen. Hvis du kjører i et CLI-miljø, kan du kjøre make menuconfig. Du trenger libncurses5-dev-pakken installert for å bruke menuconfig:

# apt-get install libncurses5-dev
# make menuconfig

Som du vil se, når du først er i konfigurasjonen du velger, er det massevis av forskjellige alternativer tilgjengelig for kjernen din. Faktisk er det alt for mange for omfanget av denne opplæringen. Når du velger kjernealternativer, er den beste måten å prøve og feile, og å gjøre mye google. Det er den beste måten å lære på. Hvis du bare prøver å oppdatere kjernen til den nyeste versjonen, trenger du ikke å endre noe og kan ganske enkelt velge \Lagre konfigurasjon. Siden vi kopierte den gjeldende kjernens konfigurasjonsfil til den nye kjernens .config-fil.

Vær oppmerksom på at \Kernel modul loader er valgt i \Loadable modul support. Hvis det ikke er det, og du bruker kjernemoduler, kan det alvorlig rote ting til.

Når det er rett, er det på tide å rense kildetreet.

# make-kpkg clean

Endelig er det på tide å bygge kjernepakken.

# export CONCURRENCY_LEVEL=3
# fakeroot make-kpkg --append-to-version "-customkernel" --revision "1" --initrd kernel_image kernel_headers

Som du vil se ovenfor, har vi eksportert en variabel kalt CONCURRENCY_LEVEL. En generell tommelfingerregel med denne variabelen er å angi den som antall kjerner datamaskinen har + 1. Så hvis du bruker en firekjerner, vil du:

# export CONCURRENCY_LEVEL=5

Dette vil øke hastigheten på kompileringstiden din. Resten av kompileringskommandoen er ganske selvforklarende. Med fakeroot lager vi kjernepakker (make-kpkg), legger til en streng for å navngi kjernen vår (\customkernel), gir den et revisjonsnummer (\1) og vi ber make-kpkg bygge både en bildepakke og en overskriftspakke. Når kompileringen er fullført, og avhengig av maskinen din og antall moduler du kompilerer, kan det ta ganske lang tid, endre kataloger til en tilbake fra Linux-kildekatalogen, og du bør se to nye *.deb-filer – en linux-image-fil og en linux-header-fil:

Du kan nå installere disse filene som du ville installere en hvilken som helst *.deb-fil med dpkg-kommandoen.

# dpkg -i linux-image-3.12.0-customkernel_1_i386.deb linux-headers-3.12.0-customkernel_1_i386.deb

Den nye kjernen, siden det er en Debian-pakke, vil oppdatere alt du trenger, inkludert oppstartslasteren. Når den er installert, starter du ganske enkelt på nytt og velger den nye kjernen fra GRUB/LiLO-menyen.

Sørg for å følge nøye med på eventuelle feilmeldinger under oppstartsprosessen, slik at du kan feilsøke eventuelle problemer. Hvis systemet ditt av en eller annen grunn ikke starter opp, kan du alltid falle tilbake til den siste fungerende kjernen og prøve på nytt. Den ikke-funksjonelle kjernen kan alltid fjernes med apt-kommandoen.

# sudo apt-get remove linux-image-(non-working-kernel)