Start | Debian | Slackware | Ubuntu | Laptop | Linux | Länkar | Sitebuilder | Ordlista | Email | FAQ | Sitemap | Tips

Linux...

Start
Debian
Distributioner
GNU
How to...
Installera
Kom igång
Kommandon
Laptop
Länkar
Open Source

Ordlista
Program
Slackware
StorTest av distributioner
Vad är Linux?

Kompilera en ny kärna

Ord av tröst och uppmuntran på vägen

Första gången jag försökte kompilera om kärnan i Linux gick det åt pipsvängen. Andra gången också!
För en nybörjare framstår uppgiften att kompilera en ny kärna som nästan oöverstiglig men de flesta bekymmer en nybörjare stöter på beror på att de inte har ägnat tillräckligt med tid åt till att förstå hur man ska gå till väga och istället gissat sig fram.
Detta leder oftast (Läs alltid) till misslyckande och därför jag har skrivit denna lilla "Hur man..." som innehåller grundläggande information som jag tycker du behöver veta för att du ska lyckas med kompileringen av en ny kärna.
Mer info hittar du lätt på nätet. Sök t.ex efter:"kompilera kärna" så får du gott om träffar.
Behärskar du engelska är utbudet av s.k How-To:s synnerligen stort.

Varför kompilera då?

En anledning kan vara att du bara vill testa om du klarar av att vara lite hjärnkirurg så där mitt i vardagen.
Du kanske vill lära dig mer och se vilka möjligheter som finns dolda i en ny kärna.
Främsta anledningen är nog ändå att du vill trimma upp ditt system genom att ta bort stöd för sånt du inte har nytta av. Inte mycket lönt att ha stöd för t.ex SCSI-diskar eller PCMIA om du inte har det i din dator. Eller så vill du kanske lägga till stöd för sånt du saknar. Ett exempel kan vara stöd för NTFS filsystem som t.ex Windows XP använder.

Hämta hem en ny kärna

Du kan ladda hem ny kärna från kernel.org som är centrum för all information om kerneln. Där finns alla de tillgängliga kärnor du kan tänkas behöva. Oftast finns också kärnor att ladda hem på den webbplats som din distribution har.

Packa upp...

När du väl har hämtat hem en ny version av källkoden till kärnan är det dags att packa upp den.

I fortsättningen förutsätter alla kommandon att du är inloggad som root, vilket du enklast åstadkommer genom att skriva "su" följt av lösenordet för root.

Har du laddat ner källkodsfilen med ändelsen .gz utför du det första av följande kommandon, och om du har laddat ner den högre komprimerade .bz2 varianten utför du det andra kommandot:

tar zxvf linux-[versionsnummer].tar.gz

byt ut [versionsnummer] till det nummer som din hemladdade kärna har t.ex 2.6.14.3

eller:

bzip2 -d linux-[versionsnummer].tar.bz2
tar xvf linux-[versionsnummer].tar

Källkoden kommer nu att läggas i en katalog som heter "linux2.x.xx".

Konfigurering

Se nu till så att du befinner dig inne i /usr/src/linux. Nu bör du se till så att allt är rent och snyggt i källkodsstrukturen genom att propra till läget genom att ge följande kommando:

make mrproper

När detta är klart är du redo att börja välja vilka delar av kärnan du vill ska ingå i din nya, antingen som en modul eller direkt i kärnan. Moduler är verkligen en stor tillgång. Innan de fanns var man tvungen att kompilera in all funktionalitet rakt in i kärnan (monlitiskt) hur sällan man än behövde dessa funktioner. Kärnan kunde då ofta liknas vid en övergödd pingvin. Moduler är alltså lösningen på detta problem.

Kompilera

Det finns olika, mer eller mindre användarvänliga, sätt att välja vad som ska ingå i den nya kärnan. Vilket sätt man väljer spelar dock ingen roll för slutresultatet. Valen man kan göra är följande:

Det är svårt att ge en generell vägledning i vilka delar som man bör ta med eftersom nästan alla har olika krav på vad de vill kunna göra i sin dator, och olika datorer har olika hårdvara.

Ett viktigt tips är att läsa hjälptexterna när man konfigurerar kärnan. Hjälptexter finns i stort sett till alla val man kan göra och är man osäker står det oftast en rekommendation i slutet på denna som anger vilket som är det vanligaste valet. Vid vissa val står det "experimental" och det kan vara god sed att undvika sådan val.

Dina krav, och hårdvara, kan givetvis vara annorlunda, så att följa dessa tips slaviskt är naturligtvis inte att rekommendera. Du bör dock inte välja bort något som beskrivs som väldigt viktigt i hjälptexten, om du nu inte är absolut säker på din sak. När man har gjort sina val, och dubbelkollat dessa vilket du bara kan göra om du kört "make menuconfig" eller "make xconfig" så kan du spara konfigurationen och avsluta konfigureringsprogrammet.

Nu när konfigureringen av din egen kärna är klar är sanningens minut (eller snarare minuter...) kommen.
Det är dags att genomföra kompileringen av kärnan!
Observera, att denna handledning gäller om du har version 2.6.xx av kärnan.
Ge kommandot:

make

Den färdiga kärnan hamnar då i /usr/src/linux/arch/i386/boot

Hur länge kompileringen tar att genomföra varierar givetvis beroende på hur kraftfull maskin du använder och hur mycket du har valt att inkludera i kärnan. När kompileringen är klar och du förhoppningsvis klarade dig utan att stöta på några problem kommer du att få lite information om den färdiga kärnan, t ex hur stor den blev. Men ta det nu lite lugnt för vi är inte färdiga riktigt än!

Nu är det nämligen dags att installera de moduler som du valt, och detta görs med det logiska kommandot:

make modules_install

Kopiera till boot

Nu tar du och kopierar över följande filer till /boot:

.config (finns i / )
System.map (finns i / )
bZimage (finns i /arch/i386/boot)

Jag rekommenderar att du byter namn på filerna innan du kopierar dom.
För att lätt kunna skilja på olika versioner av kärnan ge dom namn som är lätta att skilja på.

Gammalt namn Nytt namn
.config 2.6.14.3.config Se min .config här...
System.map 2.6.14.3.System.map
bZimage 2.6.14.3.bZimage

Kopiera nu över dom till /boot

Modifiering av lilo.conf

Ett vanligt fel som många ovana Linuxanvändare nu gör är att de startar om datorn i tron att allt är färdigt men ack så de bedrog sig. Ganska fort upptäcker de att de fortfarande kör den gamla kärnan! Använder man LILO för att starta Linux måste man också ändra dess konfigureringsfil och installera om LILO i bootsektorn. Lilo:s konfigureringsfil heter lilo.conf och finns i /etc katalogen. Här följer ett exempel på hur denna fil kan se ut:

boot=/dev/hda2
map=/boot/map
install=/boot/boot.b
prompt
timeout=50

image=/boot/vmlinuz
label=linux-2.0.36
root=/dev/hda2
read-only

Exakt så här kommer det förmodligen inte se ut för dig, utan variationer kan förekomma bl.a beroende på vilken partition du har som "root partition". Ändra inte på dessa rader! Lägg istället in nya rader efter dessa som visar LILO var den nya kärnan finns.
Se min etc/lilo.conf här

Skriv in rader med följande struktur:

image=/boot/2.6.14.3.bZimage
label=linux.2.6.14.3
root=/dev/[din_root_partition]
read-only

"din_root_partition" ska du normalt ändra till samma root som står angivet ovanför dessa rader i din fil.

Nu är det endast en sak som återstår innan du kan testa din nykompilerade kärna, nämligen att installera om LILO i bootsektorn. Detta gör du med följande kommando:

/sbin/lilo

Om du angett fel sökväg i lilo.conf får du ett felmeddelande så då får du kontrollera att sökvägen är rätt och köra /sbin/lilo på nytt.
Går allt vägen är det nu dags att starta om datorn och testa den nya kärnan:

/sbin/reboot

När LILO startas ser du listan på de kärnor du kan välja att starta. Som du ser så finns även den gamla kärnan kvar. Det är bra att göra detta till vana att alltid spara gamla kärnan eftersom det alltid finns risk för att något kan gå fel med den nya kärnan. Vi gav den nya kärnan rubriken linux.test. För att starta den väljer du därför "linux.test" i LILO och trycker 'Enter'.
Beskåda sedan "the magic of Linux" när den nya kärnan startar!

Tux!

Valid XHTML 1.0 Transitional

 


Sidan senast uppdaterad 2007-07-01