Opis jądra Linux-a, jego instalacji itp. Autor: Brian Ward, bri@cs.uchicago.edu v1.0, 5 Czerwca 1999 Wersja polska: Bartosz Maruszewski B.Maruszewski@jtz.org.pl v3.0, 7 Sierpnia 1999 Dokument ten jest szczegółowym przewodnikiem do konfiguracji, kompi lacji i odnawiania jądra. Zawarte są tutaj także sposoby rozwiązywa nia problemów związanych z jądrem dla systemów na procesorach rodziny ix86. Został napisany w standardzie ISO-8859-2. Oryginał tego doku mentu znajduje się pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO. Nowsza wersja zawiera uaktualnione wskazania na katalog zawierający jądra na ftp.icm.edu.pl ______________________________________________________________________ Spis treści 1. Wprowadzenie. 1.1 Przeczytaj to najpierw! (Nie żartuję) 1.2 Słowo na temat wyglądu. 2. Ważne pytania i odpowiedzi na nie. 2.1 Co to jądro w ogóle robi? 2.2 Dlaczego miałbym chcieć odnowić swoje jądro? 2.3 Jaki sprzęt obsługują nowsze wersje jądra? 2.4 Jakiej wersji gcc i libc potrzebuję? 2.5 Co to jest ładowalny moduł? 2.6 Ile potrzebuję miejsca na dysku? 2.7 Jak długo zajmuje kompilacja? 3. Jak właściwie skonfigurować to jądro? 3.1 Zdobywanie źródła. 3.2 Rozpakowywanie źródła. 3.3 Konfiguracja jądra. 3.3.1 Kernel math emulation (Processor type and features) 3.3.2 Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices). 3.3.3 Networking support (General Setup). 3.3.4 System V IPC (General Setup). 3.3.5 Processor family (Processor type and features). (w starszych wersjach: Use -m486 flag for 486-specific optimizations) 3.3.6 SCSI support. 3.3.7 Network device support. 3.3.8 Filesystems. 3.3.8.1 Ale ja nie wiem jakiego systemu plików potrzebuję! 3.3.9 Character devices. 3.3.10 Sound. 3.3.11 Inne opcje konfiguracji. 3.3.12 Kernel hacking. 3.4 I co teraz? (Makefile) 4. Kompilacja jądra. 4.1 Czyszczenie i zależności. 4.2 Kompilacja główna. 4.3 Inne parametry dla "make" przy kompilowaniu jądra. 4.4 Instalacja jądra. 5. Łatanie jądra (patchowanie). 5.1 Zakładanie łaty. 5.2 Jeśli coś pójdzie nie tak. 5.3 Pozbywanie się plików ".orig". 5.4 Inne łaty. 6. Pakiety dodatkowe. 6.1 kbd 6.2 util-linux 6.3 hdparm 6.4 gpm 7. Niektóre pułapki. 7.1 make clean 7.2 Wielkie albo wolne jądro. 7.3 Port równoległy nie działa/moja drukarka nie działa. 7.4 Jądro się nie kompiluje. 7.5 Nowa wersja jądra nie chce się załadować. 7.6 Zapomniałeś uruchomić lilo, albo system się w ogóle nie ładuje. 7.7 Pisze mi "warning: bdflush not running". 7.8 Nie mogę zmusić mojego CD-ROM-u IDE/ATAPI do współpracy. 7.9 Pisze coś o przestarzałym rutingu. 7.10 Firewall mi nie działa w wersji 1.2.0 7.11 "Not a compressed kernel Image file". 7.12 Problemy z konsolą po odnowieniu do wersji 1.3.x. 7.13 Nie mogę skompilować różnych rzeczy po odnowieniu jądra. 7.14 Zwiększanie limitów. 8. Uwaga na temat uaktualnienia do wersji 2.0.x i 2.2.x. 9. Moduły. 9.1 Instalacja narzędzi modułowych. 9.2 Moduły dystrybuowane z jądrem. 10. Sztuczki i wskazówki. 10.1 Przekierowywanie wyjścia z poleceń make i patch. 10.2 Instalacja warunkowa jądra. 10.3 Odnowienia jądra. 11. Inne dokumenty HOWTO, które mogą się przydać to: 12. Różności 12.1 Od autora. 12.2 Co jest jeszcze do zrobienia. 12.3 Oto ci, którzy się przyczynili do powstania tego HOWTO. 12.4 Prawa autorskie, licencja i takie inne. 12.5 Od tłumacza. ______________________________________________________________________ 1. Wprowadzenie. Czy powinieneś to czytać? Hmm... zobaczmy czy masz następujące problemy: ˇ "Ten wredny pakiet mówi, że potrzebuje jądra w wersji 2.8.193 a ja ciągle mam 1.0.9!" ˇ W jednym z nowszych wersji jądra jest nowy sterownik, który po prostu MUSISZ mieć. ˇ W ogóle nie masz pojęcia jak skompilować jądro ˇ "Czy to w README to naprawdę wszystko?" ˇ Usiadłeś, spróbowałeś i nie wyszło ˇ Potrzebujesz czegoś, co mógłbyś dać tym wszystkim, którzy ciągle cię proszą żebys im zainstalował jądro. 1.1. Przeczytaj to najpierw!! (Nie żżartujęę) Niektóre z przykładów zawartych tutaj zakładają, że masz zainstalowane takie programy jak: GNU tar, find i xargs. Są one właściwie standardowe; nie powinno być z tym problemów. Zakłada się także, że znasz strukturę twojego systemu plików. Jeśli nie znasz to koniecznie trzymaj w ręku wydruk tego co pojawia się na ekranie po poleceniu mount, albo wydruk zawartości pliku /etc/fstab jeśli umiesz go przeczytać. Informacja ta jest ważna, i nie zmieni się dopóki nie zmienisz układu partycji na twoim dysku. Najnowszą wersją jądra, dostępną podczas pisania tego dokumentu, była wersja 2.2.9. To znaczy, że wszystko w tym dokumencie odnosi się do tej właśnie wersji. Chociaż staram się napisać ten dokument tak niezależnym jak się tylko da, jądro jest ciągle rozwijane, więc jeśli dostaniesz nowszą wersję, nieuniknionym jest, że będą jakieś różnice. Ale to wciąż nie powinno stanowić dużego problemu, co najwyżej mogą wystąpić jakieś drobne różnice. Są dwie ogólne wersje źródeł jądra Linux-a, stabilne i testowe. Stabilne wersje zaczynają się od wersji 1.0.x i są numerowane liczbami parzystymi (chodzi o liczbę drugą); 1.0.x, 1.2.x, 2.0.x jak również 2.2.x. Wersje te są uważane za najbardziej stabilne, wolne od dziur i błędów podczas ich dystrybucji. Jądra testowe ( 2.1.x, 2.3.x) są jądrami przeznaczonymi dla tych, którzy chcą je testować, wprowadzać jakieś zmiany, może nawet współpracować przy tworzeniu go. W wersjach tych może byc pełno błędów, mogą się zawieszać chociaż to wcale nie jest regułą i niekoniecznie musi się dziać. Jakby co, to zostałeś ostrzeżony. 1.2. Słłowo na temat wygląądu. Tekst, który tak wygląda jest albo czymś co pojawi się na ekranie, nazwą pliku, albo czymś co może być bezpośrednio wpisane z klawiatury (np. polecenie, czy jego opcje). Jeśli czytasz ten dokument jako zwykły plik tekstowy to tekst ten niczym się nie różni. 2. Ważżne pytania i odpowiedzi na nie. 2.1. Co to jąądro w ogóóle robi? Jądro w systemach typu Unix odgrywa rolę pośrednika między twoimi programami, a twoim sprzętem. Najpierw zajmuje się zarządzaniem pamięci dla wszystkich uruchomionych programów (procesów), i dba o to, aby wszystkie one dostały równą ilość czasu procesora. (albo nierówną jeśli tak zażądasz). Dodatkowo, posiada miły interfejs dla programów chcących "rozmawiać" z twoim sprzętem. Jądro spełnia oczywiście o wiele więcej funkcji, ale to są najważniejsze, które należy znać. 2.2. Dlaczego miałłbym chciećć odnowićć swoje jąądro? Nowsze jądra z reguły mają wiekszą ilość sterowników, czyli mogą obsłużyć większą ilość urządzeń, mogą mieć ulepszone algorytmy zarządzania procesami, mogą działać szybciej niż starsze wersje, mogą być bardziej stabilne, mają także wiele poprawek błędów, które zdarzyły się w wersjach wcześniejszych. Większość ludzi odnawia swoje jądra ponieważ chcą większej ilości sterowników i naprawionych błędów. 2.3. Jaki sprzęęt obsłługująą nowsze wersje jąądra? Przeczytaj Hardware-HOWTO. Możesz także zajrzeć do pliku config.in w źródłach jądra. Albo po prostu dowiedzieć się samemu jak napiszesz make config. W poleceniu tym znajdą się wszystkie obsługiwane przez dane jądro urządzenie. Ale nie będą to wszystkie urządzenia, które obsługuje Linux. Wiele popularnych sterowników (jak np. sterownik do PCMCIA i niektóre sterowniki do taśm) są rozprowadzane osobno jako ładowalne moduły. 2.4. Jakiej wersji gcc i libc potrzebujęę? Aby zobaczyć jaką masz wersję napisz gcc -v. Linus zaleca zawsze w pliku README wersję gcc, która powinna być użyta do kompilacji danego jądra. Jeśli nie masz tej wersji, dokumentacja w zalecanej wersji gcc powinna powiedzieć ci czy musisz odnowić libc. Nie jest to trudne, ale ważne jest, aby postępować zgodnie ze wskazówkami. 2.5. Co to jest łładowalny modułł? Są to części jądra, które nie są zawarte bezpośrednio w nim. Kompiluje się je osobno i można je umieścić a następnie usunąć z uruchomionego jądra prawie zawsze. Z powodu tej elastyczności jest to teraz preferowana metoda pisania niektórych fragmentów jądra. Wiele popularnych sterowników urządzeń to ładowalne moduły. 2.6. Ile potrzebujęę miejsca na dysku? To zależy od twojej konkretnej konfiguracji. Skompresowane źródła zajmują mniej więcej 14 MB. Po rozkompresowaniu, skonfigurowaniu i kompilacji zajmuje kolejne 67 MB. 2.7. Jak dłługo zajmuje kompilacja? Na nowszych maszynach zabiera to NAPRAWDĘ mniej czasu niż na starych. Np. na AMD K6-2/300 z szybkim dyskiem kompilacja wersji 2.2.x może zająć około 4 minut podczas gdy kompilacja tego samego jądra na starym Pentium, 486 czy 386 może trwać nawet godziny, czy dni ... Jeśli to cię martwi, a masz w pobliżu szybszy komputer, to skompiluj jądra na nim (zakładając, że ustawisz poprawne parametry, że twoje narzędzia systemowe są w odpowiednich wersjach itd), a potem przesnieś skompilowane jądro (obraz) na wolniejszy komputer. 3. Jak włłaśściwie skonfigurowaćć to jąądro? 3.1. Zdobywanie źźróódłła. Źródła możesz sciągnąć np. z ftp.kernel.org:/pub/linux/kernel - jest to główny serwer dla jądra Linux-a, albo z jakiejś bliższej ci kopii tego serwera. W Polsce najlepszym miejscem jest ftp.icm.edu.pl/pub/L...
Porozmawiajmy.TV