Ubuntu/Kompilacja jądra

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