Aby skompilować jądro Linuxa, należy najpierw mieć jego źródła. Można je ściągnąć z Internetu albo znaleźć we własnej dystrybucji. Szukać należy pakietów o nazwie kernel-source-*, kernel-headers-* i kernel-doc*. Wybrać należy te o najwyższym numerze wersji (byle nie było to jądro testowe, 2.3.* lub 2.5.*). Po ich zainstalowaniu powinien już istnieć katalog /usr/src/linux. Należy się tam przenieść. W następnej kolejności należy skonfigurować jądro. Można to zrobić za pomocą trzech poleceń: make config, make menuconfig, make xconfig. Pierwsze - to konfiguracja w linii poleceń, krok po kroku, bardzo męcząca. Druga - to konfiguracja w semigrafice (okienka w trybie tekstowym), moim zdaniem najłatwiejsza. Wymaga jednak biblioteki ncurses. Trzecia - to konfiguracja w okienkach, dla ludzi czujących urazę do linii poleceń. Po wywołaniu jednego z tych poleceń można skonfigurować jądro do potrzeb własnego sprzętu. Każda z opcji konfiguracyjnych ma swój identyfikator i nazwę. Opiszę co niektóre ważniejsze opcje. - CONFIG_EXPERIMENTAL: Prompt for development and/or incomplete code/drivers
Od tej opcji zależy, czy w jądrze znajdą się eksperymentalne sterowniki. Jeśli zależy Ci na stabilnym systemie, wybierz N. Jeśli chcesz obejrzeć nowe możliwości, pracować nad ich rozwojem, albo po prostu ich potrzebujesz, wybierz Y. Strata stabilności jest marginalna. - CONFIG_MATH_EMULATION: Math emulation
Włącza emulację koprocesora matematycznego. Jeśli jądro ma pracować na systemach bez koprocesora, wybierz Y. W przeciwnym przypadku wybierz N. - CONFIG_MTRR: MTRR (Memory Type Range Register) support
Uruchamia obsługę MTRR. Po odpowiednim skonfigurowaniu MTRR może znacząco przyśpieszyć działanie karty graficznej. Wybierz Y. - CONFIG_SMP: Symmetric multi-processing support
Włącza obsługę systemów wieloprocesorowych. Niestety, niektóre sterowniki nie działają z SMP. Jeśli jądro ma pracować w systemie wieloprocesorowym, pisz Y. W przeciwnym razie N. - CONFIG_MODULES: Enable loadable module support
Uruchamia obsługę modułów jądra. Moduły pozwalają odchudzić jądro i ładować sterowniki w czasie jego pracy. Wybierz Y. - CONFIG_MODVERSIONS: Set version information on all symbols for modules
Pozwala na wykorzystanie modułów z poprzedniej wersji jądra w nowym, pod warunkiem że w obu jądrach opcja ta była włączona. Wybierz Y. - CONFIG_NET: Networking support
Włącza obsługę sieci. Nawet jeśli twój komputer nie ma dostępu do sieci, opcja ta powinna być włączona. Pamięci oszczędzisz przy sterownikach sieci. - CONFIG_SYSVIPC: System V IPC
Umożliwia komunikację między procesami w stylu System V. Umożliwia wykorzystanie semaforów, pamięci współdzielonej i kolejek komunikatów przez procesy użytkownika. Jako że wiele programów tego wymaga wybierz Y. - CONFIG_SYSCTL: Sysctl support
Pozwala na sterowanie systemem podczas pracy przez /proc/sys. Po prostu weź Y. - CONFIG_VT: Virtual terminal
Uruchamia terminale wirtualne. Jako że są mile widziane, wybierz Y. - CONFIG_UNIX98_PTYS: Unix98 PTY Support
Uruchamia obsługę pseudoterminali Unix98. Są używane przez wiele programów, w tym X terminale i Midnight Commandera. Obsługiwane są tylko w systemach z biblioteką glibc 2.1. Jeśli masz starszą bibliotekę libc, wybierz N. W każdym innym przypadku wybierz Y.
Wszystkie inne opcje dobierajcie wedle woli. Jeśli jakieś funkcje systemu są zaznaczone na Y - nie zmieniaj ich. W przypadku sterowników - zbędne zmieniaj na N, potrzebne na M lub Y (choć preferuj M-oduły). Po konfiguracji przychodzi czas na kompilację. Jeśli kompilujesz jądro po raz kolejny, wpisz make clean - usunie to pozostałości po poprzedniej kompilacji. Następnie wpisz make dep. Po tym wpisz make zImage - skompiluje to gotowe jądro. Jeśli kompilacja się nie powiedzie, możliwe jest, że wcieliłeś do niego za dużo sterowników. Musisz albo więcej sterowników przenieść do modułów, albo wpisać make bzImage. Jeśli kompilacja się powiedzie, wpisz make modules modules_install. Skompiluje to moduły i zainstaluje je w /lib/modules. Gotowy obraz jądra będzie spoczywać w /usr/src/linux/arch/$ARCH$/boot/zImage lub bzImage, gdzie $ARCH$ to architektura Twojego komputera, zazwyczaj i386. Możesz zainstalować go ręcznie, kopiując go do /boot i zmieniając konfigurację LILO. Możesz też użyć go do bootowania z loadlin'a (dosowego bootloadera Linuxa). Jeśli używasz LILO, lepiej jednak zlecić zadanie automatyce, wpisując w katalogu /usr/src/linux polecenie make zlilo lub bzlilo (w zależności od tego, jak skompilowałeś jądro). Po udanej instalacji można zrebutować system. Można też utworzyć dyskietkę z jądrem - make zdisk lub bzdisk. |