8.3. Linux-5.5.3

Linux pakken inneholder Linux kjernen.

 

Omtrentlig byggetid: 4.4 - 66.0 SBU (typisk omtrent 6 SBU)

Nødvendig diskplass: 960 - 4250 MB (typisk omtrent 1100 MB)

8.3.1. Installasjon av kjernen

Å bygge kjernen innebærer noen få trinn — konfigurasjon, kompilering og installasjon. Les README filen i kjernekildetreet for alternative metoder for måten denne boken konfigurerer kjernen på.

Forbered deg på kompilering ved å kjøre følgende kommando:

make mrproper

Dette sikrer at kjernetreet er helt rent. Kjerneteamet anbefaler at denne kommandoen utstedes før hver kjernekompilering. Ikke stol på at kildetreet er rent etter utpakking.

Konfigurer kjernen via et menystyrt grensesnitt. For generell informasjon om kjernekonfigurasjon, se http://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. BLFS har litt informasjon om spesifikke kjernekonfigurasjonskrav til pakker utenfor LFS på http://www.linuxfromscratch.org/blfs/view/9.1/longindex.html#kernel-config-index. Mer informasjon om konfigurering og bygging av kjernen finner du på http://www.kroah.com/lkn/

Et godt utgangspunkt for å konfigurere kjernekonfigurasjonen er å kjøre make defconfig. Dette vil sette basiskonfigurasjonen til en god tilstand som tar hensyn til din nåværende systemarkitektur.

Sørg for å aktivere/deaktivere/angi følgende funksjoner, ellers fungerer ikke systemet riktig eller starter opp i det hele tatt:

Device Drivers --->
    Generic Driver Options --->
       [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
       [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]

Kernel hacking --->
           Choose kernel unwinder (Frame pointer unwinder) ---> [CONFIG_UNWINDER_FRAME_POINTER]

Det er flere andre alternativer som kan være ønsket, avhengig av kravene til systemet. For en liste over alternativer som er nødvendige for BLFS pakker, se BLFS indeksen over kjernens innstillinger (http://www.linuxfromscratch.org/blfs/view/9.1/longindex.html#kernel-config-index).

Hvis vertsmaskinvaren bruker UEFI, bør 'make defconfig' ovenfor automatisk legge til noen EFI-relaterte kjernealternativer.

For å tillate at LFS kjernen startes fra vertsens UEFI oppstartsmiljø, må kjernen din ha valgt dette alternativet:

Processor type and features --->
      [*]      EFI stub support [CONFIG_EFI_STUB]

En fullstendig beskrivelse av administrering av UEFI-miljøer fra LFS er dekket av hintet lfs-uefi.txt på http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.

Begrunnelsen for konfigurasjonselementene ovenfor:

Support for uevent helper
    Å ha dette alternativet kan forstyrre enhetsadministrasjonen når du bruker Udev/Eudev.

Maintain a devtmpfs
    Dette vil skape automatiserte enhetsnoder som befolkes av kjernen, selv uten at Udev kjører. Udev kjører deretter på toppen av dette, administrerer tillatelser og legger til symlinker. Dette konfigurasjonselementet er påkrevd for alle brukere av Udev/Eudev.

make menuconfig

Betydningen av valgfrie make miljøvariabler:

LANG=<host_LANG_value> LC_ALL=
   Dette etablerer lokalinnstillingen til den som brukes på verten. Dette kan være nødvendig for en riktig menukonfig ncurses-grensesnittlinjetegning på en UTF-8 linux tekstkonsoll. Hvis du bruker det, må du erstatte <host_LANG_value> med verdien av $LANG variabelen fra verten din. Du kan alternativt bruke vertsverdien $LC_ALL eller $LC_CTYPE i stedet.

Alternativt kan make oldconfig være mer passende i noen situasjoner. Se README filen for mer informasjon.

Hvis ønskelig, hopp over kjernekonfigurasjonen ved å kopiere kjernekonfigurasjonsfilen .config fra vertssystemet (forutsatt at den er tilgjengelig) til den utpakkede linux-5.5.3 mappen. Vi anbefaler imidlertid ikke dette alternativet. Det er ofte bedre å utforske alle konfigurasjonsmenyene og opprette kjernekonfigurasjonen fra bunnen av.

Kompiler kjernebildet og modulene:

make

Hvis du bruker kjernemoduler, kan det være nødvendig med modulkonfigurasjon i /etc/modprobe.d. Informasjon om moduler og kjernekonfigurasjon finner du i Avsnitt 7.3, “Oversikt over enhets og modulhåndtering” og i kjernedokumentasjonen i linux-5.5.3/Documentation. Modprobe.d (5) kan også være av interesse.

Med mindre modulstøtte er deaktivert i kjernekonfigurasjonen, installerer du modulene med:

make modules_install

Etter at kjernekompilering er fullført, kreves det flere trinn for å fullføre installasjonen. Noen filer må kopieres til /boot mappen.

Hvis vertssystemet har en egen /boot partisjon, bør filene som er kopiert nedenfor gå dit. Den enkleste måten å gjøre det på er å binde /boot på verten (utenfor chroot) til /mnt/lfs/boot før du fortsetter. Som rotbruker i vertssystemet:

mount --bind /boot /mnt/lfs/boot

Stien til kjernebildet kan variere avhengig av plattformen som brukes. Filnavnet nedenfor kan endres for å passe din smak, men stammen til filnavnet skal være vmlinuz for å være kompatibelt med det automatiske oppsettet av oppstartsprosessen som er beskrevet i neste avsnitt. Følgende kommando forutsetter en x86-arkitektur:

cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.5.3-lfs-9.1

System.map er en symbolfil for kjernen. Det kartlegger funksjonsinngangspunktene til hver funksjon i kjernen API, samt adressene til kjernedatastrukturene for den kjørende kjernen. Den brukes som en ressurs når man undersøker kjerneproblemer. Utsted følgende kommando for å installere filen:

cp -iv System.map /boot/System.map-5.5.3

Kjernekonfigurasjonsfilen .config produsert av make menuconfig trinnet ovenfor inneholder alle konfigurasjonsvalgene for kjernen som nettopp ble kompilert. Det er en god ide å beholde denne filen for fremtidig referanse:

cp -iv .config /boot/config-5.5.3

Installer dokumentasjonen for Linux-kjernen:

install -d /usr/share/doc/linux-5.5.3
cp -r Documentation/* /usr/share/doc/linux-5.5.3

Det er viktig å merke seg at filene i kjernekildekatalogen ikke eies av root. Hver gang en pakke pakkes ut som bruker root (som vi gjorde i chroot), har filene bruker- og gruppe-ID-er for hva de var på pakkerens datamaskinen. Dette er vanligvis ikke et problem for andre pakker som skal installeres fordi kildetreet fjernes etter installasjonen. Imidlertid er Linux kildetreet ofte beholdt i lang tid. På grunn av dette er det en sjanse for at uansett hvilken bruker-ID pakkeren brukte blir den tildelt noen på maskinen. Denne personen vil da ha skrivetilgang til kjernekilden.

I mange tilfeller må konfigurasjonen av kjernen oppdateres for pakker som blir installert senere i BLFS. I motsetning til andre pakker er det ikke nødvendig å fjerne kjernekildetreet etter at den nybygde kjernen er installert.

Hvis kjernekildetreet skal beholdes, kjør chown -R 0: 0 i linux-5.5.3 mappen for å sikre at alle filene eies av bruker root.

Noe kjernedokumentasjon anbefaler at du oppretter en symlenke fra /usr/src/linux som peker til kjernekildekatalogen. Dette er spesifikt for kjerner før 2.6 serien og må ikke opprettes på et LFS system, da det kan forårsake problemer for pakker du kanskje ønsker å bygge når ditt LFS system er ferdig.

Deklarasjonene i systemets include mappe (/usr/include) skal alltid være de som Glibc ble kompilert mot, det vil si de rensede deklarasjonene som er installert i seksjon 6.7, “Linux-5.5.3 API Deklarasjoner”. Derfor bør de aldri erstattes av verken de rå kjernedeklarasjonene eller andre kjerne rensede deklarasjoner.

8.3.2. Konfigurere belastningsrekkefølge for Linux moduler

Mesteparten av tiden lastes Linux moduler automatisk, men noen ganger trengs det en viss rekkefølge. Programmet som laster inn moduler, modprobe eller insmod, bruker /etc/modprobe.d/usb.conf til dette formålet. Denne filen må opprettes slik at hvis USB driverne (ehci_hcd, ohci_hcd og uhci_hcd) er bygget som moduler, blir de lastet inn i riktig rekkefølge. ehci_hcd må lastes inn før ohci_hcd og uhci_hcd for å unngå at en advarsel sendes ut ved oppstart.

Opprett en ny fil /etc/modprobe.d/usb.conf ved å kjøre følgende:

install -v -m755 -d /etc/modprobe.d

cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf

 

install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true

 

# End /etc/modprobe.d/usb.conf
EOF

8.3.3. Innholdet i kjernen

Installerte filer: config-5.5.3, vmlinuz-5.5.3-lfs-9.1, og System.map-5.5.3

Installerte mapper: /lib/modules, /usr/share/doc/linux-5.5.3

 

Kort beskrivelse

config-5.5.3 - Inneholder alle konfigurasjonsvalgene for kjernen

vmlinuz-5.5.3-lfs-9.1 - Motoren til Linux systemet. Når du slår på datamaskinen, er kjernen den første delen av operativsystemet som blir lastet. Den oppdager og initialiserer alle komponenter i datamaskinens maskinvare, og gjør deretter disse komponentene tilgjengelige som et filtre til programvaren og gjør en enkelt CPU til en multitasking maskin som kan kjøre mange programmer tilsynelatende samtidig

System.map-5.5.3 - En liste over adresser og symboler; den tilordner inngangspunkter og adresser til alle funksjonene og datastrukturene i kjernen

Forrige Hjem Neste