Artikelkategori: 10
Skriven av mdkdio 2015-11-01 20:15
url: 
Redigerad av: minime  2020-04-02 19:41:27

Kompilera kernel 4.x (Komprimerad bzImage kärna)

Denna guide baseras på Eric Hameleers guide, se länk i slutet av artikeln.

Uppdatering för 5.x kärnan under utveckling. Uppdatering kommer... /mdkdio

1. Ladda ned kernel version du vill kompilera
t.ex. 4.2.5
Antingen via din webläsare och www.kernel.org
Eller via wget
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.2.5.tar.xz
Packa upp den nedladdade filen med följande kommando
tar -C /usr/src -xf linux-4.2.5.tar.xz
Gå sedan till /usr/src/ för att fortsätta...
cd /usr/src/
Ta bort nuvarande symboliska länken linux
rm linux
Skapa en symbolisk länk till den nya kärnan 4.2.5
ln -s linux-4.2.5 linux

Använd konfigurationen från kärnan du redan kör (t.ex. 3.10.17-generic)
zcat /proc/config.gz > /usr/src/linux/.config
Kör sedan make oldconfig i kärnans källkatalog så att standard konfigurationen används ifrån den .config fil du nyss installerat. Sedan din kärnas källa troligen är nyare än .config filens, kommer det att finnas nya alternativ att välja mellan, men du behöver bara svara på dessa med att trycka på enter i normala fall, eller M för att inkludera drivrutinen som modul.
cd /usr/src/linux
make oldconfig
Du har nu konfigurerat en enkel "standard kärna"

Om du befinner dig i X, så kan du nu starta den X baserade konfiguratorn xconfig. Eller om du vill, logga ut ifrån X och köra menuconfig:
i X (via konsol)
make xconfig
eller
make menuconfig om du avslutat X

Gå nu igenom de alternativ du finner lämpliga för ditt system, och den hårdvara du har i din dator.
Normalt så räcker det med följande:

Skapa ext3 och ext4 (under "Filesystems". Notera dock att ext4 behöver jdb drivare också). Och reiser/xfs/jfs i kärnan i stället för som moduler.
På så vis slipper du skapa en till initrd

Aktivera 64GB RAM (under “Processor type and features” > "High Memory Support (64GB)"). Om du har 4GB RAM eller mer.

Använder du en "desktop" eller "laptop" dator, aktivera "low-latency" kärna, multimedia program kommer då att köras smidigare.
(under “Processor type and features” > “Preemption model” > “Preemptible kernel”).
OBS! under 5.x kärnan finner du low-latency under "General Setup" - "Preemption model" - "Preemptible kernel".

Ange en "1000 Hz timer" (under “Processor type and features” > “Timer Frequency” > “1000 Hz”).
Om du kör 3.10.17 vid tillfället du kopilerar din nya kärna, så är detta redan gjort. Men kontrollera för ordningens skull.
Eller
Ange tickless timer (dynamic ticks - under “Processor type and features” > “Tickless System (Dynamic Ticks)”).

När du är nöjd, spara konfigurationen.
Dags att kompilera den nya kärnan:

make bzImage modules (Kompilera kärnan och modulerna)
make modules_install (installera modulerna till /lib/modules/ )
cp arch/x86/boot/bzImage /boot/vmlinuz-custom-4.2.5 (kopiera den nya kärnan)
cp System.map /boot/System.map-custom-4.2.5 (behövs ej/optional)
cp .config /boot/config-custom-4.2.5 (backup av din konfigurationsfil för kärnan)
cd /boot
rm System.map (Ta bort den gamla länken)
ln -s System.map-custom-4.2.5 System.map (Skapa en ny länk)
Dags att redigera /etc/lilo.conf
t.ex. nano /etc/lilo.conf
Lägg till en sektion för din nya kärna. Kom ihåg att din nya kärna kanske inte kan starta ditt system, så du bör spara den befintliga konfigurationen. Din nuvarande lilo.conf fil har en sektion som ser ut ungefär som följande...

image = /boot/vmlinuz
root = /dev/sda1
label = linux
read-only
#
Lägg till en ny sektion efter denna:

image = /boot/vmlinuz-custom-4.2.5
root = /dev/sda1
label = newkernel
read-only
#
(OBS! /dev/sda1 kan vara något annat. T.ex. /dev/sda5)

Spara filen, och kör lilo för att aktivera ändringarna
lilo

Det är nu dags att starta om systemet, och testa din nya kärna.
Om du inte noterar något problem, och är nöjd med din nya kärna, kan du ändra i /etc/lilo.conf (i början av filen).
nano /etc/lilo.conf
default = newkernel

Om du nu funderar på vad du ska göra med Slackware's kernel-headers paketet.
Låt det vara! Ta inte bort det

Mer info?
http://docs.slackware.com/howtos:slackware_admin:kernelbuilding

×