Kompilera 2.2-kärna


Konfigurering

Det första som ska göras är att konfigurera kärnan och tala om vad som ska finnas med i kärnan. Starta konfigureringen med
make menuconfig
eller om du kör i fönstermiljö (X-window System) och vill köra konfigurationen i ett separat fönster
make xconfig
Utseendet på xconfig visas nedan.

Nedan visas menuconfig men xconfig fungerar snarlikt.

make menuconfig startar ett menybaserat konfigurationsgränssnitt. Nedan visas exempel på hur det kan se ut. Klicka på bilderna för att få en större bild.

Programmet är menybaserat. Stega runt med piltangenterna, gå ner i undermenyer genom att välja select och gå ur en undermeny genom att välja exit. Menyprogrammet avslutas även det med exit. Är du osäker om någonting välj help och läs texten. I de flesta av hjälptexterna föreslår de vad du ska göra om du är osäker. I menyn innebär [ ] att valet är bortvalt, [*] att det är valt och kommer att läggas in i kärnan, <M> att det kommer att kompileras som en modul.


1) Gå uppifrån och ned i huvudmenyn och gå in på alla undermenyer.

2) Välj bort Code maturity level options.

3) Välj att kompilera kärnan för 586 (Pentium) eller bättre beroende på vad du har för processor. Välj bort "Math emulation" såvida inte du har en gammal processor som saknar matteprocessor (vissa modeller av 386 och 486). Symetric multiprocessorstöd är till för de datorer som har fler än en processor.

4) Slå på "Enable loadable module support" om du använder moduler.

5) Under "General Setup" görs inställningar av om datorn ska ha nätverksstöd, PCI-stöd (de flesta PC-datorer har PCI-buss), support för olika typer av programformat (det gamla a.out och det nuvarande ELF). Se till att ELF är valt annars kommer inga Linuxprogram att fungera. Parallellportstöd kan vara bra att ha om parallellporten ska kunna användas. Advanced Power Management BIOS support är stöd för att spara ström i till exempel bärbara datorer.

6) "Plug and Play support" gör att kärnan kan konfigurera vissa kort.

7) Under "Block devices" bör du välja floppystöd och ATAPI CD-rom (såvida inte du saknar diskettstation och eller ATAPI-CD). SCSI-CD väljs under "SCSI-support"

8) "Network options" är den del där du väljer att ha stöd för TCP/IP (TCP/IP networking), firewalling (brandväggsstöd), masquerading (hör till brandväggsstödet). Slå på TCP/IP networking, slå på alla som har med firewalling att göra. Ska datorn agera brandvägg med flera nätverkskort måste Advanced router slås på och det är lämpligt att slå på optimize as router not host. I filen /etc/sysconfig/network ska FORWARD_IPV4 sättas till true om datorn ska kunna agera router (FORWARD_IPV4=true). Alternativt gör du
echo 1 > /proc/sys/net/ipv4/ip_forward
i samband med bootning av datorn (i tex. /etc/rc.d/rc.local). I en 2.4-kärna ersätter "Network packet filtering (replaces ipchains)" ipchains. Förutom den behöver du i en 2.4-kärna även gå in i netfilterconfiguration och slå IP tables support, FTP protocol support och om maskering ska användas måste även Connection tracking slås på. Se separat avsnitt om 2.4-kärnan för mer information.

9) Slå på Telephony support om du har ett telefonkort.

10) Gå in på SCSI-support och välj SCSI-support om du har några SCSI-kort i din dator. Är du osäker sitter det antagligen inte några SCSI-kort i datorn. Om det sitter ett eller flera SCSI-kort i datorn välj de typer av enheter som är anslutna till korten, diskar, band, diskettenheter etc. Välj bort "Probe all LUNs on each SCSI device" så att det inte tar en evighet att boota datorn. Under "SCSI low-level drivers" väljer du vad det är för typ av SCSI-kort (SCSI-hårdvara) som sitter i maskinen.

11) Bilden ovan visar exempel på hur valet av SCSI-hårdara kan se ut.

12) Om det sitter I20 i datorn välj det.

13) Gå in på "Network device support" och gå ner i menyn för den typ av nätverkskort du har (antagligen 10 eller 100 Mbit/s ethernet).

14) Välj det nätverkskort du har.

15) Välj "Amateur Radio support" om du nu mot förmodan har det.

16) Om datorn har en infraröd länk välj IrDA-stöd.

17) Om det finns en ISDN-anslutning till datorn välj ISDN.

18) Sitter det någon lite äldre CD-spelare i datorn gå in på "Old CD-ROM drivers" där hittar du CD-spelare som till exempel Sony CDU31A/CDU33A, Sony CDU535, Matsushita/Panasonic/Creative, Mitsumi.

19) Gå in på "Character devices" och slå på "Virtual terminal" (utan den är maskinen inte så användbar). Välj vidare typ av mus, joystick etc.

20) Stöd för olika typer av filsystem görs under "Filesystems". Se till att åtminstone "Second extended fs support" är valt (Linuxfilsystem) och att den är vald att läggas in i kärnan. För att kunna läsa CD-skivor behövs stöd för ISO-9660 och i en del fall även Joliet (Joliet är en utökning ovanpå ISO9660 som bland annat Windows använder). DOS FAT fs support ger möjlighet att läsa DOS-filsystem. VFAT (Windows-95) fs support ger möjliget att läsa lokala Windows-95-diskar. Om NFS ska användas måste den aktiveras under "Network File Systems". Välj även typ av teckenkodning som ska kunna användas till filnamn under "Native Language Support". Se till att åtminstone NLS ISO-8859-1 och eventuellt NLS ISO-8859-15 är valda. Observera att denna endast gäller tecken i filnamn inte innehåll i filer.

21) Se till så att "VGA text console" är vald under "Console drivers".

22) Gå in på "Sound" och välj det ljudkort som sitter i datorn eller välj bort ljudstöd om inget ljudkort finns.

23) Gå in på "Kernel hacking" och slå av Magic SysRq key.

24) I huvudmeny välj Exit och när exit frågar om inställningarna ska sparas svara ja, "Yes".

Menyprogrammet säger avslutningsvis:
Saving your kernel configuration...

*** End of Linux kernel configuration.
*** Check the top-level Makefile for additional configuration.
*** Next, you must run 'make dep'.

Beroenden

Nästa steg är att göra som menyprogrammet föreslog
make dep

Kompilering av kärnan

Nästa steg är att kompilera kärnan. Det görs med
make bzImage
Nu kan du gå och ta en fika.

Installera kärnan

Kopiera filen /usr/src/linux/arch/i386/boot/bzImage till katalogen /boot och passa på och ge den ett nytt namn. Exempel:
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.19-min
om det är en 2.2.19-kärna.

Kopiera därefter filen /usr/src/linux/System.map till /boot/System.map-2.2.19 .

cp /usr/src/linux/System.map /boot/System.map-2.2.19
Radera /boot/System.map och sätt upp en länk /boot/System.map som pekar på /boot/System.map-2.2.19 .
rm /boot/System.map
ln -s /boot/System.map-2.2.19 /boot/System.map

Öppna filen /etc/lilo.conf i en editor. Från början kanske den innehöll följande:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux

image=/boot/vmlinuz-2.2.12-20
        label=linux
        initrd=/boot/initrd-2.2.12-20.img
        read-only
        root=/dev/hda1
Skapa en ny post för den nya kärnan utan att ta bort posten för den gamla kärnan. Den gamla kärnan kan behövas om det blev någonting fel med den nya kärnan. Det är lätt att råka välja någonting fel och då är det bra att fortfarande kunna boota den gamla kärnan. Ge den nya kärnan en bra etikett (label). /etc/lilo.conf ser efter ändring ut så här:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux

# Nya kärnan
image=/boot/vmlinuz-2.2.19-min
        label=linux
        read-only
        root=/dev/hda1

# Gamla kärnan
image=/boot/vmlinuz-2.2.12-20
        label=linux-old
        initrd=/boot/initrd-2.2.12-20.img
        read-only
        root=/dev/hda1
Spara filen och kör därefter programmet lilo.
lilo
När lilo körs talar om vad den har skriver, där stjärnan visar att linux är defaultboot
Added linux *
Added linux-old
Nu är det bara att boota om för att ta den nya kärnan i drift. Om moduler används kan det dock vara bra att kompilera och installera dessa också först (se nedan).

Kompilera moduler

Modulerna kompileras med
make modules

Installation av moduler

Modulerna installeras med
make modules_install

In- och urladdning av moduler

När kärnan är installerad och modulerna kompilerade och installerade och datorn ombootad med den nya kärnan är det dags att börja använda modulerna. Innan modulerna kan användas bör man göra
depmod -a

För att kunna använda en modul, tex opl3sa2, måste den laddas in vilket görs med

modprobe opl3sa2
För att lista laddade moduler skriv
/sbin/lsmod
När en modul inte längre används kan den laddas ur vilket görs med
modprobe -r opl3sa2
För att tala om vilken modul som ska användas som drivrutin för viss hårdvara kan inställningar behöva göras i /etc/conf.modules. Till nyare kärnor används istället filen /etc/modules.conf.

Om första nätverkskortet är av typen eepro100 och modulen eepro100 är den som ska användas kan man skriva in följande i /etc/conf.modules för att kärnan ska hitta rätt modul.

alias eth0 eepro100
Nu går det att använda eth0 istället för eepro100 så till modprobe går det att skriva
modprobe eth0
Om kärnan är inställd på att automatiskt ladda moduler den behöver kan den hitta rätt modul tack vare inställningarna i /etc/conf.modules.


Copyright © 2010-2024 Kjell Enblom.
This document is covered by the GNU Free Documentation License, Version 1.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".