Debian i jądro systemu

Czy mogę skompilować i zainstalować jądro systemu bez dostosowywania go do specyfiki Debiana?
Tak.
Z jednym tylko zastrzeżeniem: biblioteki języka C w systemie Debian są budowane z wykorzystaniem najnowszych stabilnych wersji plików nagłówkowych jądra systemu. Jeśli chcesz skompilować program z wykorzystaniem nowszych plików nagłówkowych jądra niż te ze stabilnej wersji, stoisz przed wyborem pomiędzy uaktualnieniem pakietu zawierającego pliki nagłówkowe (libc6-dev), a użyciem nowych plików nagłówkowych, które znajdują się w katalogu z rozpakowanymi plikami źródłowymi jądra. Jeżeli pliki źródłowe jądra znajdują się w katalogu /usr/src/linux/, wtedy przy kompilowaniu do polecenia musisz dodać opcję -I/usr/src/linux/include/.

Jakich narzędzi dostarcza system Debian w celu budowania własnych wersji jądra systemu?
Użytkownicy którzy pragną zbudować własną wersję jądra systemu mogą pobrać i zainstalować pakiet kernel-package. Zawiera on skrypt wykonujący kompilację i umożliwia stworzenie pakietu Debiana z gotowym jądrem przy pomocy polecenia

make-kpkg kernel_image

, które należy wpisać znajdując się w katalogu z plikami źródłowymi jądra. Więcej informacji można uzyskać przy pomocy polecenia

make-kpkg --help

lub podręcznika systemowego make-kpkg 1.
Ponieważ opisany pakiet nie zawiera plików źródłowych jądra, użytkownicy muszą pobrać je oddzielnie z wybranego przez siebie serwera lub w postaci pakietu Debiana jeśli pakiet kernel-source-wersja jest dostępny (gdzie wersja to numer pożądanej wersji jądra).
Szczegółowe instrukcje dotyczące korzystania z pakietu kernel-package można znaleźć w pliku /usr/share/doc/kernel-package/README.gz. W skrócie powinno się:
Rozpakować pliki źródłowe jądra i przenieść się do nowo powstałego katalogu przy pomocy polecenia cd.
Dostosować konfigurację jądra do własnych potrzeb przy pomocy jednego z poniższych poleceń:
make config (interfejs tekstowy zadający kolejno pytania).
make menuconfig (interfejs tekstowy wykorzystujący bibliotekę ncurses z opcjami pogrupowanymi w menu). Aby móc korzystać z tego polecenia musisz mieć zainstalowany pakiet libncurses5-dev.
make xconfig (interfejs graficzny X11). Korzystanie z tej opcji wymaga zainstalowania istotnych pakietów związanych z X11 i Tcl/Tk.
Wykorzystanie któregokolwiek z powyższych poleceń spowoduje utworzenie nowego pliku .config w katalogu z plikami źródłowymi.
Wprowadzić polecenie: make-kpkg -rev TwojaNazwa.N kernel_image, przy czym N oznacza nadany przez Ciebie numer. Stworzony w wyniku tak przeprowadzonej kompilacji pakiet z jądrem będzie posiadał unikatowy stworzony przez Ciebie symbol wersji TwojaNazwa.1, np.: kernel-image-2.2.14_TwojaNazwa.1_i386.deb dla jądra w wersji 2.2.14.
Zainstalować stworzony w ten sposób pakiet.
Uruchom dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb aby zainstalować jądro. Skrypt instalacyjny:
uruchomi program ładujący system, LILO (jeśli ten jest zainstalowany),
zainstaluje skompilowane przez Ciebie jądro w katalogu /boot pod nazwą vmlinuz_VVV-TwojaNazwa.N i stworzy odpowiednie dowiązania symboliczne.
zapyta użytkownika czy wykonać dyskietkę startową. Dyskietka taka zawiera jedynie plik z jądrem. Aby dowiedzieć się więcej zobacz W jaki sposób mogę wykonać własną wersję dyskietki startowej?.
Aby wykorzystać jeden z pozostałych programów ładujących system takich jak grub czy loadlin, skopiuj ten plik w inne miejsce (np. do katalogu /boot/grub lub na partycję z systemem plików MS-DOS).

W jaki sposób mogę wykonać własną wersję dyskietki startowej?
Do tego celu możesz z powodzeniem posłużyć się pakietem boot-floppies, który znajduje się w sekcji admin zasobów FTP Debiana. Skrypt powłoki znajdujący się w tym pakiecie tworzy dyskietki startowe w formacie SYSLINUX. Są to dyskietki z systemem plików MS-DOS, których główny rekord startowy został zmodyfikowany tak aby bezpośrednio ładował jądro Linuksa (lub innego systemu w zależności od definicji zawartej w pliku syslinux.cfg znajdującym się na dyskietce). Pozostałe skrypty w tym pakiecie służą do tworzenia dyskietek awaryjnych lub instalacyjnych.
Więcej informacji znajdziesz w pliku /usr/doc/boot-floppies/README po zainstalowaniu pakietu boot-floppies.

Jakie narzędzia udostępnia Debian do obsługi modułów?
Pakiet Debiana modconf udostępnia skrypt powłoki (/usr/sbin/modconf), który może być wykorzystywany do dostosowywania konfiguracji modułów dla własnych potrzeb. Skrypt ten oferuje interfejs oparty o menu, który pyta użytkownika o szczegóły dotyczące modułów sterowników urządzeń w systemie. Uzyskane odpowiedzi służą do stworzenia odpowiednich wpisów w pliku /etc/modules.conf (który zawiera listę aliasów/skrótów i parametry które zostaną użyte przy ładowaniu modułów). Są również konieczne do stworzenia plików znajdujących się w katalogu /etc/modutils/ oraz zawartości pliku /etc/modules (który zawiera listę modułów ładowanych w czasie startu systemu).
Podobnie jak (nowe) pliki Configure.help, które teraz pomagają przy tworzeniu własnych wersji jądra, pakiet modconf zawiera pliki pomocy (znajdujące się w katalogu /usr/lib/modules_help/), które dostarczają szczegółowych informacji na temat parametrów właściwych dla poszczególnych modułów.

Czy mogę bezpiecznie odinstalować pakiet ze starym jądrem?
Tak. Skrypt kernel-image-NNN.prerm sprawdza, czy jądro które chcesz usunąć nie jest tym, którego właśnie używasz. W każdym przypadku możesz usunąć pakiety z niechcianym jądrem używając polecenia

dpkg --purge --force-remove-essential kernel-image-VVV

(zastępując oczywiście "VVV" numerem wersji jądra)