Konfiguracja i kompilacja jądra z serii 2.doc

(137 KB) Pobierz

 

 

Konfiguracja i kompilacja jądra z serii 2.4.x

Jądro jest właściwym sercem systemu (napisanym głównie w języku C z niewielkimi wstawkami asemblerowymi). Podstawowe zadania jądra to przełączanie uruchomionych procesów, obsługa urządzeń zewnętrznych i systemu plików. Obecnie jądro może zawierać tylko niezbędne sterowniki. Pozostałe znajdują się na dysku. Pozwala to na zmniejszenie jego rozmiaru. Jeżeli zamierzamy użyć jakieś zewnętrzne urządzenie, to jego sterownik umieszczamy w jądrze z linii poleceń systemu. Tak załadowany moduł jest usuwany z pamięci po zakończeniu pracy z danym urządzeniem. Chcąc umieścić sterownik w jądrze podczas startu systemu, musimy go przekompilować do postaci modułu. Możemy tego dokonać podczas konfiguracji kernela.

Bardzo często - dostarczane w ramach standardowych dystrybucji - jądro nie jest w pełni zoptymalizowane i nie odpowiada naszym potrzebom. Zawiera wiele niepotrzebnych sterowników, a często utrudnia nawet instalację nowego sprzętu. Możemy jednak przygotować własną wersję jądra, dostosowaną do naszego sprzętu i wymagań. Pozwoli to także w większości przypadków na zmniejszenie rozmiaru jądra i przyśpieszy start systemu. Przed nami kompilacja jądra. Choć dla wielu początkujących użytkowników nazwa tej czynności brzmi nieco odstraszająco, to nie ma się czego bać. Musimy tylko znać komponenty naszego komputera oraz wiedzieć co i gdzie mamy w naszym systemie plików linuksa. Źródła jądra umieszczone są zwykle w katalogu /usr/src/linux. Może to być także /usr/src/linux-wersja_jądra. Celem tego artykułu jest zapoznanie użytkownika z konfiguracją jądra z serii 2.4.x. Jeżeli posiadamy starszą wersję, to będziemy mieli nieco mniej dostępnych opcji. Osobiście polecam jądro z serii 2.4.x. Konfigurację "jajka" zaczynamy od wydania polecenia:

make menuconfig

Czynimy to z poziomu /usr/src/linux. Program konfiguracyjny możemy także uruchomić poleceniami make config (nie polecane początkującym) oraz make xconfig (menu w środowisku graficznym). Uważam, iż narzucony przeze mnie sposób jest lepszy od wspomnianych powyżej. Dysponuje on bardzo wygodnym i przejrzystym interfejsem. Wymaga jednak zainstalowanych bibliotek ncurses. Przedstawiam krótki opis większości parametrów konfiguracyjnych, zwracając większą uwagę na te najbardziej istotne.

< M > - sterownik będzie skompilowany do postaci modułu

< * > - sterownik będzie wkompilowany w jądro na stałe, choć może być modułem

[ * ] - sterownik będzie wkompilowany w jądro, nie może być modułem

[ ], < > - sterownik nie będzie zainstalowany

Code maturity level options:

[ ] Prompt for developmnet and/or incomlete code/drivers

Włącza niektóre narzędzia obsługiwane przez linuksa, np. dyski sieciowe, systemy plików czy protokoły sieciowe, znajdujące się w fazie rozwojowej. Nie zaznaczajmy tej, jeśli nie jest to konieczne. Może to bowiem pogorszyć stabilność systemu.

Loadable module support:

[ * ] Enable loadable module support

[ * ] Set version information on all module symbols

[ * ] Kernel module loader

Załączmy te opcje, w przeciwnym razie nie załadujemy żadnych modułów!

Processor type and features:

(Athlon/Duron/K7) Processor family

W tym polu wybieramy typ naszego procesora

< > Toshiba Laptop support

Jeśli używamy linuksa na tym laptopie, to zaznaczamy

< > /dev/cpu/microcode

Jeżeli zaznaczymy tę opcję oraz "Files sytems ---> dev file system support",to uzyskamy możliwość "update the microcode" na procesorach Intela z rodziny IA32 (np. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon).

< > /dev/cpu/*/msr

Urządzenie to daje uprzywilejowanym procesom dostęp do "x86 Model Specific Registers (MSRs).

Opcja ta dotyczy raczej systemów wieloprocesorowych.

< > /dev/cpu/*/cpuid

Urządzenie to daje uprzywilejowanym procesom dostęp do instrukcji "x86 CPUID", by wykonywały się na specyficznym procesorze. Nie ma potrzeby zaznaczania tej opcji.

(Off) High Memory Support

Wybieramy Off, jeśli mamy mniej niż 1GB całkowitej pamięci fizycznej

[ ] Math emulation

Jeśli mamy stary procesor bez koprocesora to zaznaczmy tę opcję.

[ * ] MTRR support

Jeśli mamy procesor z rodziny P6, Cyrix 686, Cyrix 686MX, AMD K6-2 lub AMD K6-3 oraz kartę graficzną SVGA korzystającą z magistrali AGP lub PCI, to zaznaczamy tę opcję. Dzięki temu niektóre operacje graficzne wykonują się szybciej

[ ] Symetric multi-processing support

Jeżeli mamy co najmniej dwa procesory, to zaznaczamy tą opcję. Jeśli mamy tylko jeden procesor, to nie zaznaczajmy jej, gdyż spowolni ona start jądra

General setup:

[ * ] Networking support

Ta opcja musi być zaznaczona, nawet jeśli nie korzystamy z sieci. Niektóre programy wymagają tej opcji, nawet jeśli nasz sprzęt nie jest podłączony do żadnego innego komputera.

[ ] SGI Visual Workstation support

Nie zaznaczajmy tej opcji, gdyż jądro uruchomi się wówczas tylko na płycie bazującej na układach SGI 320 lub 540.

[ * ] PCI support

Jeżeli nasz komputer posiada magistralę PCI (co jest bardzo prawdopodobne) to zaznaczamy tę opcję

(Any) PCI access mode

Możemy określić, czy system odczyta konfigurację magistrali PCI z BIOS-u, czy też sam ją określi. Starsze płyty PCI mogą jednak zawierać błędy w BIOS-ie. Wybierzmy opcję Any - system sam określi konfigurację, a w przypadku niepowodzenia, odczyta ją z BIOS-u

[ ] PCI device name database

Zwiększymy rozmiar jądra o około 80KB, zyskując nieco pamięci. Jeśli rozmiar ma dla nas znaczenie (start z dyskietki), to lepiej wyłączyć tę opcję

[ ] EISA support

Włącza obsługę szyny EISA, raczej wyłączyć

[ ] MCA support

Szyna MCA może być stosowana w IBP PS/2 oraz laptopach. Raczej nie załączać

[ ] Support for hot-plugabble devices

Możemy załączyć nowe urządzenia na uruchomionym systemie. Warto zaznaczyć tę opcję

PCMCIA/CardBus support ---> < > PCMCIA/CardBus support

Zaznaczmy tę opcję, jeżeli będziemy używać kart tego typu (np. karty sieciowe wielkości karty kredytowej w notebookach)

[ ] System V IPC

Specjalne biblioteki i wywołania systemów pozwalające uruchomionym procesom na wymianę informacji. Są programy, kóre korzystają z tego sposobu komunikacji, więc zaznaczmy tę opcję

[ * ] BSD Process Accounting

Zaznaczmy tę opcję. Program uruchomiony z poziomu użytkownika będzie mógł poinstruować jądro, by zapisywało informacje o procesach do pliku. Takie dane mogą się okazać bardzo przydatne.

[ * ] Sysctl support

Interfejs sysctl możemy rozumieć jako dynamiczną wymianę głównych parametrów i zmiennych jądra "w locie" bez potrzeby rekompilacji jądra i resetowania systemu.

(ELF) Core Support

Najlepiej zostawić (ELF)

< * > Kernel support for a.out binaries

Lepiej zaznaczyć tę opcję, gdyż niektóre programy wciąż mogą być napisane w dawnym unixowym formacie assembler.output

< * > Kernel support for ELF binaries

Zaznaczmy tę opcję (Są programy w formacie ELF i wymagają obsługi tej opcji)

< * > Kernel support for MISC binaries

Zaznaczmy tę opcję. Podobnie jak wyżej, pozwoli to na wykonywanie przez system kodu programów skompilowanych w różny sposób.

[ * ] Power Management Support

Ważne w laptopach, gdyż pozwala na oszczędzanie energii. Gdy jakieś urządzenie nie jest zajęte, to system je ty...

Zgłoś jeśli naruszono regulamin