10.3.1. Installasjon av kjernen
        
        
          Å bygge kjernen innebærer noen få trinn—konfigurasjon,
          kompilering og installasjon. Les README filen i kjernekildetreet for alternative
          metoder til 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. Kjerne teamet anbefaler
          at denne kommandoen utstedes før hver kjernekompilering. Ikke stol
          på at kildetreet er rent etter utpakking.
        
        
          Det er flere måter å konfigurere kjernealternativene på. Vanligvis,
          gjøres dette for eksempel gjennom et menydrevet grensesnitt:
        
        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 et riktig menyconfig
                ncurses grensesnitt linjetegning på en UTF-8 linux
                tekstkonsoll.
               
                Hvis brukt, sørg for å erstatte <host_LANG_value>med
                verdien av$LANGvariabel fra
                verten din. Du kan alternativt bruk i stedet vertens verdi av$LC_ALLeller$LC_CTYPE.
 
- 
              make
              menuconfig
            
- 
              
                Dette starter et ncurses menydrevet grensesnitt. For andre
                (grafiske) grensesnitt, skriv make help.
               
 
        
          For generell informasjon om kjernekonfigurasjon se 
          https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt.
          BLFS har litt informasjon angående spesielle
          kjernekonfigurasjonskrav for pakker utenfor av LFS på 
          https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index.
          Ytterligere informasjon om konfigurering og bygging av kjernen
          finner du på http://www.kroah.com/lkn/
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Et godt utgangspunkt for å sette opp kjernekonfigurasjonen er å
            kjøre make
            defconfig. Dette vil sette grunnleggende
            konfigurasjon til en god tilstand som tar din nåværende
            systemarkitektur i betraktning.
          
          
            Sørg for å aktivere/deaktivere/stille inn følgende funksjoner,
            ellers kan systemet ikke fungere riktig eller starte opp i det
            hele tatt:
          
          General setup -->
   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
Device Drivers  --->
  Graphics support --->
   Frame buffer Devices --->
      [*] Support for frame buffer devices ----
  Generic Driver Options  --->
   [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
   [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
         
        
          Det er flere andre alternativer som kan være ønsket avhengig av
          kravene til systemet. For en liste over nødvendige alternativer for
          BLFS pakker, se 
          BLFS Indeks over kjerneinnstillinger
          (https://www.linuxfromscratch.org/blfs/view/11.1/longindex.html#kernel-config-index).
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Hvis vertsmaskinvaren din bruker UEFI og du ønsker å starte opp
            LFS-system med det, bør du justere noen kjernekonfigurasjon som
            på følgende 
            BLFS side.
          
         
        
          
            Begrunnelsen for de ovennevnte
            konfigurasjonselementene:
          
          
            - 
              Enable kernel
              headers through /sys/kernel/kheaders.tar.xz
- 
              
                Dette vil kreve cpio for å bygge kjernen.
                cpio er ikke
                installert av LFS.
               
- 
              Support for
              uevent helper
- 
              
                Å ha dette alternativet satt kan forstyrre enhetens
                behandling ved bruk av Udev/Eudev.
               
- 
              Maintain a
              devtmpfs
- 
              
                Dette vil opprette automatiserte enhetsnoder som er befolket
                av kjerne, selv uten at Udev kjører. Udev kjører så på toppen
                av dette, administrere tillatelser og legge til
                symbolkoblinger. Denne konfigurasjonen element er nødvendig
                for alle brukere av Udev/Eudev.
               
 
        
          Alternativt, make
          oldconfig er kanskje mer hensiktsmessig i noen
          situasjoner. Se README filen for mer
          informasjon.
        
        
          Hvis ønskelig, hopp over kjernekonfigurasjonen ved å kopiere
          kjernens konfigurasjonsfil, .config,
          fra vertssystemet (forutsatt at den er tilgjengelig) til den
          utpakkede linux-5.16.9 mappen.
          Derimot, vi anbefaler ikke dette alternativet. Det er ofte bedre å
          utforske alle konfigurasjonsmenyer og lage kjernekonfigurasjonen
          fra grunnen av.
        
        
          Kompiler kjernebildet og modulene:
        
        make
        
          Hvis du bruker kjernemoduler, modulkonfigurasjon i /etc/modprobe.d kan være nødvendig. Informasjon
          knyttet til moduler og kjernekonfigurasjon er lokalisert i
          Section 9.3,
          “Oversikt over enhets- og modulhåndtering” og
          kjerne dokumentasjon i linux-5.16.9/Documentation mappen. Også,
          modprobe.d(5) kan være av interesse.
        
        
          Med mindre modulstøtte er deaktivert i kjernekonfigurasjonen,
          installere modulene med:
        
        make modules_install
        
          Etter at kjernekompileringen er fullført, er flere trinn nødvendig
          for å fullføre installasjonen. Noen filer må kopieres til
          /boot mappen.
        
        
          ![[Caution]](../images/caution.png) 
          
            Caution
          
          
            Hvis vertssystemet har en separat /boot partisjon, kopieres
            filene nedenfor 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 root bruker i vertssytemet:
          
          mount --bind /boot /mnt/lfs/boot
         
        
          Stien til kjernebildet kan variere avhengig av plattformen som er
          brukt. Filnavnet nedenfor kan endres for å passe din smak, men
          stammen av filnavnet skal være vmlinuz for å være kompatibel med det
          automatiske oppsettet av oppstartsprosessen beskrevet i neste
          avsnitt. De følgende kommandoene antar et x86 arkitektur:
        
        cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.16.9-lfs-11.1
        
          System.map er en symbolfil for
          kjernen. Den kartlegger funksjonsinngangspunktene til hver funksjon
          i kjernens API, samt adressene til kjernedatastrukturene for
          kjøringen av kjernen. Den brukes som en ressurs når man undersøker
          kjerneproblemer. Utfør følgende kommando for å installere
          kartfilen:
        
        cp -iv System.map /boot/System.map-5.16.9
        
          Kjernens konfigurasjonsfil .config
          produsert av make
          menuconfig steget ovenfor inneholder alle
          konfigurasjonsvalgene for kjernen som nettopp ble kompilert. Det er
          en god idé å beholde denne filen for fremtidig referanse:
        
        cp -iv .config /boot/config-5.16.9
        
          Installer dokumentasjonen for Linux kjernen:
        
        install -d /usr/share/doc/linux-5.16.9
cp -r Documentation/* /usr/share/doc/linux-5.16.9
        
          Det er viktig å merke seg at filene i kjernekildens mappen ikke
          eies av root. Når en pakke
          pakkes ut som bruker root
          (som vi gjorde inne i chroot), filene har bruker- og gruppe-IDer
          for hva som helst de var på pakkerens datamaskin. Dette er
          vanligvis ikke et problem for enhver pakke som skal installeres
          fordi kildetreet blir fjernet etter installasjonen. Imidlertid er
          Linux kildetreet ofte beholdt i lang tid. På grunn av dette er det
          en sjanse at hvilken bruker-ID pakkeren brukte vil bli tildelt noen
          på maskinen. Den personen ville da ha skrivetilgang til kjernens
          kilde.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            I mange tilfeller må konfigurasjonen av kjernen være oppdatert
            for pakker som vil bli 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 på linux-5.16.9 mappen å forsikre seg om at alle
            filer eies av brukeren root.
          
         
        
          ![[Warning]](../images/warning.png) 
          
            Warning
          
          
            Noe kjernedokumentasjon anbefaler å opprette en symbolkobling fra
            /usr/src/linux som peker på
            kjernens kildemappe. Dette er spesifikt for kjerner før
            2.6-serien og må ikke
            opprettes på et LFS system, for det kan forårsake problemer for
            pakker du kanskje ønsker å bygge når basis LFS systemet er
            fullstendig.
          
         
        
          ![[Warning]](../images/warning.png) 
          
            Warning
          
          
            Deklarasjonene i systemets include
            mappen (/usr/include) bør
            alltid være de som Glibc
            ble kompilert mot, det vil si de desinfiserte deklarasjonene
            installert i Section 5.4,
            “Linux-5.16.9 API Headers”. Derfor bør de
            aldri erstattes av enten
            de rå kjernedeklarasjonene eller andre kjernerensede
            deklarasjoner.