Kerne kompilering

 

 

Af Bjarke Johannesen

Bjarke@aalug.dk

14. Marts 2000

 

 

Målgruppe:

Dem som ikke har prøvet at kompilere en kerne, og dem som har, men ikke er expert i kerne kompilering. Hvis du gerne vil vide lidt mere end bare at kompilere, som f.eks modules.

(Dette dokument vil være online på http://www.aalug.dk/noter.htm)

 

 


Indhold for dette fordrag:

Hvad er kernen?

Nyeste kerne version

Hvordan finder jeg letteste ud af hvad der er den nyeste kerne verison?

Hvad er godt at vide før man går igang med kerne kompilering?

Selve kerne kompilering

Modules

Modules styring

Andre kerne ting.

Spørgsmål

 

 


Hvad er kernen

 

Kernen er software interfacet mellem unix programmerne og hardwaret. Kernen agere som et virutal maskine lag.

Derudover laver kernen tidsdeling(multitaskning), Ram allokering og Proces styring.

Kernen kan have hardware drivere liggende som moduler, eller statisk kompileret ind i kernen. Moduler er dynamisk og kan startes og stoppes uden genstart af kernen.

 

 

 

 

 


Nyeste kerne version (13/3/00)

                                        2.2.14 -- Stable udgave

2.3.51 -- Developer udgave (og nu forløberen for 2.4)

2.0.38 -- Mest stabile udgave

 

Kernen kan hentes på http://www.kernel.org

Pre. kerner kan findes på: http://www.kernel.org/pub/linux/kernel/alan/ såsom 2.2.15pre eller 2.0.39pre (Pre kerner kan ikke betraktes som stable udgaver).

 

 

 

 

 


Hvilken kerne er den nyeste, og hvordan finder jeg letteste ud af det?

 

finger @finger.kernel.org

 

Hvis man ikke lige har finger, kan man også se det i kernel.org’s ftp kataloger

 

 

 


 

 


Hvad er godt at vide før man går i gang men kerne kompilering?

Maskinens hardware (som skal understøttes af kernen):

        K6-2 CPU

        Ide harddiske

        ATAPI Cdrom

        EE100Pro intel netkort

        SB 16 lydkort

    Hvad jeg vil køre som moduler?

        Andre filsystemer

        Code pages osv.

        (netkort)

        (lydkort)


Selv kerne kompileringen:

 

        cd /usr/src/linux

       make xconfig (brug normalt denne)

               make makemenu (hvis man ikke har Xwin tilrådighed)

               make config (ælste configsystem, men det virker…)

       

        (her forgår selve konfigureringen i kerne konfig programmet)

   

        make dep (skal køres hvis man har rettet noget med kerne          config værktøjerne)

 

       make clean (kun hvis man allerede har kompileret)

       make bzlilo (kør nu kompileringen af kernen)

       make modules (modul kompilering)

make modules_install (installer modulerne, skal køre hvis man bruge modules)

        Husk lige at checke at /etc/lilo.conf er rigtig konfigureret.

        lilo (hvis man da bruger lilo og lige har rettet i lilo.conf)

 

Nu kan man så reboote for at køre ens ny kompileret kerne. Dog er det en god ide at have en gammel kerne som backup, hvis den nye ikke kan køre.

 


    Modules og loadning osv af dem:

 

Modprobe starter et modul , hvis det ikke allerede er blevet loadet, eller er statisk i kernen.

Modulerne ligger i kataloget: /lib/modules/2.2.14/. Og her er der under-kataloger, som fs for filesystems, net for netværk osv.

 

 

 

 

 

 

 

 


Modul styring:

Lsmod – lister alle moduler loaded ind i kernen

Rmmod – fjerne et modul som er loaded ind i kernen

Modprobe – starter et modul.

/etc/conf.module – Config fil for modprobe

    f.eks (/etc/conf.modules).

alias eth0 unknown

alias tr0 oltr

options tr0 laa=\"40.00.12.34.56.78\"

 

 

 

 

 


Andre kerne ting:

Developer kernen, hvorfor bruge den?

 

- Pre patches(til kommende 2.2/4 kerner) kan man også bruge til at understøtte hardware eller afhjælp problemer.

 

Rette i Makefile for kernen.

 

 

 

Hvordan sletter man ens kerne setup og får default tilbage?

        Ved at slette alle .* filer i linux kataloget

 

Patches til hardware?

   

 


 

Sprøgsmål