Linuxkärnan 2.6

Så här gör jag när jag bygger en ny kärna. OBS! Jag är inte "root".

Ladda ner källkoden

Jag skapa katalogen /home/hakan/kernel och går till www.kernel.org och laddar ner den senaste versionen(2.6.23.1, i nuvarande läge) dit.

flytta dit..
$ cd /home/hakan/kernel
Packa upp..
$ tar xvfj linux-2.6.23.1.tar.bz2.
 Detta ger en katalog "linux-2.6.23.1", flytta dit..
$ cd linux-2.6.23.1.

Kontrollera att du har alla verktyg.
I katalogen linux-2.6.23.1 finns "README", läs den, gå sedan till Documentation/Changes där står hur du kontrollerar att du har alla verktyg. Reiser, pcmcia, PPP och isdn4k-utils behövs bara om du vill ha dom funktionerna. Vissa kommandon måste du vara root för att köra.


$ make mrproper

Ser till att koden är i sin ordning. Gör du en "omkompilering" kör $ make clean också, kom ihåg att detta tar bort ev. .config-fil du har.


$ make xconfig

Detta är det "grafiska" sättet, vilket jag tycker är enklast.


Jag började med att "Load", d.v.s. ta en gammal .config-fil som jag vet fungerar. Ex.v.kan du använda den som du har i din /boot-katalog.Kom ihåg att kopiera och döpa om den till .config innan.

Jag måste hålla ordning på dom olika kärnorna. Om jag gör en ny kompilering av en kärna med samma nummer, öppnar jag "Makefile"(i katalogen linux-2.6.23.1) innan jag kör "xconfig" och lägger till något under "EXTRAVERSION". När du sedan kör make modules_install så skapar det en ny /lib/modules/2.6.23.1-2, sedan "döper" du kärnan,.config och System.map på samma sätt.

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 23
EXTRAVERSION = .1-2

Till sist "Save and Exit"


Då kör vi..
$ make
..nu byggs kärnan och modulerna..

Sedan mäåste du bli "root"..
$ su
password
# make modules_install

Detta skapar en katalog /lib/modules/2.6.23.1


Nu lägger vi allt i /boot

# cp .config /boot/config-2.6.23.1
# cp System.map /boot/System.map-2.6.23.1
Flytta till "kärnan"..
# cd arch/i386/boot/
# cp bzImage /boot/vmlinuz-2.6.23.1

Nu måste vi ändra Grub/Lilo.

Grub

Jag använder Grub, fördelen är bl.a. att jag inte behöver skriva till MBR. När Grub startar, tryck e så kan du sedan ändra till den kärna du vill starta med, fungerar det så ändra/lägg till i "menu.lst". Nedan ett exempel med 2 kärnor för samma dist.

title		Slackware 12.0
root		(hd0,6)
kernel		/boot/vmlinuz-2.6.23.1 root=/dev/sda7 ro vga=771
savedefault
boot

title		Slackware TEST
root		(hd0,6)
kernel		/boot/vmlinuz root=/dev/sda7 ro vga=771
initrd		/boot/initrd.gz
savedefault
boot

Lilo

Ändra i /etc/lilo.conf

# Linux bootable partition config begins
# Detta är Slackware-distributionen installerad med "/"(rootkatalogen) på sda7.
image = /boot/vmlinuz-2.6.23.1 
root = /dev/sda7
label = Slack12
read-only

#Detta är Slackware-distributionen med en annan kärna
image = /vmlinuz            # Sökvägen till din kärna.
initrd = /boot/initrd.gz    # sökväg till din "initrd.gz"
root = /dev/sda7            # "/"(root-katalogen).
label = SlackTEST           # Välj ett namn.
read-only                   # Ska alltid monteras read-only först för att testas.
# Linux bootable partition config ends

Sedan måste du köra #/sbin/lilo


Valid HTML 4.01!