1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
|
<?xml version='1.0' encoding='utf-8'?>
<!-- -*- DocBook -*- -->
<chapter id="kernel"><title>Debian i jądro systemu</title>
<section id="non-debian-kernel"><title>Czy mogę skompilować i zainstalować jądro systemu bez dostosowywania go do specyfiki Debiana?</title>
<para>
Tak.
</para>
<para>
Z jednym tylko zastrzeżeniem: biblioteki języka C w systemie Debian są
budowane z wykorzystaniem najnowszych <emphasis>stabilnych</emphasis> wersji
plików nagłówkowych <emphasis role="strong">jądra systemu</emphasis>.
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 (<systemitem
role="package">libc6-dev</systemitem>), 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 <filename>/usr/src/linux/</filename>, wtedy przy kompilowaniu do
polecenia musisz dodać opcję <literal>-I/usr/src/linux/include/</literal>.
</para>
</section>
<section id="customkernel"><title>Jakich narzędzi dostarcza system Debian w celu budowania własnych wersji jądra systemu?</title>
<para>
Użytkownicy którzy pragną zbudować własną wersję jądra systemu mogą
pobrać i zainstalować pakiet <systemitem
role="package">kernel-package</systemitem>. Zawiera on skrypt wykonujący
kompilację i umożliwia stworzenie pakietu Debiana z gotowym jądrem przy
pomocy polecenia
</para>
<screen>
make-kpkg kernel_image
</screen>
<para>
, 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
</para>
<screen>
make-kpkg --help
</screen>
<para>
lub podręcznika systemowego
<citerefentry><refentrytitle>make-kpkg</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
</para>
<para>
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).
</para>
<para>
Szczegółowe instrukcje dotyczące korzystania z pakietu <systemitem
role="package">kernel-package</systemitem> można znaleźć w pliku
<filename>/usr/share/doc/kernel-package/README.gz</filename>. W skrócie
powinno się:
</para>
<itemizedlist>
<listitem>
<para>
Rozpakować pliki źródłowe jądra i przenieść się do nowo powstałego
katalogu przy pomocy polecenia <literal>cd</literal>.
</para>
</listitem>
<listitem>
<para>
Dostosować konfigurację jądra do własnych potrzeb przy pomocy jednego z
poniższych poleceń:
</para>
<itemizedlist>
<listitem>
<para>
<literal>make config</literal> (interfejs tekstowy zadający kolejno pytania).
</para>
</listitem>
<listitem>
<para>
<literal>make menuconfig</literal> (interfejs tekstowy wykorzystujący
bibliotekę ncurses z opcjami pogrupowanymi w menu). Aby móc korzystać z
tego polecenia musisz mieć zainstalowany pakiet <systemitem
role="package">libncurses5-dev</systemitem>.
</para>
</listitem>
<listitem>
<para>
<literal>make xconfig</literal> (interfejs graficzny X11). Korzystanie z tej
opcji wymaga zainstalowania istotnych pakietów związanych z X11 i Tcl/Tk.
</para>
</listitem>
</itemizedlist>
<para>
Wykorzystanie któregokolwiek z powyższych poleceń spowoduje utworzenie
nowego pliku <literal>.config</literal> w katalogu z plikami źródłowymi.
</para>
</listitem>
<listitem>
<para>
Wprowadzić polecenie: <literal>make-kpkg -rev TwojaNazwa.N
kernel_image</literal>, 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.:
<literal>kernel-image-2.2.14_TwojaNazwa.1_i386.deb</literal> dla jądra w
wersji 2.2.14.
</para>
</listitem>
<listitem>
<para>
Zainstalować stworzony w ten sposób pakiet.
</para>
<itemizedlist>
<listitem>
<para>
Uruchom <literal>dpkg --install
/usr/src/kernel-image-VVV_Custom.N.deb</literal> aby zainstalować jądro.
Skrypt instalacyjny:
</para>
<itemizedlist>
<listitem>
<para>
uruchomi program ładujący system, LILO (jeśli ten jest zainstalowany),
</para>
</listitem>
<listitem>
<para>
zainstaluje skompilowane przez Ciebie jądro w katalogu /boot pod nazwą
vmlinuz_VVV-TwojaNazwa.N i stworzy odpowiednie dowiązania symboliczne.
</para>
</listitem>
<listitem>
<para>
zapyta użytkownika czy wykonać dyskietkę startową. Dyskietka taka zawiera
jedynie plik z jądrem. Aby dowiedzieć się więcej zobacz <xref
linkend="custombootdisk"/>.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Aby wykorzystać jeden z pozostałych programów ładujących system takich jak
<systemitem role="package">grub</systemitem> czy <literal>loadlin</literal>,
skopiuj ten plik w inne miejsce (np. do katalogu /boot/grub lub na partycję z
systemem plików <literal>MS-DOS</literal>).
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</section>
<section id="custombootdisk"><title>W jaki sposób mogę wykonać własną wersję dyskietki startowej?</title>
<para>
Do tego celu możesz z powodzeniem posłużyć się pakietem <systemitem
role="package">boot-floppies</systemitem>, który znajduje się w sekcji
<literal>admin</literal> zasobów FTP Debiana. Skrypt powłoki znajdujący
się w tym pakiecie tworzy dyskietki startowe w formacie
<literal>SYSLINUX</literal>. Są to dyskietki z systemem plików
<literal>MS-DOS</literal>, 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.
</para>
<para>
Więcej informacji znajdziesz w pliku
<literal>/usr/doc/boot-floppies/README</literal> po zainstalowaniu pakietu
<systemitem role="package">boot-floppies</systemitem>.
</para>
</section>
<section id="modules"><title>Jakie narzędzia udostępnia Debian do obsługi modułów?</title>
<para>
Pakiet Debiana <systemitem role="package">modconf</systemitem> udostępnia
skrypt powłoki (<literal>/usr/sbin/modconf</literal>), 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
<literal>/etc/modules.conf</literal> (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
<literal>/etc/modutils/</literal> oraz zawartości pliku
<literal>/etc/modules</literal> (który zawiera listę modułów ładowanych w
czasie startu systemu).
</para>
<para>
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 <literal>/usr/lib/modules_help/</literal>), które dostarczają
szczegółowych informacji na temat parametrów właściwych dla
poszczególnych modułów.
</para>
</section>
<section id="removeoldkernel"><title>Czy mogę bezpiecznie odinstalować pakiet ze starym jądrem?</title>
<para>
Tak. Skrypt <literal>kernel-image-NNN.prerm</literal> 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
</para>
<screen>
dpkg --purge --force-remove-essential kernel-image-VVV
</screen>
<para>
(zastępując oczywiście "VVV" numerem wersji jądra)
</para>
</section>
</chapter>
|