[ << ]
[ < ]
[ Powrót ]
[ > ]
[ >> ]
7. Konfigurowanie jądra
Spis treści:
7.a. Strefa czasowa
Aby system wiedział gdzie się znajduje, należy najpierw wybrać strefę czasową.
Odszukujemy ją w /usr/share/zoneinfo, a następnie kopiujemy ją do
pliku /etc/localtime. Należy unikać stref czasowych o nazwie
/usr/share/zoneinfo/Etc/GMT*, ponieważ ich nazwy mogą być mylące,
na przykład GMT-8 jest w rzeczywistości GMT+8.
Listing 1.1: Konfiguracja strefy czasowej |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
|
7.b. Instalowanie źródeł
Wybór jądra
Jądro Linux jest sercem każdej dystrybucji i stanowi interfejs pomiędzy
programami użytkownika, a sprzętem. Gentoo pozwala użytkownikom na wybranie
spośród kilku różnych jego źródeł. Pełna ich lista wraz z opisami znajduje się w
dokumencie zatytułowanym Omówienie źródeł
jądra dostępnych w Gentoo.
Dla architektury x86 dostępne jest jądro gentoo-sources
(źródła z poprawkami dodającymi nowe funkcje).
Wybrane źródła instaluje się przy pomocy polecenia emerge.
Listing 2.1: Instalowanie źródeł jądra |
# emerge gentoo-sources
|
W katalogu /usr/src, pod nazwą linux, powinno znajdować się
mniej więcej takie dowiązanie symboliczne wskazujące na aktualne źródła. W tym
przykładzie wskazuje na źródła gentoo-sources-2.6.12-r10.
Listing 2.2: Podgląd dowiązania symbolicznego do źródeł jądra |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.24-r5
|
Pora na skonfigurowanie i skompilowanie źródeł jądra. Można użyć do tego
programu genkernel, który zbuduje uniwersalne jądro, takie jak to
znajdujące się na płytach instalacyjnych. Można również przeprowadzić cały
proces ręcznie, co pozwoli na lepsze dostosowanie jądra do indywidualnych
potrzeb użytkownika. Najpierw omówimy tę drugą, znacznie lepszą metodę.
Proces ręcznej konfiguracji jądra został opisany w paragrafie Domyślnie: ręczna konfiguracja. Opis użycia
genkernela znajduje się w części Alternatywnie:
użycie genkernel.
7.c. Domyślnie: Ręczna konfiguracja
Wprowadzenie
Ręczna konfiguracja jądra to zwykle najtrudniejsze zadanie przed jakim musi
stanąć każdy początkujący użytkownik Linuksa. Zwykle po skompilowaniu kilku
zapomina się, że kiedykolwiek uważało się to za trudną czynność.
Nie sposób jednak zaprzeczyć, że należy dobrze znać swój komputer, aby móc
prawidłowo skonfigurować jądro. Większość informacji można zdobyć poprzez
instalację pakietu pciutils (emerge pciutils) zawierającego program
lspci. Dzięki temu będzie możliwe używanie lspci wewnątrz
chrootowanego środowiska. Podczas pracy z tym programem można bezpiecznie
zignorować wszelkie ostrzeżenia związane z pcilib (jak np. "pcilib:
cannot open /sys/bus/pci/devices)". Ponadto można również uruchomić lspci
poza środowiskiem chroot. Powinno dać to taki sam efekt. Dodatkowe informacje o
sterownikach, które należy włączyć do jądra, można uzyskać dzięki poleceniu
lsmod, które pokaże listę modułów jakie załadował system płyty
instalacyjnej.
Kiedy już zbierzemy wszystkie informacje, przechodzimy do katalogu ze źródłami i
wpisujemy polecenie make menuconfig. Uruchomi się menu konfiguracyjne
oparte na bibliotekach graficznych ncurses.
Listing 3.1: Wywoływanie menu konfiguracyjnego |
# cd /usr/src/linux
# make menuconfig
|
Cała konfiguracja została podzielona na kilka sekcji, co znacznie ułatwia
odnalezienie i wybranie odpowiednich sterowników. Poniżej wymieniamy wszystkie
opcje, które należy włączyć, aby Gentoo mogło prawidłowo funkcjonować.
Zaznaczanie wymaganych ustawień
Wszystkie sterowniki potrzebne do wystartowania systemu (takie jak kontroler
SCSI) muszą być wkompilowane na stałe w jądro - nie należy ich dodawać w
formie modułów.
Na samym początku należy wybrać odpowiednią dla posiadanego sprzętu rodzinę
procesorów:
Listing 3.2: Wybór rodziny procesorów |
Processor type and features --->
(Athlon/Duron/K7) Processor family
|
Następnie przechodzimy do File Systems i wybieramy obsługę systemów
plików, z których zamierzamy używać. Jeśli pominiemy ten krok, Gentoo nie
będzie w stanie zamontować niektórych partycji lub nawet się nie uruchomi.
Sterowniki te również powinny być wkompilowane w jądro na stałe, nie należy ich
dodawać w modułach. Oprócz tego zaznaczamy opcje Virtual memory i
/proc file system. Użytkownicy jąder 2.4 wciąż muszą korzystać z
/dev file system, ponieważ jądra te nie obsługują udev.
Listing 3.3: Wybór potrzebnych systemów plików |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Użytkownicy łączący się z Internetem za pomocą PPPoE i połączeń dial-up powinni
zaznaczyć również:
Listing 3.4: Sterowniki niezbędne dla użytkowników PPPoE |
Device Drivers --->
Networking Support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Obie opcje dotyczące kompresji nie są wprawdzie wymagane, ale również nie
zaszkodzą naszemu systemowi, podobnie zresztą jak opcja PPP over
Ethernet, która jest przydatna tylko gdy skonfiguruje się ppp do
pracy w trybie PPPoE jądra (kernel mode PPPoE).
Należy wkompilować odpowiednie sterowniki dla wszystkich posiadanych kart
sieciowych.
Posiadacze procesorów Intela z technologią HyperThreading (tm) lub systemów
wieloprocesorowych powinni zaznaczyć opcję "Symmetric multi-processing support":
Listing 3.5: Włączanie SMP |
Processor type and features --->
[*] Symmetric multi-processing support
|
Uwaga:
W systemach wielordzeniowych, każdy z rdzeni widziany jest jako osobny procesor.
|
Jeśli mamy zainstalowane więcej niż 4GB pamięci RAM w naszym komputerze, musimy
uaktywnić opcję "High Memory Support (64G)".
Jeśli posiadamy urządzenia wejściowe USB (np. klawiaturę lub myszkę) dodajemy
sterowniki również dla nich:
Listing 3.6: Aktywowanie wsparcia dla urządzeń wejścia używających USB |
Device Drivers --->
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support
|
Posiadacze laptopów z PCMCIA powinni włączyć wsparcie dla swoich kart.
Listing 3.7: Włączanie obsługi PCMCIA |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
|
Po zakończeniu konfigurowania jądra przechodzimy do paragrafu kompilowanie i instalowanie.
Kompilowanie i instalowanie
Po skonfigurowaniu kernela przyszła pora na jego skompilowanie i instalację.
Opuszczamy program konfiguracyjny i rozpoczynamy proces kompilacji:
Listing 3.8: Kompilowanie kernela |
# make && make modules_install
|
Kiedy jądro skończy się kompilować należy przekopiować jego obraz do katalogu
/boot. Wybieramy dowolną nazwę dla naszego jądra jednak należy
pamiętać jaka to nazwa, gdyż będziemy jej potrzebowali w późniejszym czasie w
trakcie konfiguracji bootloadera. Należy pamiętać o zastąpieniu części wpisu
kernel-2.6.24-gentoo-r5 swoją nazwą i wersją kernela.
Listing 3.9: Instalowanie jądra |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.24-gentoo-r5
|
Następnie przechodzimy do opisu instalacji
dodatkowych modułów jądra.
7.d. Alternatywnie: użycie genkernela
Ten paragraf jest przeznaczony dla użytkowników, którzy zdecydowali się użyć
programu genkernel do skonfigurowania jądra.
Po zainstalowaniu źródeł, należy je skonfigurować. Zrobimy to automatycznie,
przy pomocy programu genkernel, który wykonuje cały proces dokładnie w
ten sam sposób w jaki jest konfigurowane jądro na płycie instalacyjnej.
Konsekwencją wyboru genkernela jest to, że system będzie zmuszony do wykrywania
dostępnego sprzętu przy każdym uruchomieniu komputera. W związku z tym, że
genkernel nie wymaga od użytkownika żadnych ręcznych poprawek w konfiguracji,
jest doskonałym rozwiązaniem dla tych wszystkich, którzy nie są najmocniejsi w
samodzielnym kompilowaniu jądra.
Zanim jednak zdradzimy jak używa się tego cudownego programu, musimy wytłumaczyć
jak go zainstalować:
Listing 4.1: Instalowanie genkernela |
# emerge genkernel
|
Użytkownicy jąder serii 2.6 mogą od razu skopiować konfigurację z płyty
instalacyjnej do miejsca skąd będzie mógł odczytać ją genkernel.
Listing 4.2: Kopiowanie konfiguracji genkernela z płyty instalacyjnej |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
Źródła skompilujemy przy pomocy polecenia genkernel all. Kompilowanie
zajmie mnóstwo czasu, ponieważ genkernel zawiera niemal wszystkie
dostępne sterowniki.
Jeśli na partycji rozruchowej został stworzony inny system plików niż ext2 lub
ext3, konieczne będzie dodanie potrzebnych sterowników, które można wybrać za
pomocą menu wywołanego poleceniem genkernel --menuconfig all. Sterowniki
te muszą być wkompilowane w jądro na stałe, nie można dodawać ich w
postaci modułów. Użytkownicy EVMS2 lub LVM2 powinni dodać również
--evms2.
Listing 4.3: Uruchamianie genkernela |
# genkernel all
|
W toku tego procesu powstanie właściwy plik jądra, initrd (initial root disk)
oraz ogromna rzesza modułów. Nazwy plików jądra i initrd będą potrzebne przy
konfiguracji bootloadera do prawidłowego wypełnienia jego pliku
konfiguracyjnego, więc warto je sobie zapisać. Przy następnym uruchomieniu
komputera zostanie najpierw wykonany plik initrd, który wykryje cały dostępny
sprzęt i wczyta odpowiednie moduły, a następnie uruchomi się właściwy system.
Listing 4.4: Sprawdzanie nazw utworzonych plików jądra |
# ls /boot/kernel* /boot/initramfs*
|
7.e. Moduły jądra
Konfiguracja modułów jądra
Moduły ładowane w czasie startu systemu muszą zostać dopisane do pliku
/etc/modules.autoload.d/kernel-2.6. Można tu również dodać
dodatkowe opcje ich ładowania.
Żeby przejrzeć listę wszystkich dostępnych modułów, użyjemy polecenia
find. Należy zastąpić wpis "wersja" wersją używanego jądra.
Listing 5.1: Znajdowanie dostępnych modułów |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
Dla przykładu, aby załadować moduł 3c59x.o, należy edytować plik
kernel-2.6 i dodać tam jego nazwę.
Listing 5.2: Zmiany w /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Listing 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Kolejny etap instalacji to Konfigurowanie
systemu.
[ << ]
[ < ]
[ Powrót ]
[ > ]
[ >> ]
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|