Kernel tilpasning er ikke for alle. Vær oppmerksom på før du prøver noe av dette at det kan ødelegge systemet.
Det er mange grunner til at du vil tilpasse kjernen din. Du vil kanskje trimme kjernen til bare de nødvendige tjenestene, spesielt hvis du kjører en server eller dedikert enhet som bare krever det som er nødvendig. Du kan også trenge å lappe kjernen din for å støtte maskinvare som ikke støttes for øyeblikket med kjernen du kjører på.
Denne artikkelen vil ikke forklare hvordan du oppdaterer kjernen din, bare hvordan du tilpasser den nåværende. Jeg har en annen oppfølgingsartikkel som forklarer hvordan du oppdaterer kjernen din, og noen praktiske grunner til at du vil gjøre det.
For å starte, må vi finne ut hvilken versjon av kjernen vi kjører. Vi bruker uname kommandoen for det
$ uname -r
2.6.17-10-generic
Nå må vi installere Linux-kilden for kjernen din, merk at jeg kjører 2.6.17-10-kjernen, så installasjonslinjen gjenspeiler det. I denne artikkelen kan du erstatte kjernenummeret for det du kjører. Vi må også installere forbannelsesbiblioteket og noen andre verktøy for å hjelpe oss med å kompilere.
sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot
Hvis du er nysgjerrig hvor Linux-kilden blir installert, kan du bruke kommandoen dpkg til å fortelle deg filene i en pakke. Her er utgangen på systemet mitt:
$ 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 installert i katalogen / usr / src i en zip-fil.
For å gjøre det enklere, legger vi oss i rotmodus ved å bruke sudo for å åpne et nytt skall. Det er andre måter å gjøre dette på, men jeg foretrekker denne måten.
sudo /bin/bash
Bytt katalog i kildeposisjonen slik at vi kan installere. Merk at du må installere bunzip-verktøyet hvis det ikke er installert. (det var på meg)
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
Lag en kopi av din eksisterende kjernekonfigurasjon for å bruke for den tilpassede kompileringsprosessen. Legg merke til at `tegnet er det som ligger under tegnet ~
cp /boot/config-`uname -r` /usr/src/linux/.config
Nå vil vi starte verktøyet som lar oss tilpasse kjernen:
cd /usr/src/linux
make menuconfig
Først går du ned til Last en alternativ konfigurasjonsfil, og laster.config-filen. (bare trykk enter)
Nå som vi er inne i verktøyet, kan vi angi alternativene for vår tilpassede kjernen. Navigasjonen er ganske enkel, det er en legende på toppen hvis du går seg vill. Jeg bestemte meg for å velge Nettverk og trykke Enter-tasten for å gå ned i den kategorien.
Når du er ferdig med å lage hvilke valg du vil, trykk Avslutt og lagre konfigurasjonen når du blir bedt om det.
Nå har vi en konfigurasjon klar for kompilering. Først vil vi gjøre en ren ren, bare for å sikre at alt er klart for kompileringen.
make-kpkg clean
Neste vil vi faktisk kompilere kjernen. Dette vil ta lang tid, så finn noe interessant å gjøre.
fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
Denne prosessen vil opprette to.deb-filer i / usr / src som inneholder kjernen. Linux-image ****-filen er den faktiske kjernen bildet, og den andre filen inneholder Du kan installere begge med dpkg. Filnavnene vil trolig være forskjellige på systemet ditt.
Vær oppmerksom på at når du kjører disse kommandoene, vil dette sette den nye kjernen som den nye standardkjernen. Dette kan ødelegge ting! Hvis maskinen ikke starter, kan du trykke på Esc på GRUB-lastingsmenyen, og velg den gamle kjernen. Du kan deretter deaktivere kjernen i /boot/grub/menu.lst eller prøv å kompilere på nytt.
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
Nå start maskinen på nytt. Hvis alt fungerer, bør du kjøre den nye egendefinerte kjernen. Du kan sjekke dette ved å bruke uname. Merk at det eksakte nummeret vil være annerledes på maskinen din.
uname -r
2.6.17.14-ubuntu1-custom
Jeg planlegger å skrive en serie artikler om kjerne tilpasning, så abonner på RSS-feed for oppdateringer.
Også, for å få fullstendig avsløring, lærte jeg hvordan å gjøre dette fra artikkelen på HowtoForge, som er et flott nettsted for noen svært avanserte opplæringsprogrammer på Linux. Du vil merke at mange av trinnene i denne artikkelen er liknende, selv om jeg prøvde å gjøre denne artikkelen mer "Ubuntu".