Gentoo Logo

[ << ] [ < ] [ 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
(Przykład dla Warszawy)
# 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 --->
  (Należy zmienić wybór w zależności od konfiguracji sprzętowej komputera)
  (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)

(Zaznaczamy opcje odpowiednie dla używanych systemów plików)
  <*> 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
(Starsze karty wymagają tu opcji 16 bit - zapewne większość użytkowników zechce włączyć tą opcję)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
(Wybieramy odpowiednie mostki)
    --- 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

(Wyłącznie dla użytkowników jąder serii 2.6)
# 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 ] [ > ] [ >> ]


Drukuj

Pokaż całość

Zaktualizowano 28 marca 2009

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 4 października 2009. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Podsumowanie: Jądro Linux jest rdzeniem każdej dystrybucji. W tym rozdziale wytłumaczymy jak je skonfigurować.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Główny Architekt

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Redaktor

Pierre-Henri Jondot
Redaktor

Eric Stockbridge
Redaktor

Rajiv Manglani
Redaktor

Jungmin Seo
Redaktor

Stoyan Zhekov
Redaktor

Jared Hudson
Redaktor

Colin Morey
Redaktor

Jorge Paulo
Redaktor

Carl Anderson
Redaktor

Jon Portnoy
Redaktor

Zack Gilburd
Redaktor

Jack Morgan
Redaktor

Benny Chuang
Redaktor

Erwin
Redaktor

Joshua Kinard
Redaktor

Tobias Scherbaum
Redaktor

Xavier Neys
Redaktor

Gerald J. Normandin Jr.
Korekta

Donnie Berkholz
Korekta

Ken Nowack
Korekta

Lars Weiler
Współpracownik

Joshua Saddler
Editor

Karol Wojtaszek
Tłumacz

Łukasz Damentko
Tłumacz

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.