Kompilacja jądra

Z openSUSE wiki


Artykuł powstał na podstawie tematu z Forum użytkowników - FAQ jak skompilować jądro 2.6.21 (openSuSe 10.2)

Przed przystąpieniem do kompilacji jądra powinniśmy zadać sobie pytanie:

Kiedy warto instalować nowe jądro?

Powinniśmy się tym zająć w przypadku gdy:

  • nowa wersja wspiera sprzęt, który na wcześniejszej wersji nie działał prawidłowo,
  • mamy problem z oprogramowaniem virtualbox, vmware (USB_FILE_SYSTEM),
  • nowa wersja wprowadza poprawki ważne dla bezpieczeństwa.

Spis treści

Przygotowanie Systemu

Wskazówka.png Wskazówka: Zaleca się przed kompilacją zabezpieczenie się w sterowniki do karty graficznej oraz wifi

Kompilacja jądra wymaga uprawnień roota. Aby móc zainstalować jądro, w systemie muszą być obecne pakiety make, ncurses-devel oraz gcc. Znajdują się one w repozytorium pakietów z dystrybucją openSUSE a ich instalację można przeprowadzić przy pomocy ulubionego menedżera pakietów.

Ściąganie Jądra

Przechodzimy do katalogu:

cd /usr/src

Ściągamy najnowsze źródło z kernel.org w chwili obecnej jest: linux-2.6.21.tar.gz

wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.gz

Jądro waży 53 MB więc proszę się uzbroić w cierpliwość może to chwilkę potrwać w zależności od prędkości naszego łącza.

Następną czynnością będzie wypakowanie nowego jądra:

tar -zxvf linux-2.6.21.tar.gz

tworzymy dowiązanie/skrót:

ln -s linux-2.6.21 linux

Przechodzimy do nowego katalogu:

cd /usr/src/linux

Konfiguracja Jądra

Wskazówka.png Wskazówka: Jeżeli już kompilowaliśmy kiedyś jądro i zapisaliśmy konfigurację możemy się pokusić o użycie jej do kompilacji nowego, ewentualnie zmieniając niektóre ustawienia. Aby to zrobić musimy wykonać:
make mrproper
cp /boot/config – 'uname-r' ./.config

Czas na konfigurację jadra, możemy do tego celu wykorzystać trzy rodzaje konfiguratorów:

make config

Make config.png
make config

Konfiguracja tym narzędziem polega na odpowiadaniu na kolejne pytania.

make menuconfig

Make menuconfig.png
make menuconfig

Konfigurator tworzy menu o strukturze drzewa gdzie w bardzo wygodny sposób wybieramy poszczególne opcje.

make xconfig

Make xconfig.png
make xconfig

Konfigurator tworzy okno w którym jak w poprzednim konfiguratorze mamy drzewo gdzie zaznaczamy interesujące nas opcje.
Sama konfiguracja jądra wymaga największego wysiłku i znajomości komponentów naszego sprzętu. Konkretne elementy dodajemy jako MODUŁY - dynamicznie ładowane elementy jądra lub też jako STAŁE elementy jądra ładowane za każdym razem. Po wybraniu odpowiadających nam elementów zapisujemy konfiguracje.

Kompilacja jądra

Czas na budowe nowego jądra standardowo służy do tego polecenie:

make rpm 

lecz w moim przypadku nowe jądro było tworzone w architekturze i368 ja ja chialem w i686 więc tworze je z komendy:

make UTS_MACHINE=i686 rpm
Uwaga.png Uwaga: Czas kompilacji zależy od prędkości naszego sprzętu w przypadku słąbszych procesorów może to zająć sporo czasu proszę się więc uzbroić w cierpliwość

nowe jajko powstanie w katalogu:

ls -l /usr/src/package/RPMS/<architektura_naszego_CPU>/
Wskazówka.png Wskazówka: może to być i386, i586, i686, x86_64

Instalacja jądra

przechodzimy do katalogu z nowym jądrem:

cd /usr/src/packages/RPMS/<architektura_naszego_CPU>

i instalujemy nowe jądro wykonując polecenie:

rpm -ivh kernel-2.6.21default-1.i386.rpm

Konfiguracja systemu

Aby nowe jądro pracowało wymagany jest nowy bootsplash (logo startowe systemu)

mkinitrd

Musimy stworzyć w bootloaderze nową pozycję z naszym nowym jadrem:

Yast bootloader.png
yast
System ->Program rozruchowy:




Yast bootloader.CloneSS.png
Dodaj -> Clone Selected Section 




Nadajemy nazwę nowej sekcji:

openSuSe 10.2 (kernel 2.6.21)

idziemy do:

Kernel image -> Przeglądaj

wpisujemy

/boot/vmkinuz/vmlinuz-2.6.21-default
Initial RAM Disk -> Przeglądaj

wpisujemy

/boot/initrd-26.21-default

I kończymy pracę wychodząc z yast OK

Jeżeli wszystko wykonalismy poprawnie po zrestartowaniu systemu w bootloaderze powinna widnieć nowa pozycja.

Patrz też

Bibliografia