8.6. Bygg en ny kärna

Varför vill någon bygga en ny kärna? Det behövs ofta inte eftersom standardkärnan som skickas med Debian hanterar de flesta konfigurationer. Debian erbjuder även ett flertal alternativa kärnor. Så du kanske vill kontrollera först om det finns ett alternativt kärnavbildningspaket som bättre passar för din maskinvara. Dock kan det vara användbart att bygga en ny kärna för att:

8.6.1. Hantera kärnavbildningar

Var inte rädd att försöka bygga en kärna. Det är kul och ger mycket.

För att bygga en kärna på Debians sätt behöver du några paket: fakeroot, kernel-package, linux-source-2.6 och ett fåtal andra som antagligen redan är installerade (se /usr/share/doc/kernel-package/README.gz för en komplett lista).

Denna metod kommer att göra en .deb av källkoden för din kärna och om du har icke-standardmoduler, göra ett synkroniserat beroende .deb av dessa också. Det här är ett bra sätt att hantera kärnavbildningar på; /boot kommer att tillhandahålla kärnan, System.map och en logg för den aktiva konfigurationsfilen för byggnationen.

Observera att du inte behöver bygga din kärna på Debians sätt; men vi anser att användning av paketsystemet för att hantera din kärna faktiskt är säkrare och enklare. Du kan till och med hämta källkod för din kärna från Linus istället för paketet linux-source-2.6 och ändå använda byggnationsmetoden för kernel-package.

Observera att du kan hitta fullständig dokumentation om användningen av kernel-package under /usr/share/doc/kernel-package. Detta avsnitt innehåller bara en kort genomgång.

Från och med nu antar vi att du har fria tyglar över din maskin och kommer att packa upp källkoden till din kärna någonstans i din hemkatalog[18]. Se till att du står i katalogen du vill packa upp källkoden till, packa upp den med tar xjf /usr/src/linux-source-3.16.tar.bz2 och byt till katalogen linux-source-3.16 som har skapats.

Nu kan du konfigurera din kärna. Kör make xconfig om X11 är installerad, konfigurerad och körs; kör make menuconfig annars (du behöver ha libncurses5-dev installerad). Ta lite tid att läsa igenom onlinehjälpen och välj försiktigt. När du är osäker är det normalt sett bättre att inkludera enhetsdrivrutinen (den programvara som hanterar maskinvara och kringutrustning såsom nätverkskort, SCSI-styrkort och så vidare) du är osäker på. Var försiktig: andra inställningar som inte är relaterade till specifik maskinvara bör lämnas kvar med förvalda värden om du inte förstår dem. Glöm inte att välja Kernel module loader i Loadable module support (den är inte vald som standard). Om den inte inkluderas kommer din Debian-installation att få problem.

Rensa källkodsträdet och återställ parametrarna för kernel-package. För att göra det här, kör make-kpkg clean.

Bygg nu kärnan: fakeroot make-kpkg --initrd --revision=anpassad.1.0 kernel_image. Versionsnumret 1.0 kan ändras om du vill; det är bara ett versionsnummer så att du kan hålla reda på dina kärnbyggnationer. Du kan även mata in vilket ord som helst istället för anpassad (till exempel ett värdnamn). Kärnbyggnationen kan ta sin tid beroende på hur kraftfull din maskin är.

När kompileringen är färdig kan du installera din anpassade kärna som ett vanligt paket. Kör, som root, dpkg -i ../linux-image-3.16-underarkitektur_anpassad.1.0_s390x.deb. Underarkitekturens del är en valfri underarkitektur, beroende på vilka kärninställningar du valt. dpkg -i kommer att installera kärnan tillsammans med några andra trevliga hjälpfiler. Till exempel, System.map kommer att installeras korrekt (behjälplig för felsökning av problem med kärnan) och /boot/config-3.16 kommer att installeras som innehåller dina aktuella konfigurationsinställningar. Ditt nya kärnpaket är också tillräckligt smart för att automatiskt uppdatera starthanteraren för att använda den nya kärnan. Om du skapat ett modulpaket, behöver du installera det paketet också.

Nu är det tid för att starta om systemet: läs noga alla varningar som det ovanstående steget kan ha producerat, kör sedan shutdown -r now.

För mer information om Debians kärnor och byggnation av kärnor, se Handbok för Debians Linuxkärna. För mer information om kernel-package, läs den utmärkta dokumentationen i /usr/share/doc/kernel-package.



[18] Det finns andra platser där du kan packa upp källkoden och bygga din anpassade kärna men det är lättast eftersom det inte kräver speciella rättigheter.