Denna sektion täcker ändringar och viktig information angående den 2.6.18-baserade kärnan i Fedora Core 6. 2.6.18-kärnan inkluderar:
Stöd för arv av prioritet av lättviktsanvändarutrymme (http://lwn.net/Articles/178253/)
Ett felsökningsverktyg med "låsningsvalidering" (http://lwn.net/Articles/185666/)
En ny strömsparande policy för multikärnade system, SMPnice (http://lwn.net/Articles/186438/)
Ett mycket förbättrat SATA-lager (http://lwn.net/Articles/183734/)
Utväxlingsklös sidmigrering (http://lwn.net/Articles/160201/)
Per-zon VM-räknare
Per-uppdrag fördröjd räkning
En ny per-paket åtkomstkontroll för SELinux kallad secmark (http://james-morris.livejournal.com/11010.html)
Slumpartad i386 vDSO
Nya drivrutiner och stöd för fler enheter i befintliga drivrutiner.
Många felrättningar och andra små förbättringar
Fedora Core kan innehålla fixar för förbättringar och felrättningar eller fler funktioner. Därför kan Fedora Core kärnan inte vara identisk rad-för-rad med den så kallade vanilj-kärnan från kernel.org webbplatsen:
För att få tag i en lista över programfixar, ladda ner RPM-paketet med källkoden och kör följande kommando mot den:
rpm -qpl kernel-<version>.src.rpmFör att få en logg med de ändringar i paketet som gjorts kan du köra följande kommando:
rpm -q --changelog kernel-<version>Om du behöver en användarvänlig version av ändingsloggen, gå till http://wiki.kernelnewbies.org/LinuxChanges. En kort och full diff av kärnan är tillgänglig från http://kernel.org/git. Kärnans version i Fedora är baserad på Linus-trädet.
Anpassningar gjorda för versionen av Fedora är tillgängliga från http://cvs.fedora.redhat.com.
Fedora Core 6 inkluderar följande kärnbyggen:
Grundkärna, för användning i de flesta systemen. Konfigurerade källkoder finns i paketet kernel-devel-.<version>.<arch>.rpm
kärn-PAE, för användning i 32-bit x86 system med > 4GB RAM eller med CPUer som har funktionen 'NX (No eXecute)'. Denna kärna stöder både uniprocessor och multiprocessorsystem.
Virtualiseringskärnor för användning med paketet Xen-emulator. Konfigurerade källkoder finns i paketet kernel-xen-devel-.<version>.<arch>.rpm
Kdump-kärna för användning med kexec/kdump-kapacitet. Konfigurerade källkoder finns i paketet kernel-kdump-devel-.<version>.<arch>.rpm
Du kan installera kärnhuvudfiler för alla varianter av kärnan på samma gång. Filerna installeras under trädet /usr/src/kernels/. Använd följande kommando:<version>-[xen|kdump]<arch>/
su -c 'yum install kernel-{PAE,xen,kdump}-devel'Välj en eller flera av dessa varianter, separerade med komman och inga mellanslag, som det passar. Ange root lösenordet när så krävs.
![]() | Standardkärnan stöder SMP |
|---|---|
Det finns ingen separat SMP-kärna tillgänglig för Fedora Core 6 på i386, x86_64 och ppc64. Multiprocessorstöd är nu tillgängligt i grundkärnan. |
![]() | Stöd för kärna på PowerPC |
|---|---|
Det finns inget stöd för Xen eller kdump för PowerPC arkitekturen i Fedora Core 6. 32-bit PowerPC har fortfarande en separat SMP-kärna. |
Gå till http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html för information om felrapportering i Linux-kärnan. Du kan också använda http://bugzilla.redhat.com för att rapportera fel som är specifika för Fedora.
Många av handledningarna, exemplen och textböckerna om utveckling för Linux-kärnan förutsätter källkoden för kärnan är installerad under katalogen /usr/src/linux/. Om du skapar en symbolisk länk, som beskrivs nedan, så ska det vara möjligt att använda läromaterielet med Fedora Core paket. Installera lämplig källkod för kärnan, som beskrevs tidigare och kör sedan följande kommando:
su -c 'ln -s /usr/src/kernels/<version>.<språk>-<arkitektur>/usr/src/linux'
Ange lösenordet för root när det efterfrågas.
Fedora Core 6 innehåller inte paketet kernel-source utgivet i äldre versioner eftersom nu krävs bara kernel-devel paketet för att bygga externa moduler. Konfigurerad källkod finns, enligt beskrivning i denna sektion om kärnvarianter.
![]() | Instruktionerna hänvisar till den aktuella kärnan |
|---|---|
För att förenkla följande instruktioner har vi förutsatt att du vill konfigurera källkoden för kärnan att matcha din nuvarande kärna. I stegen nedan hänvisar uttrycket |
Användare som kräver åtkomst till källkoden för originalkärnan för Fedora Core, kan hitta dem i paketet kernel .src.rpm. För att skapa ett uppackat källkodsträd från denna fil, utför följande steg:
![]() | Bygg inte paket som superanvändaren (root) |
|---|---|
Bygga paket som superanvändaren är farligt och krävs inte, inte ens för kärnan. Dessa instruktioner beskriver hur du kan installera källkoden till kärnan som en vanlig användare. Många informationsplatser refererar till |
Förbered en miljö för att bygga RPM-paket i din hemkatalog. Kör följande kommandon:
su -c 'yum install rpmdevtools yum-utils' rpmdev-setuptree
Ange lösenordet för root när det efterfrågas.
Ladda ner kernel- filen. Aktivera lämpliga källdatalager, som t.ex. Core, Updates eller Testing, med flaggan <version>.src.rpm-e:
yumdownloader -e core-source -e updates-source --source kernel
Ange lösenordet för root när det efterfrågas.
Installera kernel- genom använda följande kommando:<version>.src.rpm
rpm -Uvh kernel-<version>.src.rpmDetta kommando skriver RPM-innehållet till ${HOME}/rpmbuild/SOURCES och ${HOME}/rpmbuild/SPECS, där ${HOME} är din hemkatalog.
![]() | Utrymme som krävs |
|---|---|
Den fullständiga byggprocessen för kärnan kan kräva flera gigabyte med extrautrymme på filsystemet som innehåller din hemkatalog. |
Förbered källkoden för kärnan med hjälp av dessa kommandon:
cd ~/rpmbuild/SPECS rpmbuild -bp --target $(uname -m) kernel-2.6.spec
Kärnans källkodsträd finns i katalogen ${HOME}/rpmbuild/BUILD/kernel-.<version>/linux-<version>.<arkitektur>
Konfigurationer för de specifika kärnor som levererades i Fedora Core 6 finns i katalogen ~/rpmbuild/BUILD/kernel-. Till exempel, i686-konfigurationsfilen kallas <version>/linux-<version>.<arkitektur>/configs/~/rpmbuild/BUILD/kernel-. Kör följande kommando för att placera önskad konfigurationsfil på rätt plats för byggnation:<version>/linux-<version>.<arkitektur>/configs/kernel-<version>-i686.config
cp configs/<önskad-konfig-file> .configVarje kärna får ett namn baserat på dess versionsnummer. Detta är värdet som uname -r kommandot visar. Kärnans namn definieras av de fyra första raderan in kärnans Makefile .Makefile har ändrats så att den genererar en kärna med ettannat namn från det som den aktiva kärnan har. För att accepteras av den aktiva kärnan, måste en modul kompileras för en kärna med korrekt namn. För att göra det måste du ändra i kärnans Makefile .
Till exempel, om uname -r returnerar strängen 2.6.17-1.2345_FC6 , ändra EXTRAVERSION definitionen från detta:
EXTRAVERSION = -prep
till detta:
EXTRAVERSION = -1.2345_FC6
Det innebär, ersätt allt från det sista tankestrecket och framåt.
Kör följande kommando:
make oldconfig
Du kan sedan fortsätta som vanligt.
![]() | Bygga kärnbinär-RPM:er |
|---|---|
Normalt sett byggs kärnor för Fedora genom använda tillbehöret |
Ett uppackat källkodsträd krävs inte för att bygga en kärnmodul, som t.ex. din egna drivrutin för en enhet, för den nuvarande kärnan. Endast paketet kernel-devel krävs för att bygga externa moduler. Om du inte valde det under installationen, använd Pirut för att installera det, gå till Program → Lägg till/Ta bort Program eller använd yum för att installera det. Kör följande kommando för att installera kernel-devel paketet med yum.
su -c 'yum install kernel-devel'
Till exempel, för att bygga foo.ko modulen, skapa följande Makefile i katalogen som innehåller filen foo.c:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Kör kommandot make för att bygga modulen foo.ko.