Kernel tilpasning er ikke for alle. Vær opmærksom på, inden du prøver noget af det, at det kan ødelægge dit system.

Der er en masse grunde til, at du vil tilpasse din kerne. Det kan være nødvendigt at trimme din kerne til kun de nødvendige tjenester, især hvis du kører en server eller dedikeret enhed, der kun kræver det væsentlige. Du skal muligvis også patchere din kerne for at understøtte hardware, der ikke understøttes i øjeblikket med kernen du kører på.

Denne artikel forklarer ikke, hvordan du laver din kerne, bare hvordan du tilpasser din nuværende. Jeg har en anden opfølgningsartikel, der forklarer, hvordan du laver din kerne, og nogle praktiske grunde til, hvorfor du vil gøre det.

For at starte, skal vi finde ud af, hvilken version af kernen vi kører. Vi bruger kommandoen uname til det

$ uname -r

2.6.17-10-generic

Nu skal vi installere Linux-kilden til din kerne, bemærk at jeg kører 2.6.17-10 kernen, så installeringslinjen afspejler det. I denne artikel kan du erstatte kerne nummeret for det, du kører. Vi skal også installere curses biblioteket og nogle andre værktøjer til at hjælpe os med at kompilere.

sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot

Hvis du er nysgerrig, hvor Linux-kilden bliver installeret til, kan du bruge kommandoen dpkg til at fortælle filerne i en pakke. Her er output på mit system:

$ dpkg -L linux-source-2.6.17/./usr/usr/src/usr/src/linux-source-2.6.17.tar.bz2/usr/share/usr/share/doc/usr/share/doc/linux-source-2.6.17 (trimmed)

Vi kan se, at kilden er blevet installeret til / usr / src-mappen i en zip-fil.

For at gøre tingene nemmere, sætter vi os i root-tilstand ved at bruge sudo til at åbne en ny skal. Der er andre måder at gøre dette på, men jeg foretrækker denne måde.

sudo /bin/bash

Skift nu mappe til kildeplaceringen, så vi kan installere. Bemærk, at du måske skal installere bunzipværktøjet, hvis det ikke er installeret. (det var på min)

cd /usr/src

bunzip2 linux-source-2.6.17.tar.bz2

tar xvf linux-source-2.6.17.tar

ln -s linux-source-2.6.17 linux

Lav en kopi af din eksisterende kernekonfiguration til brug for den tilpassede kompileringsproces. Bemærk at `tegn er den ene under tilde ~

cp /boot/config-`uname -r` /usr/src/linux/.config

Nu vil vi starte programmet, som vil lade os tilpasse kernen:

cd /usr/src/linux

make menuconfig

Først skal du gå ned til Indlæse en alternativ konfigurationsfil, og indlæse .config-filen. (bare tryk enter)

Nu hvor vi er inde i hjælpeprogrammet, kan vi indstille mulighederne for vores brugerdefinerede kerne. Navigation er ret simpel, der er en legende på toppen, hvis du går tabt. Jeg besluttede at vælge netværk og trykke på Enter-tasten for at gå ned i denne kategori.

Amatørradio support? Hvad i helvede er det installeret til? Du bemærker ved * at den er indbygget i kernen.

Ved at trykke på? nøgle, vi kan se hjælpen til den pågældende vare. Her er forklaringen:

Nå, jeg skal deaktivere det med det samme. Hvorfor i alverden er det installeret i min kerne alligevel? Jeg rammer Esc for at forlade hjælpeskærmen og derefter trykke på N for at udelukke det fra min kerne.

Når du er færdig med at vælge det ønskede valg, skal du trykke på Afslut og gemme konfigurationen, når du bliver bedt om det.

Nu har vi en konfiguration klar til kompilering. Først vil vi gøre en ren ren, bare for at sikre, at alt er klar til kompilering.

make-kpkg clean

Næste vil vi faktisk kompilere kernen. Dette vil tage lang tid, så find noget interessant at lave.

fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

Denne proces vil oprette to .deb filer i / usr / src, der indeholder kernen. Linux-image **** -filen er det faktiske kernebillede, og den anden fil indeholder Du kan installere begge med dpkg. Filnavnet vil sandsynligvis være anderledes på dit system.

Bemærk, at når du kører disse kommandoer, sætter den den nye kerne som den nye standardkerne. Dette kunne bryde ting! Hvis din maskine ikke starter, kan du ramme Esc på GRUB-indlæsningsmenuen, og vælg din gamle kerne. Du kan derefter deaktivere kernen i /boot/grub/menu.lst eller prøv at kompilere igen.

dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

Genstart nu din maskine. Hvis alt fungerer, skal du køre din nye brugerdefinerede kerne. Du kan tjekke dette ved hjælp af uname. Bemærk, at det præcise nummer vil være anderledes på din maskine.

uname -r

2.6.17.14-ubuntu1-custom

Jeg har planer om at skrive en serie artikler om kernejustering, så abonner på RSS-feed til opdateringer.

Også, med henblik på fuld offentliggørelse, lærte jeg at gøre dette fra artiklen på HowtoForge, hvilket er et godt websted for nogle meget avancerede tutorials på Linux. Du skal bemærke, at mange af trinene i denne artikel er ens, selvom jeg forsøgte at gøre denne artikel mere "Ubuntu".

Top Tips:
Kommentarer: