Hajlo.COMmunity

Pełna wersja: Kompilacja kernela.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
W tym oto tutorialu opiszę jak skompilować jądro Linux na Debianie i pochodnych. Zalecaną metodą jest kompilacja typu debian way, czyli kompilacja do pakietu (ów) deb.

Pierwszym etapem będzie oczywiście pobranie paczki ze źrodłami kernela ze strony kernel.org. Następnie instalujemy wymagane pakiety:

Kod:
su
(hasło roota)
apt-get install kernel-package build-essential libncurses5-dev fakeroot initramfs-tools

Nie wychodzimy z powłoki root. Rozpakowujemy pobrany plik do katalogu /usr/src:

Kod:
tar -xjvf linux-(wersja).tar.bz2 -C /usr/src

Przechodzimy do katalogu /usr/src i tworzymy dowiązanie symboliczne:

Kod:
cd /usr/src && ln -s linux-(wersja) linux

Najłatwiej jest wczytać poprzednią konfigurację kernela za pomocą komendy:

Kod:
make oldconfig

Możemy teraz przejść do edycji konfiguracji:

Kod:
make menuconfig

Jeżeli jesteśmy w posiadaniu wielordzeniowego procesora, możemy przyspieszyć proces kompilacji definiując liczbę rdzeni używaną przez program budujący (x to liczba rdzeni naszego procesora + 1):

Kod:
export CONCURRENCY_LEVEL=x

A skąd ja mam wiedzieć ile ja mam rdzeni...

Aby poznać liczbę rdzeni wydaj następującą komendę:

Kod:
grep "cpu cores" /proc/cpuinfo

Gdy już wszystko zrobione zostało zgodnie z planem, rozpocznijmy proces kompilacji:

Kod:
make-kpkg --append-to-version=-winek --initrd --revision=1 kernel_image kernel_headers

Gdy budowanie zakończy się sukcesem, zainstalujmy powstałe pakiety:

Kod:
dpkg -i linux-{image,headers}*.deb

Możemy teraz zrestartować komputer i sprawdzić czy nasz nowy kernel działa tak jak tego chcemy (domniemam że jeśli bierzesz się za kompilację kernela to wiesz jakie polecenie do tego służy).
Nie lepiej w przypadku gdy ktoś ma wielordzeniowy procesor użyć
Kod:
make -jx
Gdzie x liczba rdzeni naszego procesora +1. Czyli gdy mamy procesor dwurdzeniowy dajemy
Kod:
make -j3
.
Z tym, że ta komenda nie spowoduje kompilacji kernela do paczki. Można to obejść ustawiając zmienną CONCURRENCY_LEVEL:

Kod:
export CONCURRENCY_LEVEL=x+1

EDYTA: Dodałem do tutoriala.
Przekierowanie