Kernel

Hämta hem en ny kernel

Den senaste versionen av kernel kan du hämta här: www.kernel.org.
Men var medveten att om du tar hem en hel kernel så är filen stor (>10MB)

Om du vill uppgrader din kernel inom en serie (ex. gå från 2.2.5 till 2.2.10) så kan du hämta hem "patchar" istället för en hel kernel. Dessa "patchar" är betydligt minder i storlek. Om du ex. gå från 2.2.5 till 2.2.10 så hämtar du hem filerna patch-2.2.6.gz, patch-2.2.7.gz .... patch-2.2.10.gz och lägger dessa i ett tomt bibliotek, byt sedan till detta bibliotek och ge kommandot: /usr/src/linux/scripts/patch-kernel för att patcha upp kerneln.

Man bör också tänka på om det är en stabil eller utvecklings kernel man tankar hem, man ser skillnaden på dessa om andra siffran är jämn (ex. 2.2.x) så är det en stabil kernel, är den ojämn (ex.2.3.x) så är det en utvecklings kernel. En utvecklings kernel är mer eller mindre "buggig" och kan om du har otur förstöra ditt system, så om du inte vill hålla på med utvecklingen av Linux satsa på en stabil kernel!

Konfigurera och Kompilera kernel

Source koden för den aktuella Linux kernel skall ligga i biblioteket /usr/src/linux, detta kan vara en symlänk till ett annat bibliotek men källkoden måste vara åtkomlig via detta namn!

Konfigurera kernel

Ge följande kommandon för att konfigurera din kernel: Du kan istället för "make menuconfig" ge kommandot "make xconfig för ett X-baserat konfigurations miljö, "make menuconfig" ger dig ett textbaserat miljö.

För att hålla storleken på kernel, och minnes utnyttjande, nere så välj endast drivrutiner för den hårdvaran du har, och välj dessa om möjligt som moduler. Moduler innebär att man kan ladda drivrutinera när man behöver dom och sedan ta bort dom när man inte behöver dom längre (man kan få systemet att automatiskt sköta detta!)

Det du inte kan välja som moduler är drivrutinen för diskenheten som du har root partitionen på, filsystemet "Second extended fs support" och "kernel support för ELF binaries"

För att kunna ladda moduler automatisk så välj: "Enable loadable modules support" och "Kernel module loader" under "loadable module support".

Kompilera kernel (säkert sätt)

För att kompilera den nya kernel så ger du följande kommandon i biloteket /usr/src/linux: Dessa kommandon kan skrivas på en enda rad: make dep clean modules zImage modules_install om man inte vill sitta och passa varje steg, att kompiera en ny kernel kan ta rätt lång tid beroende på snabbheten och minnet i din maskin, allt från några minuter och uppåt är inte ovanligt.

Testa din nya kernel

När du gav kommandot "make zImage" så skapades en ny kernel i bibliotek: /usr/src/linux/arch/i386/boot med namnet zImage. Om du vil provköra denna kerneln utan att röra din befintliga kernel så kan du "dumpa" ut den nya på diskett och boota från disketten, om du då märker att allt verkar fungera så kan du kopiera den nya kerneln till din gamla kernel och ge kommandot lilo för att installera den.

För att dumpa den nya kernel till disketten så ger du kommandona:

Kompilera kernel (den vane användarens sätt :-))

Förutsättningen för detta sätt är att du i /etc/lilo.conf har 2st entrys som pekar på /vmlinuz resp. /vmlinuz.old där /vmlinuz är default kernel vid boot.

Ge kommandot: make dep clean modules zlilo modules_install

Genom att skriva zlilo istället för zImage så kopieras automatiskt /vmlinuz till /vmlinuz.old, den nya kernel kopieras till /vmlinuz och lilo körs för att installaer den nya kernel.

Detta innebär att om den nya kernel inte fungerar så kan du alltid vid LILO's boot prompt välja den gamla kerneln, och sedan när systemet är uppe igen kopiera /vmlinuz.old till /vmlinuz och köra lilo för att återgå till den fungerande kerneln.


19990718