Kernel 3.12 frigivet - Installer og kompilér i Debian Linux


En af de største træk ved at bruge Linux er dens nemme tilpasning, og en af de sjoveste ting at tilpasse er selve kernen, hjertet i Linux-operativsystemet. Chancerne er, at du sandsynligvis aldrig behøver at kompilere din egen kerne. Den, der sendes med din distribution og opdateringer via dit pakkehåndteringssystem, er normalt god nok, men der er tidspunkter, hvor det kan være nødvendigt at kompilere kernen igen.

Nogle af disse grunde kan være specielle hardwarebehov, ønsket om at oprette en monolitisk kerne i stedet for en modulær en, optimere kernen ved at fjerne ubrugelige drivere, køre en udviklingskerne eller bare for at lære mere om Linux. I dette tilfælde vil vi kompilere en nyudgivet Kernel 3.12 på Debian Wheezy. Den nyligt udgivne Kernel 3.12 har flere nye funktioner, herunder nogle nye drivere til NVIDIA Optimus og Radeon Kernel Graphics Driver. Det tilbyder også enorme forbedringer af EXT4-filsystemet og nogle opdateringer til XFS og Btrfs.

Sådan kompileres og installeres Kernel 3.12 i Debian

For at komme i gang har vi brug for nogle pakker, nemlig fakeroot og kernepakke:

# apt-get install fakeroot kernel-package

Lad os nu hente en nyeste kilde tarball fra www.kernel.org, eller du kan bruge følgende wget-kommando til at downloade den.

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

Lad os nu pakke ud arkivet.

# tar -xvJf linux-3.12.tar.xz

Efter udpakningen oprettes en ny kernekildekatalog.

# cd linux-3.12

Nu vil vi konfigurere kernen. Det er bedst at starte med en konfiguration, som du bruger i øjeblikket, og arbejde derfra. For at gøre dette kopierer vi den aktuelle konfiguration fra/boot-biblioteket til den aktuelle arbejdsmappe og gemmer den som .config.

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

For at starte med den faktiske konfiguration har du en af to muligheder. Hvis du har X11 installeret, kan du køre make xconfig og have en god GUI-menu til at hjælpe dig, når du konfigurerer din kerne. Hvis du kører i et CLI-miljø, kan du køre make menuconfig. Du skal bruge libncurses5-dev-pakken installeret for at bruge menuconfig:

# apt-get install libncurses5-dev
# make menuconfig

Som du vil se, at når du er i den konfiguration, du vælger, er der masser af forskellige muligheder til rådighed for din kerne. Faktisk er der alt for mange til omfanget af denne vejledning. Når du vælger Kernel-indstillinger, er den bedste måde ved prøve og fejl og gør masser af googling. Det er den bedste måde at lære på. Hvis du simpelthen bare prøver at opdatere din kerne til den nyeste version, behøver du ikke ændre noget og kan blot vælge "Gem konfiguration". Da vi kopierede den aktuelle kernes konfigurationsfil til den nye kernels .config-fil.

Vær opmærksom på, at "Kernel module loader" er valgt i "Loadable module support". Hvis det ikke er tilfældet, og du bruger kernemoduler, kan det alvorligt ødelægge tingene.

Når det er lige, er det tid til at rense kildetræet.

# make-kpkg clean

Endelig er det tid til at opbygge kernepakken.

# 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 eksporteret en variabel kaldet CONCURRENCY_LEVEL. En generel tommelfingerregel med denne variabel er at indstille den som antallet af kerner, din computer har + 1. Så hvis du bruger en firkant, vil du:

# export CONCURRENCY_LEVEL=5

Dette vil i høj grad fremskynde din kompileringstid. Resten af kompileringskommandoen er ret selvforklarende. Med fakeroot laver vi kernepakker (make-kpkg), tilføjer en streng for at navngive vores kernel ("customkernel"), giver den et revisionsnummer ("1"), og vi fortæller make-kpkg at bygge begge en billedpakke og en headerpakke. Når kompileringen er færdig, og afhængigt af din maskine og antallet af moduler, du kompilerer, kan det tage lang tid, ændre kataloger til en tilbage fra Linux-kildekataloget, og du skal se to nye * .deb-filer - en linux-image-fil og en linux-headers-fil:

Du kan nu installere disse filer som om du ville installere enhver * .deb-fil med dpkg-kommando.

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

Da den nye kerne er en Debian-pakke, opdateres alt hvad du har brug for, inklusive bootloader. Når du er installeret, skal du blot genstarte og vælge den nye kerne i din GRUB/LiLO-menu.

Sørg for at være opmærksom på eventuelle fejlmeddelelser under opstartsprocessen, så du kan foretage fejlfinding af eventuelle problemer. Hvis dit system af en eller anden grund ikke starter, kan du altid falde tilbage til din sidste kerne og prøve igen. Den ikke-funktionelle kerne kan altid fjernes med apt-kommando.

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