Ta sekcja omawia zmiany oraz ważne informacje dotyczące kernela bazowanego na wersji 2.6.18 w Fedorze Core 6. Kernel 2.6.18 zawiera:
Wsparcie dla lekkiego dziedziczenia priorytetu przestrzeni użytkownika (http://lwn.net/Articles/178253/)
Narzędzie debugujące "lock validator" (http://lwn.net/Articles/185666/)
Nowa oszczędna polityka dla systemów wielordzeniowych, SMPnice (http://lwn.net/Articles/186438/)
Dużo ulepszona powłoka SATA (http://lwn.net/Articles/183734/)
Niewymienialna (swapless) migracja stron (http://lwn.net/Articles/160201/)
Liczniki VM na-stefę
Liczenie opóźnione na zadanie
Nowa kontrola "na pakiet" dla SELinuksa pod nazwą secmark (http://james-morris.livejournal.com/11010.html)
Zrandomizowane vDSO i386
Nowe sterowniki i wsparcie dodatkowych urządzeń do wielu istniejących sterowników
Wiele naprawionych błędów i inne małe ulepszenia
Fedora Core może zawierać dodatkowe patche dla ulepszenia kernela, rozwiązania błędów, lub dodatkowe cechy. W tej wersji, kernel Fedory Core może nie być linię w linię odpowiedni do tak zwanego kernela vanilla ze strony kernel.org:
Aby otrzymać listę tych patchy, pobierz źródłowy pakiet RPM i wykonaj następujące polecenie względem niego:
rpm -qpl kernel-<wersja>.src.rpmAby otrzymać log zmian w pakiecie, wykonaj następujące polecenie:
rpm -q --changelog kernel-<wersja>Jeśli potrzebujesz przyjaznej dla użytkownika wersji changelog-a, odwiedź http://wiki.kernelnewbies.org/LinuxChanges. Krótki i pełny diff kernela jest dostępny z http://kernel.org/git. Wersja kernela Fedory jest bazowana na drzewie Linusa.
Przeróbki zastosowane w wersji Fedorowej są dostępne z http://cvs.fedora.redhat.com .
Fedora Core 6 zawiera następujące kompilacje kernela:
Natywny kernel, do użycia w większości systemów. Skonfigurowane źródła są dostępne w pakiecie kernel-devel-.<wersja>.<architektura>.rpm
kernel-PAE, dla użycia w systemach x86 32-bitowych z > 4GB RAM-u, lub z procesoramu, które mają cechę 'NX (No eXecute). Ten kernel wspiera zarówno systemy uniprocesorowe, jak i multiprocesorowe.
Kernel wirutalizacji do użytku z pakietem emulatora Xen. Skonfiurowane źródła są dostępne w pakiecie kernel-xen-devel-.<wersja>.<archiwum>.rpm
Kernel Kdump do użytku z możliwościami kexec/kdump. Skonrigurowane źródla są dostępne w pakiecie kernel-kdump-devel-.<wersja>.<archiwum>.rpm
Możesz zainstalować nagłówki kernela dla wszystkich wariantów w tym samym czasie. Pliki te są instalowane w drzewie /usr/src/kernels/. Użyj następującej komendy:<wersja>-[xen|kdump]-<archiwum>/
su -c 'yum install kernel-{PAE,xen,kdump}-devel'Wybierz jeden lub więcej z tych wariantów, oddzielonych przecinkami bez spacji, jak pokazano. Wprowadź hasło root-a kiedy zostaniesz poproszony.
![]() | Domyślnie Kernel Dostarcza SMP |
|---|---|
Nie ma oddzielnego kernela SMP dostępnego dla Fedory Core 6 na i386, x86_64 oraz ppc64. Wsparcie multiprocesora jest dostarczane przez natywny kernel. |
![]() | Wsparcie Kernela dla PowerPC |
|---|---|
Nie ma wsparcia dla Xen lub kdump dla architektury PowerPC w Fedorze Core 6 test3. 32-bitowy PowerPC wciąż posiada oddzielny kernel SMP. |
Odwiedź http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html aby uzyskać informacje na temat raportowania błędow w kernelu. Możesz użyć również http://bugzilla.redhat.com do raportowania błędów specyficznych dla Fedory.
Wiele tutoriali, przykładów, oraz podręczników o rozwijaniu kernela Linuksa zakładają, że źródła kernela są zainstalowane w katalogu /usr/src/linux/. Jeśli zrobisz link symboliczny, jak pokazano poniżej, powinieneś nie mieć problemów z wykorzystaniem tych materiałów z pakietami Fedory Core. Zainstlauj właściwe źródła kernela, jak to pokazano wcześniej, a następnie wykonaj następujące polecenie:
su -c 'ln -s /usr/src/kernels/<wersja>.<wersja>-<architektura>/usr/src/linux'
Wprowadź hasło root-a kiedy zostaniesz poproszony.
Fedora Core 6 nie zawiera pakietu kernel-source dostarczanego w poprzednich wersjach, bowiem teraz jest wymagany tylko pakiet kernel-devel aby budować zewnętrzne moduły. Skonfigurowane źródła są dostępne, jak opisano w tej sekcji dotyczącej wariantów kernela.
![]() | Instrukcje Dotyczące Aktualnego Kernela |
|---|---|
W celu uproszczenia następujących wskazówek, założyliśmy, że chcesz skonfigurować źródła kernela aby pasowały do Twojego aktualnie uruchumionego kernela. W krokach przedstawionych poniżej, wyrażenie |
Użytkownicy, którzy potrzebują dostępu do oryginalnych źródeł kernela Fedory Core, mogą znaleźć je w pakiecie .src.rpm. Aby stworzyć drzewo źródłowe z tego pliku, wykonaj następujące kroki:
![]() | Nie Buduj Pakietów jako Superużytkownik (root) |
|---|---|
Budowanie pakietów jako superużytkownik jest niebezpieczne i niezalecane, nawet dla kernela. Te instrukcje pozwalają Ci zainstalować źródło kernela jako zwykły użytkownik. Wiele ogólnych stron informacyjnych odnosi się do |
Przygotuj środowisko do budowania pakietu RPM w Twoim katalogu domowym. Wykonaj następujące polecenia:
su -c 'yum install rpmdevtools yum-utils' rpmdev-setuptree
Wprowadź hasło root-a kiedy zostaniesz poproszony.
Pobierz plik kernel-. Włącz jakiekolwiek właściwe repozytoria źródłowe, jak na przykład Core, Updates, czy Testing, z opcją <wersja>.src.rpm-e:
yumdownloader -e core-source -e updates-source --source kernel
Wprowadź hasło root-a kiedy zostaniesz poproszony.
Zainstaluj kernel- używając polecenia:<wersja>.src.rpm
rpm -Uvh kernel-<wersja>.src.rpmTo polecenia zapisuje zawartość RPM-a do ${HOME}/rpmbuild/SOURCES oraz ${HOME}/rpmbuild/SPECS, gdzie ${HOME} jest Twoim katalogiem domowym.
![]() | Wymagane Miejsce |
|---|---|
Pełny proces budowania kernela może wymagać kilka gigabajtów dodatkowego miejsca w systemie plików zawierającym Twój katalog domowy. |
Przygotuj źródła kernela używając tych poleceń:
cd ~/rpmbuild/SPECS rpmbuild -bp --target $(uname -m) kernel-2.6.spec
Drzewo źródłowe kernela jest umieszczone w katalogu ~/rpmbuild/BUILD/kernel-.<wersja>/linux-<wersja>.<archiwum>
Konfiguracje dla specyficznych kerneli dostarczanych wraz z Fedorą Core 6 są w katalogu ~/rpmbuild/BUILD/kernel-. Na przykład, plik konfiguracyjny i686 ma nazwę <wersja>/linux-<wersja>.<archiwum>/configs~/rpmbuild/BUILD/kernel-. Wykonaj następujące polecenie aby umieścić żądany plik konfiguracyjny we właściwym miejscu do budowania:<wersja>/linux-<wersja>.<archiwum>/configs/kernel-<wersja>-i686.config
cp configs/<żądany-plik-konfiguracyjny> .configKażdy kernel otrzymuje nazwę bazowaną na jego numerze wersji. Jest to wartość, którą wyświetla polecenie uname -r. Nazwa kernela jest zdefiniowana przez pierwsze cztery linijki Makefile kernela. Makefile został zminiony, aby generować kernel z nazwą inną od aktualnie uruchumionego.
Na przykład, jeśli uname -r zwraca string 2.6.17-1.2345_FC6, zmień definicję EXTRAVERSION z tego:
EXTRAVERSION = -prep
na to:
EXTRAVERSION = -1.2345_FC6
To jest, zamień wszystko od finalnego myślinka naprzód.
Wykonaj następujące polecenie:
make oldconfig
Możesz wtedy postępować jak zwykle.
![]() | Budowanie Binarnych RPM-ów Kernela |
|---|---|
Normalnie, kernele dla Fedory są budowane przy użyciu narzędzia |
Drzewo źródłowe nie jest wymagane do budowy modułu kernela, jak na przykład Twojego własnego sterownika urządzenia, w odniesieniu do aktualnie używanego kernela. Tylko pakiet kernel-devel jest wymagany do budowy zewnętrznych modułów. Jeśli nie wybrałeś go podczas instalacji, użyj Pirut-a aby go zainstalować, idąc do Aplikacje → Dodaj/Usuń Aplikacje, lub użyj yum-a aby go zainstalować. Wykonaj następujące polecenie aby zainstalować pakiet kernel-devel używając yum-a.
su -c 'yum install kernel-devel'
Na przykład, aby zbudować moduł foo.ko, stwórz następujący Makefile w katalogu zawierającym plik foo.c:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Wykonaj polecenie make aby zbudować moduł foo.ko: