Hvorfor ønsker nogle at kompilere en ny kerne? Det er ofte ikke nødvendigt, da standardkernen leveret med Debian håndterer de fleste konfigurationer. Debian tilbyder ofte også flere alternative kerner. Så du kan først undersøge, om der er et alternativt kerneaftryk, som bedre svarer til dit udstyr. Det kan dog være nyttigt at kompilere en ny kerne for at:
håndtere specielle udstyrsbehov eller udstyrskonflikter med de præleverede kerner
brug indstillinger for kernen, som ikke er understøttet i de præleverede kerner (såsom understøttelse af høj hukommelse)
optimer kernen ved at fjerne ubrugte drivere så opstartshastigheden øges
opret en monolitisk i stedet for en modulopbygget kerne
kør en opdateret eller udviklingskerne
lær mere om Linuxkerner
Vær ikke bange for at prøve at kompilere kernen. Det er sjovt og giver indsigt.
For at kompilere en kerne på Debians måde, så skal du bruge nogle pakker: fakeroot
, kernel-package
, linux-source-2.6
og nogle få andre, som sandsynligvis allerede er installeret (se /usr/share/doc/kernel-package/README.gz
for den fulde liste).
Denne metode vil lave en .deb af din kernekilde, og, hvis du har moduler der ikke er standard, en synkroniseret afhængig .deb også for dem. Det er en bedre måde at håndtere kerneaftryk; /boot
vil indeholde kernen, System.map og en log over den aktive konfigurationsfil for kompileringen.
Bemærk at du ikke skal kompilere din kerne på “Debians måde”; men vi kan se at brug af pakkesystemet til at håndtere din kerne er sikkert og nemt. Du kan få dine kernekilder direkte fra Linus i stedet for linux-source-2.6
, men stadig bruge kompilationsmetoden fra kernel-package
.
Bemærk at du kan finde en fuldstændig dokumentation for brugen af kernel-package
under /usr/share/doc/kernel-package
. Dette afsnit indeholder kun en kort introduktion.
Herefter vil vi antage, at du har fri råderet over din maskine og vil udtrække din kernekilde til et sted i din hjemmemappe[19]. Vi antager også, at din kerneversion er 3.16. Sikr dig, at du er i mappen, hvor du ønsker at udpakke kernekilderne, udtræk dem via tar xf /usr/src/linux-source-3.16.tar.xz
og gå til mappen linux-source-3.16
, som er blevet oprettet.
Nu kan du konfigurere din kerne. Kør make xconfig
hvis X11 er installeret, konfigureret og afvikles; kør make menuconfig
ellers (du skal havelibncurses5-dev
installeret). Tag dig tid til at læse hjælpen fra nettet og vælg omhyggeligt. Hvis i tvivl, så er det typisk bedre at inkludere enhedsdriveren (programmet som håndterer udstyrsenheder, såsom Ethernetkort, SCSI-controllere og så videre), du er usikker på. Vær omhyggelig: Andre indstillinger, ikke relateret til specifikt udstyr, skal have standardværdien, hvis du ikke forstår dem. Glem ikke at vælge “Kernelmodulindlæseren” i “Understøttelse af modulindlæsning” (det valg er ikke standard). Hvis ikke inkluderet, så vil din Debian-installation opleve problemer.
Ryd kildetræe og nulstil parametrene for kernel-package
. Det gøres ved at afvikle make-kpkg clean
.
Kompiler nu kernen: fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image
. Versionsnummeret for “1.0” kan ændres; det er kun et versionsnummer, som du kan bruge til at registrere dine kernebygninger. På samme måde kan du placere ethvert ord i stedet for “custom” (f.eks. et værtsnavn). Kernekompilering kan tage et stykke tid, afhængig af din maskine.
Når kompileringen er færdig, så kan du installere din tilpassede kerne som enhver pakke. Som root, udfør dpkg -i ../linux-image-3.16-
. Delen subarchitecture
_1.0.custom_arm64.debsubarchitecture
er en valgfri underarkitektur, afhængig af hvilke kerneindstillinger du angav. dpkg -i
vil installere kernen, sammen med nogle andre gode støttefiler. For eksempel vil System.map
blive korrekt installeret (nyttigt til at fejlsøge kerneproblemer), og /boot/config-3.16
vil blive installeret, indeholdende dit nuværende konfigurationssæt. Din nye kernepakke er også klog nok til automatisk at opdatere din opstartsindlæser til at bruge den nye kerne. Hvis du har oprettet en modulpakke, så skal du også installere den pakke.
Det er tid til at genstarte systemet: Læs omhyggeligt alle advarsler som de ovenstående trin kan have medført, og så shutdown -r now
.
For yderligere information om Debian-kerner og kernekompilation, se Debian Linux Kernel Handbook. For yderligere information om kernel-package
, så læs den fine dokumentation i /usr/share/doc/kernel-package
.
[19] Der er andre placeringer, hvor du kan udtrække kernekilder og bygge din tilpassede kerne, men dette er nemmest, da det ikke kræver specielle tilladelser.