Gentoo Logo

Disclaimer : This document is not valid and is not maintained anymore.


[ << ] [ < ] [ Hjem ] [ > ] [ >> ]


7. Opsætning af kernen

Indhold:

7.a. Tidszone

Du bliver først nødt til at vælge din tidszone så. at dit system ved hvor det er lokaliseret. Kig efter din tidszone i /usr/share/zoneinfo, og lav derefter en symbolsk henvisning til /etc/localtime ved brug af ln:

Kode oversigt 1.1: At sætte tidszone informationen

# ls /usr/share/zoneinfo
(Hvis du vil bruge GMT)
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime

7.b. Installation af kildekoderne

Valg af kerne

Kernen omkring alle distributioner er bygget på Linux-kernen. Det er et lag imellem bruger-programmer og dit systems hardware. Gentoo giver dens brugere flere forskellige mulige kerne-kildekoder. En fuld liste med beskrivelser forefindes i Gentoo Linux kerne vejledning.

Til PPC kan du vælge imellem vanilla-sources og gentoo-sources (begge 2.6-kerner). Den sidste er tilgængelig, når du udfører en netværksfri installation. Udover disse, er der en speciel 2.6-kerne-patchsæt til Pegasos: pegasos-dev-sources. Så lad os fortsætte med at emerge kerne-kildekoderne:

Kode oversigt 2.1: Installation af kerne-kildekode

# emerge gentoo-sources

Bemærk: PowerPC-kildekoder er baseret på 2.6.10-kernen med sikkerhedspatches fra 2.6.11 tilbageført. På tidspunktet af udgivelsen har 2.6.11-kernen produceret en del problemer på forskellige PowerPC-maskiner.

Når du tager et kig i /usr/src, burde du se en genvej kaldet linux, som peger mod din kerne-kildekode. Vi forudsætter at kerne-kildekoderne, som er installeret er gentoo-sources-2.6.10-r8:

Kode oversigt 2.2: Se genvej til kerne-kildekode

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           22  Mar 18 16:23 /usr/src/linux -> linux-2.6.10-gentoo-r8

Hvis genvejen ikke peger til kerne-kildekoderne, som du valgte (noter at linux.2.6.10-gentoo-r8 kun er et eksempel) bør du ændre genvejen før du fortsætter:

Kode oversigt 2.3: Ændring af genvejen til kerne-kildekode

# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.10-gentoo-r8 linux

Nu er det tid til at opsætte og kompilere din kernes kildekoder. Alle arkitekturer kan bruge genkernel til dette, som vil bygge en omfattende kerne, som også er brugt på installationsCDen. Vi forklarer dog den "manuelle" opsætning først, idet det er den bedste metode til at optimere dit system.

Hvis du vil opsætte din kerne manuelt, forsæt nu med Standard: Manuel opsætning. Hvis du vil bruge genkernel, bør du læse Alternativ: Brug af genkernel i stedet for.

7.c. Standard: Manuel opsætning

Introduktion

At opsætte kernen manuelt bliver ofte anset som det sværeste, som enhver Linux-bruger skal gå igennem. Intet er mindre rigtigt -- efter opsætninger af nogle kerner, vil du ikke kunne huske at det var svært ;)

Én ting er dog rigtigt: du skal kende dit system, når du starter med at opsætte en kerne manuelt. De fleste informationer kan samles ved at emerge pciutils (emerge pciutils), som indeholder lspci. Du kan nu have mulighed for at bruge lspci inden i det chrootede miljø. Du kan med sikkerhed ignorere alle pcilib advarsler (som pcilib: cannot open /sys/bus/pci/devices) som lspci fortæller. Alternativt, kan du køre lscpi fra et ikke-chrootet miljø. Resultatet er det samme. Du kan også køre lsmod for at se hvilke kerne-moduler, installationsCDen bruger (det vil måske give dig en god idé om hvad du skal aktivere).

Gå nu til kerne-kildekode mappen og udfør make menuconfig. Dette vil starte en ncurses-baseret opsætningsmenu.

Kode oversigt 3.1: Påkalde menuconfig

# cd /usr/src/linux
# make menuconfig

Du vil blive hilst af flere opsætningssektioner. Vi vil først give dig en liste af de valgmuligheder, som du skal aktivere (ellers vil Gentoo ikke funktionere, eller funktionere ordentligt uden ekstra finindstillinger).

Aktivering af krævede valgmuligheder

Først skal du aktivere brugen af udviklings- og forsøgskoder/-drivere. Du vil få brug for dette, ellers vil meget vigtige koder/drivere ikke vise sig:

Kode oversigt 3.2: Valg af eksperimentielle koder/drivere, Generel opsætning

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
General setup --->
  [*] Support for hot-pluggable devices

Gå nu til File Systems og vælg understøttelse til de filsystemer, som du bruger. Kompiler dem ikke som moduler, ellers vil dit Gentoo system ikke have mulighed for at montere dine partitioner. Vælg også Virtual memory og /proc file system. Vælg ikke /dev file system.

Kode oversigt 3.3: Valg af nødvendige filsystemer

File systems --->
 Pseudo Filesystems --->
   [*] /proc file system support
   [ ] /dev file system support (OBSOLETE)
   [*] Virtual memory file system support (former shm fs)

(Vælg en eller flere af de følgende valgmuligheder, som er nødvendige for dit system)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> Second extended fs support
  <*> XFS filesystem support

Hvis du bruger PPPoE til at forbinde til Internettet eller du bruger en opkaldsmodem, vil du få brug for de følgende valgmuligheder i kernen:

Kode oversigt 3.4: Valg af PPPoE nødvendige drivere

 Device Drivers --->
   Networking support --->
     <*> PPP (point-to-point protocol) support
     <*>   PPP support for async serial ports
     <*>   PPP support for sync tty ports

De to kompressionsvalgmuligheder vil ikke være ubrugelige, men er slet ikke nødvendige, det samme med PPP over Ethernet valgmuligheden, som måske vil blive brugt af rp-pppoe, når den er opsat til at lave kerne-modus PPPoE.

Hvis du kræver det, glem ikke at inkludere understøttelse af dit netkort i kernen.

Brugere af "OldWorld" maskiner bør have HFS-understøttelse, så de kan kopiere kompilerede kerner til MacOS-partitionen. Dette gælder også til NewWorld-maskiner, som er nødvendig for den specielle Apple_Bootstrap-partition:

Kode oversigt 3.5: Aktivering af HFS-understøttelse

File Systems --->
  [*] HFS Support

På dette tidspunkt er kerne-preemption stadigvæk ustabil på PPC og kan skabe kompileringsfejl og vilkårlige lagersegmenteringsfejl. Det er stærkt anbefalet af du ikke bruger denne egenskab.

Kode oversigt 3.6: Ensure the Preemptible Kernel Option is Off

Platform options --->
  [ ] Preemptible Kernel

Når du er færdig med at opsætte din kerne, fortsæt med Kompilering og installation.

Kompilering og installation

Nu da din kerne er opsat, er det tid til at kompilere og installere den. Afslut opsætningen (Exit) og kør kommandoerne, som vil kompilere kernen:

Kode oversigt 3.7: Kompilering af kerne

# make all && make modules_install

Når kernen er færdig med at kompilere, kopier den da over til /boot (vær sikker på at den er mountet rigtigt på Pegasos).

Kode oversigt 3.8: Installation af kerne

Erstat 2.6.10 med din kerne-version
(Apple/IBM)  # cp vmlinux /boot/kernel-2.6.10
(Pegasos)    # cp arch/ppc/boot/images/zImage.chrp /boot/kernel-2.6.10

Det er også klogt at kopiere din kerneopsætningsfil til /boot, bare for en sikkerheds skyld :)

Kode oversigt 3.9: Backup af din kerneopsætning

# cp .config /boot/config-2.6.10-gentoo-r8

Fortsæt nu med Installation af separate kernemoduler.

7.d. Installation af separate kernemoduler

Opsætning af moduler

Du bør opliste de moduler, som du vil have automatisk hentet, i /etc/modules.autoload.d/kernel-2.6. Du kan også tilføje ekstra valgmuligheder til modulerne, hvis du vil.

For at se alle de tilgængelige moduler, kør følgende find-kommando. Glem ikke at udskifte "<kernel version>" med den version af kernen, du lige har kompileret:

Kode oversigt 4.1: Se alle mulige moduler

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

For automatisk at hente f.eks 3c59x.o modulet, skal du ændre kernel-2.6-filen og skrive modulnavnet i den.

Kode oversigt 4.2: At redigere /etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

Kode oversigt 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Fortsæt nu med installationen med Opsætning af dit system.

7.e. Alternativ: Brug af genkernel

Hvis du læser denne sektion, så har du valgt at bruge vores genkernel script til at opsætte din kerne for dig.

Nu da dit kerne-kildekodetræ er installeret, er det tid til at kompilere din kerne ved at bruge vores genkernel script til at automatisk bygge en kerne for dig. genkernel virker ved at opsætte en kerne, næsten identisk med hvordan vores LiveCD-kerne er blevet opsat. Dette betyder, at når du bruger genkernel til at bygge din kerne, vil dit system generelt finde alt dit hardware ved opstart, ligesom din installationsCD gør. Fordi at genkernel ikke kræver nogen manuel kerneopsætning, er den en ideel løsning for de brugere, som ikke føler sig veltilpas med at kompilere deres egne kerner.

Lad os nu se hvordan vi bruger genkernel. Først skal du emerge genkernelens ebuild:

Kode oversigt 5.1: Emerge genkernel

# emerge genkernel

Dernæst kopier kerneopsætningen brug af installationsCDen til placeringen, hvor genkernel kigger efter standard kerneopsætninger:

Kode oversigt 5.2: Kopiering af installationsCDens kerneopsætnings

# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6

Du skal nu samle dine kerne-kildekoder ved at køre genkernel --udev all. Vær agtsom på at genkernel samler en kerne, som understøtter det meste hardware, derfor tager den en del tid!

Noter at, hvis din partition, hvor kernen skal være placeret, ikke bruger ext2 eller ext3 som filsystem, skal du måske manuelt opsætte din kerne ved brug af genkernel --menuconfig all og tilføje understøttelse til dit filsystem i kernen (dvs. ikke som modul). Brugere af EVMS2 eller LVM2 vil sikkert ønske også at tilføje --evms2 eller --lvm2 som argument.

Kode oversigt 5.3: Start af genkernel

# genkernel --udev all

Når genkernel afslutter, vil en kerne, et fuld sæt af moduler og initial root disk (initrd) være færdiggjort. Vi vil bruge kernen og initrd, når vi opsætter en boot-loader senere i dette dokument. Skriv navnene på kernen og initrd ned, da du vil få brug for dem, når du skriver til boot-loaderens opsætningsfil. Initrd vil blive startet med det samme efter at opstartsprocessen udfører automatisk-hardwarefinding (ligesom på LiveCDen) før dit "rigtige" system starter op. Vær sikker på også at kopiere de rigtige opstartsargumenter, da disse er krævet for en succesfuld opstart med genkernel.

Kode oversigt 5.4: Tjekker oprettelsen af kerne-billedfils navn og initrd

# ls /boot/kernel* /boot/initrd*

Lad os nu udføre et trin mere, for at få vores system til at blive mere som installationsCDen -- lad os emerge coldplug. Imens initrd automatisk finder hardware, som der er brug for til at starte dit system, vil coldplug automatisk finde alt andet. For at emerge og aktivere coldplug, tast følgende:

Kode oversigt 5.5: Emerge og aktivering af coldplug

# emerge coldplug
# rc-update add coldplug boot

Hvis du vil have at dit system reagerer på hotplug-aktiviter, vil du også få brug for at installere og indstille hotplug:

Kode oversigt 5.6: Emerge og aktivering af hotplug

# emerge hotplug
# rc-update add hotplug default

Fortsæt nu med Opsætning af dit system.


[ << ] [ < ] [ Hjem ] [ > ] [ >> ]


Udskriv

View all

Opdateret 9. juni 2005

The original version of this document was last updated April 6, 2013

Opsummering: Linux kernen er grundlaget for enhver distribution. Dette kapitel forklarer hvordan du sætter din kerne op.

Sven Vermeulen
Forfatter

Roy Marples
Forfatter

Daniel Robbins
Forfatter

Chris Houser
Forfatter

Jerry Alexandratos
Forfatter

Seemant Kulleen
Gentoo x86 udvikler

Tavis Ormandy
Gentoo Alpha udvikler

Jason Huebel
Gentoo AMD64 udvikler

Guy Martin
Gentoo HPPA udvikler

Pieter Van den Abeele
Gentoo PPC udvikler

Joe Kallar
Gentoo SPARC udvikler

John P. Davis
Redaktør

Pierre-Henri Jondot
Redaktør

Eric Stockbridge
Redaktør

Rajiv Manglani
Redaktør

Jungmin Seo
Redaktør

Stoyan Zhekov
Redaktør

Jared Hudson
Redaktør

Colin Morey
Redaktør

Jorge Paulo
Redaktør

Carl Anderson
Redaktør

Jon Portnoy
Redaktør

Zack Gilburd
Redaktør

Jack Morgan
Redaktør

Benny Chuang
Redaktør

Erwin
Redaktør

Joshua Kinard
Redaktør

Tobias Scherbaum
Redaktør

Lars Weiler
Redaktør

Jochen Maes
Redaktør

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Jesper Brodersen
Oversætter, Korrektur

Arne Mejlholm
Oversætter, Korrektur

Frans Sohn Frøkjær-Jensen
Oversætter, Korrektur

Morten Fangel
Oversætter, Korrektur

Esben Bach
Oversætter, Korrektur

Simon Holm Thøgersen
Oversætter, Korrektur

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.