Ubuntu/Kompilacja jądra

Z Wikibooks, biblioteki wolnych podręczników.

Informacje ogólne[edytuj]

Jądro Linuksa jest "sercem systemu" odpowiadającym za:

  • uruchamianie programów
  • obsługę urządzeń
  • operowanie kalendarzem i czasem
  • uruchamianie i wyłączanie komputera
  • inne systemowe czynności

Jest idealnym przykładem jądra monolitycznego, w którym wykonywane są wszystkie zadania i można dołączać moduły wzbogacające jądro. Zaletami jądra Linuksa są:

  • stabilność
  • prostota
  • sprawna komunikacja między modułami

System Ubuntu posiada jądro skompilowane dla procesorów "i386". Wszystkie procesory spotykane w PC obsługują tę architekturę, ale o wiele lepszym rozwiązaniem jest własnoręczne skompilowanie dla swojego procesora. Przy kompilacji możemy również wyrzucić niepotrzebne moduły i dodać te, które są potrzebne. Pozwala to na dokładne dopasowanie jądra do własnych potrzeb. Aby sprawdzić jaką wersję jądra masz zainstalowaną, wydaj polecenie w Terminalu:

uname -r


Kompilacja jądra z repozytoriów[edytuj]

1. Do prawidłowej kompilacji potrzebny jest libqt3-mt-dev lub libqt4-dev w zależności którą wersję QT posiadasz zainstalowaną w systemie.

a. Uruchom Synaptic z menu System-> Administracja-> Menadżer pakietów Synaptic
b. Wyszukaj pakiet libqt3 i zaznacz do zainstalowania libqt3-mt-dev

2. Teraz instalujemy jądro systemu.

a. Wyszukaj pakiet linux-source.
b. Zaznacz pakiet linux-source-[wersja jądra] (np. linux-source-3.5.2).

3. Zainstaluj zaznaczone pakiety klikając na Zastosuj.
4. Po zakończeniu instalacji kodu źródłowego jądra wyłącz Synaptic i uruchom ponownie komputer.

Kompilacja jądra z paczki[edytuj]

Możesz skompilować i zainstalować paczkę z najnowszą wersją jądra Linux pobierając ją ze strony: http://www.kernel.org 1. Po pobraniu paczki, skopiuj ją do katalogu "/usr/src" wydając polecenie w Terminalu:

sudo cp /home/nazwa_użytkownika/katalog_pobierania/linux-3.5.2.tar.bz2 /usr/src/

W tym przykładzie załóżmy że pobraliśmy jądro w wersji linux-source-3.5.2
2. Następnie przejdź do katalogu z paczką jądra:

cd /usr/src

3. Rozpakuj archiwa:

sudo tar -xvjf linux-source-3.5.2.tar.bz2

4. Wejdź do katalogu z rozpakowanym jądrem:

cd linux-source-3.5.2

5. Dobrym sposobem, lecz nie koniecznym jest użycie obecnego pliku konfiguracyjnego dla nowej kompilacji.
Możesz go skopiować do rozpakowanego katalogu z nowym jądrem:

cp /boot/config-`uname -r` ./.config

6. Przeprowadź konfigurację pakietu:

sudo make xconfig

7. Pojawi się okno z wyborem modułów, więc należy wybrać potrzebne.
8. Zapisz konfigurację jądra (ikonka Save na pasku narzędzi).
9. Następnie zbuduj pakiet poleceniem:

sudo make

10. Wykonaj instalacje wybranych modułów:

sudo make modules_install

11. Oraz instalację samego jądra:

sudo make install

Aktualizacja GRUB[edytuj]

Aby można było uruchomić system z samodzielnie skompilowanym jądrem systemu, trzeba uaktualnić menadżera
uruchamiania systemu "GRUB" poleceniem:

sudo grub-mkconfig  -o /boot/grub/grub.cfg

lub

sudo update-grub

Teraz już możesz uruchomić ponownie komputer wybierając nowe jądro.

Usuwanie jąder[edytuj]

Usuwanie ręcznie skompilowanego jądra[edytuj]

Gdy zechcemy odinstalować skompilowane jądro, należy uruchomić linuxa używając innego jądra niż te które zamierzamy usunąć i wydać następujące komendy:

sudo su
cd /boot
rm vmlinuz-*WERSJA-USUWANEGO-KERNELA*
rm initrd-*WERSJA-USUWANEGO-KERNELA*
rm System-map-*WERSJA-USUWANEGO-KERNELA*
rm config-*WERSJA-USUWANEGO-KERNELA
cd /lib/modules/
rm -r *WERSJA-USUWANEGO-KERNELA*
cd /var/lib/initramfs-tools/
rm *WERSJA-USUWANEGO-KERNELA*
update-grub


Usuwanie starych jąder[edytuj]

Sprawdzamy jakie mamy aktualne jądro : [1]

 uname -r  

NIE usuwamy tego jądra.

Sprawdzamy jakie mamy jądra :

 dpkg --list | grep linux-image 

Zostawiamy jądro aktualne i 2 poprzednie.

Usuwamy po kolei stare jądra ( zmień przykładową nazwę jądra , czyli linux-image-x.x.x.x-generic ręcznie na odpowiednią z poprzedniej listy ) :

 sudo apt-get purge linux-image-x.x.x.x-generic 

Uaktualniamy grub2

 sudo update-grub2

Uruchamiamy ponownie system

Źródła[edytuj]

  1. askubuntu question how-do-i-remove-old-kernel-versions-to-clean-up-the-boot-menu