Kompilacja jądra 2.6.32.11
: 26 kwietnia 2010, 22:18
W tym opisie zajmę się problematyką omówienia, skonfigurowania oraz skompilowania własnego jądra systemu Linux, opartego w głównej mierze o konfigurację jądra Debiana.
Zanim zabierzemy się do kompilacji jądra wykonajmy polecenie: by sprawdzić jaką wersją jądra obecnie dysponujemy. Mój czysty Debian Lenny 504 daje taki wynik:
Zacznijmy od zainstalowania potrzebnych pakietów: Przejdźmy teraz do katalogu, w którym elegancja wymaga kompilować jądra:
Teraz ze strony kernel.org, pobierzmy najnowsze stabilne jądro:
Rozpakujmy je: Przejdźmy do rozpakowanego katalogu: Jeżeli nie mamy doświadczenia w kompilowaniu własnych jąder, warto skorzystać z przygotowanych konfigów deweloperów Debiana, spis wszystkich konfigów można dostać na stronie http://merkel.debian.org/~jurij. Nam natomiast, posłuży konfig dedykowany dla naszej dystrybucji: Teraz go rozpakujmy:
Wpisujemy teraz w konsoli
Teraz, gdy pojawi nam się niebieski ekran zjeżdżamy na sam dół i wchodzimy przyciskając Enter w opcję Pojawi nam się małe okienko, w które wpisujemy nazwę naszego pliku konfiguracyjnego, czyli i zatwierdzamy kolejny raz wciskając Enter. Od tej pory możemy zacząć wprowadzać własne zmiany w konfigu. Gdy ustawimy je zgodnie z naszymi potrzebami, pozostaje już tylko wyjść i zapisać zmiany: przechodzimy do opcji i potwierdzamy wciskając Enter.
Jeżeli naszym oczom okazał się taki komunikat: oznacza to, że zapisanie konfigu przebiegło pomyślnie i możemy teraz zabrać się za kolejny etap. Skoro mamy nasze jądro już skonfigurowane, to powinniśmy je skompilować. Robimy to wpisując kolejno: Zostaniemy teraz zapytani o serię pytań, jeżeli nie mamy pewności co do wyboru opcji po prostu naciskajcie Enter, wówczas zostaną wybrane wartości domyślne.
Jeżeli podczas procesu kompilacji jądra pojawią się błędy, należy wpisać: a następnie poprawić nasz niedziałający config, wykonując jeszcze raz: Jeżeli naszym oczom okaże się taki komunikat, oznacza to, że kompilacja przebiegła pomyślnie.
Przechodzimy teraz do katalogu wyżej: I instalujemy nasze nowo utworzone jądro: Teraz pozostaje nam jeszcze utworzenie ,,rozrusznika'' dla naszego jądra, bez niego nasze jądro nie wystartuje. W tym celu musimy wykonać polecenie: gdzie 2.6.32.11, odpowiada wersji jądra jaką używamy do tej pory i jaką zwraca komenda uname -a. Teraz musimy edytować plik: a dla nowszych wersji Teraz trzeba dodać linijkę dla naszego jądra. Wszystko powinno wyglądać mniej więcej podobnie do poniższego: Teraz musimy zresetować maszynę wpisując:
Jeżeli nasz komputer się uruchomi, a po zalogowaniu i wpisaniu uname -a, pojawi się mniej więcej taki wpis: Oznacza, że wszystko wykonaliśmy poprawnie, a system działa na nowym jądrze.
Uwaga:
Niektóre polecenia wymagają uprawnień administratora systemu - root.
Oryginalny artykuł: http://www.4unix.pl/debian/kompilacja-w ... jadra.html
Zanim zabierzemy się do kompilacji jądra wykonajmy polecenie:
Kod: Zaznacz cały
uname -a
Kod: Zaznacz cały
Linux debian 2.6.26-2-686 #1 SMP Tue Mar 9 17:35:51 UTC 2010 i686 GNU/Linux
Kod: Zaznacz cały
apt-get --yes install kernel-package ncurses-dev zlib1g-dev fakeroot wget bzip2
Kod: Zaznacz cały
cd /usr/src
Kod: Zaznacz cały
wget [URL]http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.11.tar.bz2[/URL]
Kod: Zaznacz cały
tar xvjf linux-2.6.32.11.tar.bz2
Kod: Zaznacz cały
cd linux-2.6.32.11
Kod: Zaznacz cały
wget [url=http://merkel.debian.org/%7Ejurij/2.6.32-9/i386/config-2.6.32-3-686.gz]http://merkel.debian.org/~jurij/2.6.32-9/i386/config-2.6.32-3-686.gz[/URL]
Kod: Zaznacz cały
gunzip config-2.6.32-3-686.gz
Kod: Zaznacz cały
make menuconfig
Kod: Zaznacz cały
Load an Alternate Configuration File
Kod: Zaznacz cały
config-2.6.32-3-686
Kod: Zaznacz cały
<_Exit_>
Jeżeli naszym oczom okazał się taki komunikat:
Kod: Zaznacz cały
#
# configuration written to config-2.6.32-3-686
#
*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.
Kod: Zaznacz cały
make-kpkg clean
fakeroot make-kpkg --revision=custom.1.0 kernel_image
Jeżeli podczas procesu kompilacji jądra pojawią się błędy, należy wpisać:
Kod: Zaznacz cały
make clean
Kod: Zaznacz cały
make menuconfig
Kod: Zaznacz cały
chmod -R og=rX /usr/src/linux-2.6.32.11/debian/linux-image-2.6.32.11
chown -R root:root /usr/src/linux-2.6.32.11/debian/linux-image-2.6.32.11
dpkg --build /usr/src/linux-2.6.32.11/debian/linux-image-2.6.32.11 ..
dpkg-deb: building package `linux-image-2.6.32.11' in `../linux-image-2.6.32.11_custom.1.0_i386.deb'.
make[2]: Leaving directory `/usr/src/linux-2.6.32.11'
make[1]: Leaving directory `/usr/src/linux-2.6.32.11'
Kod: Zaznacz cały
cd ..
Kod: Zaznacz cały
dpkg -i linux-image-2.6.32.11_custom.1.0_i386.deb
Kod: Zaznacz cały
mkinitramfs -o /boot/inited.img-2.6.32.11 2.6.32.11
Kod: Zaznacz cały
vi /boot/grub/menu.lst
Kod: Zaznacz cały
vi /boot/grub/grub.cnf
Kod: Zaznacz cały
initrd /boot/inited.img-2.6.32.11
Kod: Zaznacz cały
title Debian GNU/Linux, kernel 2.6.32.11
root (hd0,0)
kernel /boot/vmlinuz-2.6.32.11 root=/dev/sda1 ro quiet
initrd /boot/inited.img-2.6.32.11
title Debian GNU/Linux, kernel 2.6.32.11 (single-user mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32.11 root=/dev/sda1 ro single
initrd /boot/inited.img-2.6.32.11
Kod: Zaznacz cały
shutdown -r now
Kod: Zaznacz cały
Linux debian 2.6.32.11 #3 SMP Sun Apr 11 12:30:53 EDT 2010 i686 GNU/Linux
Uwaga:
Niektóre polecenia wymagają uprawnień administratora systemu - root.
Oryginalny artykuł: http://www.4unix.pl/debian/kompilacja-w ... jadra.html