Jedną z pierwszych rzeczy, jakie wypadało by zrobić po zainstalowaniu systemu Linux jest kompilacja jądra (oczywiście trzeba mieć zainstalowane źródła jądra - w chwili, kiedy to piszę najnowszą wersją jądra jest 2.2.16, a przygotowywane jest jądro 2.4.0) aby dopasować tę najważniejszą część systemu do indywidualnych preferencji. Kod źródłowy jądra powinien znajdować się w katalogu /usr/src/linux-(wersja_jądra) - np. /usr/src/linux-2.2.16. Jeśli nowe jądro zostało dopiero co rozpakowane, to dobrze jest utworzyć link symboliczny /usr/src/linux do katalogu z aktualnym kodem źródłowym jądra, np. /usr/src/linux-2.2.13. W podkatalogu Documentation, jak się można domyślić, znajduje się cała dokumentacja do jądra. Znajdują się tam dokumenty opisujące obsługiwany sprzęt, systemy plików, ustawienia sieciowe itp.
Poniżej znajduje się lista programów i bibliotek niezbędnych do kompilacji i funkcjonowania jądra w wersji 2.2.13 oraz sposób sprawdzenia wersji.
Kernel modutils 2.1.121 ; insmod -V Gnu C 2.7.2.3 ; gcc --version Binutils 2.8.1.0.23 ; ld -v Linux libc5 C Library 5.4.46 ; ls -l /lib/libc* Linux libc6 C Library 2.0.7pre6 ; ls -l /lib/libc* Dynamic Linker (ld.so) 1.9.9 ; ldd --version or ldd -v Linux C++ Library 2.7.2.8 ; ls -l /usr/lib/libg++.so.* Procps 1.2.9 ; ps --version Procinfo 16 ; procinfo -v Psmisc 17 ; pstree -V Net-tools 1.52 ; hostname -V Loadlin 1.6a Sh-utils 1.16 ; basename --v Autofs 3.1.1 ; automount --version NFS 2.2beta40 ; showmount --version Bash 1.14.7 ; bash -version Ncpfs 2.2.0 ; ncpmount -v Pcmcia-cs 3.0.13 ; cardmgr -V PPP 2.3.8 ; pppd --version Util-linux 2.9t ; chsh -vUwaga: pakiet autofs jest niezbędny tylko w przypadku wybrania przy kompilacji jądra opcji autofs, podobnie jak NFS, Ncpfs, Pcmcia-cs oraz PPP. Konfigurację jądra można przygotować na kilka sposobów:
Po przygotowaniu konfiguracji można rozpocząć kompilację. Należy po kolei wykonać następujące polecenia (w katalogu /usr/src/linux*):
Aby zainstalować jądro, należy je przekopiować do katalogu /boot. Jeśli została zmieniona wersja jądra, to należy do tego katalogu przekopiować także plik /usr/src/linux/System.map. Następnie należy poprawić plik konfiguracyjny /etc/lilo.conf. Należy dodać sekcję zaczynającą się od opcji "image=". Jeśli lubisz ryzykować, to możesz usunąć już istniejącą taką sekcję, ale w tym przypadku powracanie do poprzedniego jądra, jeśli z nowym coś nie wyszło, będzie utrudnione. Należy poprawić linię "image=" tak, aby po znaku równości była prawidłowa ścieżka - w tym przypadku /boot/bzImage. Po tej linii powinny się znaleźć opcje "root=/dev/hdxx" - zamiast xx powinny być odpowiednie oznaczenia dysku, na którym jest zainstalowany Linux (powinny pasować ustawienia, które były wcześniej w tym pliku) oraz opcja "label=coś". Opcja label oznacza to, co musi być wpisane przy starcie systemu po znakach "LILO: ". Labele nie mogą się powtarzać - dla każdego jądra bądź innego systemu muszą być inne. Domyślnie uruchamiany jest pierwszy obraz lub ten, który jest określony parametrem "default=nazwa_obrazu". Parametr ten powinien znajdować się przed pierwszą linią "image=...". Mam nadzieję, że za bardzo nie namieszałem :). Może przykład dla dwóch jąder i systemu na dysku /dev/hda1 trochę rozjaśni obraz:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
password=abacada
restricted
timeout=30
image=/boot/bzImage
label=l
root=/dev/hda1
read-only
image=/boot/bzImage2
label=stary
root=/dev/hda1
read-only
Jak widać, są tutaj 2 jądra o identyfikatorach "l" i "stary". Jeśli jądro
zostanie wywołane z parametrem, to konieczne będzie podanie hasła (w tym
przypadku "abacada"). Jest to zabezpieczenie przeciw dostaniu się do systemu
z prawami root'a przez podanie parametru "single".