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, kompilacji i odnawiania j�dra. Zawarte s� tutaj tak�e sposoby rozwi�zywania problem�w zwi�zanych z j�drem dla system�w na procesorach rodziny ix86. Zosta� napisany w standardzie ISO-8859-2. Orygina� tego dokumentu 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

1. Wprowadzenie.

Czy powiniene� to czyta�? Hmm... zobaczmy czy masz nast�puj�ce problemy:

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/Linux/kernel. Z regu�y nazwa j�dra to linux-x.y.z.tar.gz, gdzie x.y.z jest numerem wersji. Tak jak ju� wspomnia�em, wersje z nieparzyst� drug� liczb� to wersje rozwojowe i mog� by� niestabilne. Obok wersji .tar.gz s� jeszcze wersje .bz2, kt�re s� mniejsze i zabieraj� mniej czasu do �ci�gni�cia.

Najlepiej u�ywa� adresu ftp.xx.kernel.org, gdzie xx to kod twojego kraju. Np. ftp.pl.kernel.org dla Polski.

Je�li szukasz jakich� og�lnych informacji o Linux-ie, to zajrzyj pod adres www.linux.org. W Polsce tak�e jest Polska Grupa U�ytkownik�w Linux-a.

3.2 Rozpakowywanie �r�d�a.

Zaloguj si� jako root albo u�yj polecenia su i zmie� katalog na /usr/src cd /usr/src. Je�li zainstalowa�e� �r�d�a do j�dra podczas instalacji Linux-a w katalogu tym znajdziesz do��czenie symboliczne linux, kt�re b�dzie wskazywa�o na katalog linux-x.y.z ze �r�d�ami, kt�re wtedy zainstalowa�e�. Je�li chcesz zachowa� stare �r�d�a to usu� do��czenie linux poleceniem rm linux.

Je�li takiego do��czenia nie ma, a jest katalog linux, to (je�li chcesz zachowa� �r�d�a starej wersji j�dra) zmie� nazw� linux na linux-x.y.z, gdzie x.y.z jest wersj� tych �r�de�. (zajrzyj do pliku linux/Makefile - w pierwszych trzech linijkach znajdziesz wersj� �r�de� znajduj�cych si� w tym katalogu). Je�li chcesz mo�esz skasowa� ca�y katalog linux i pozby� si� starych �r�de�. W ka�dym razie upewnij si�, �e nie ma katlogu linux przed rozpakowanie �r�de�.

Teraz w katalogu /usr/src rozpakuj �r�d�a poleceniem tar zxpvf linux-x.y.z.tar.gz, je�li na ko�cu nazwy pliku ze �r�d�ami nie ma .gz to u�yj polecenia tar xpvf linux-x.y.z. Zawarto�� archiwum wy�wietli si� na ekranie. Kiedy rozpakowywanie si� sko�czy pojawi si� nowy katalog linux. Dobrym pomys�em by�oby w tym momencie zmieni� jego nazw� na linux-x.y.z i zrobi� symboliczne do��czenie do tego katalogu o nazwie linux. Aby to zrobi� u�yj polecenia mv linux linux-x.y.z; ln -s linux-x.y.z linux. Teraz zmie� bie��cy katalog na linux i przejrzyj plik README. Znajdziesz tam sekcj� o nazwie INSTALLING the kernel. Przeczytaj j� uwa�nie i wype�nij wszystkie polecenia, o kt�rych tam mowa.

Je�li �ci�gn��e� wersj� .bz2 i masz program bzip2 (na jego temat mo�na przeczyta� pod adresem www.muraroa.demon.co.uk/), to zr�b tak:

   bzcat2 linux-x.y.z.tar.bz2 | tar xvf -

3.3 Konfiguracja j�dra.

UWAGA: Niekt�re z uwag zawartych tutaj s� podobne do tych z pliku Linusa README.

Polecenie make config wydane w katalogu /usr/src/linux uruchamia skrypt konfiguracyjny, kt�ry zadaje ci wiele pyta�. Wymaga on zainstalowanego shella, wi�c sprawd� czy go masz. (/bin/bash, /bin/sh lub $BASH)

W wersjach 2.0.x i nowszych istniej� jeszcze dwa sposoby na konfiguracj�: make menuconfig jak sama nazwa wskazuje jest to konfiguracja za pomoc� menu tekstowego. Mo�na te� wyda� polecenie make xconfig co spowoduje uruchomienie mi�ej konfiguracji pod Xwindow. Pierwszy spos�b wymaga zainstalowanej biblioteki (n)curses. Ta druga wymaga zainstalowanej biblioteki Tcl/Tk. Obie s� dostarczane wraz ze standardowymi dystrybucjami. Te sposoby maj� podstawow� zalet�: je�li si� pomylisz, to �atwo jest wr�ci� i poprawi� b��d.

Mo�na teraz odpowiada� na kolejne pytania ukazuj�ce si� na ekranie. Odpowiada si� zwykle literami "y" - tak i "n" - nie. Przy sterownikach jest jeszcze dodatkowa opcja "m" - oznacza skonfigurowanie go jako �adowalny modu�. Bardziej komicznym sposobem wyja�nienia tej litery jest "mo�e". Niekt�re z bardziej oczywistych czy nie-krytycznych opcji nie zosta�y tutaj opisane; zobacz w sekcji "Inne opcje konfiguracji." W make menuconfig spacj� zaznacza si� dan� opcj�.

W wersjach 2.0.x i nowszych jest polecenie "?", kt�ra umo�liwia wy�wietlenie kr�tkiej pomocy na temat bie��cej opcji. Informacja ta jest prawdopodobnie naj�wie�sza. Oto lista wa�niejszych opcji, do jakiej hierarchii nale�� i kr�tki opis.

Kernel math emulation (Processor type and features)

Pytanie to dotyczy emulacji koprocesora przez j�dro. Je�li nie masz koprocesora matematycznego (masz czysty 386 albo 486SX), musisz tu odpowiedzie� "y". Je�li masz koprocesor a odpowiesz "y", nie martw si� -- koprocesor b�dzie u�yty, a emulacja ignorowana. W po�owie przypadk�w w tej chwili odpowiedzi� b�dzie nie, ale nie martw si� je�li przypadkowo odpowiesz tak; je�li nie trzeba, to nie b�dzie to u�yte.

Enhanced (MFM/RLL) disk and IDE disk/cdrom support (Block Devices).

Przypuszczalnie potrzebujesz tej obs�ugi. Opcja ta oznacza, �e j�dro b�dzie obs�ugiwa� standardowe dyski do komputer�w PC, kt�re s� w posiadaniu wi�kszo�ci ludzi. Sterownik ten nie zawiera obs�ugi dla dysk�w SCSI, pytanie o to b�dzie p�niej w konfiguracji.

Zostaniesz zapytany nast�pnie o sterowniki "old disk-only" i "new IDE". Wybierz jeden z nich; g��wna r�nica pomi�dzy nimi to taka, �e stary sterownik obs�uguje tylko dwa dyski na pojedynczym interfejsie, a nowy obs�uguje drugi interfejs i nap�dy IDE/ATAPI CD-ROM. Nowy sterownik jest o oko�o 4 kB wi�kszy od starego i ma by� lepszy. To znaczy, �e pomijaj�c mniejsz� ilo�� b��d�w mo�e dzia�a� bardziej wydajnie, szczeg�lnie je�li masz dysk typu EIDE.

Networking support (General Setup).

Og�lnie powiniene� odpowiedzie� "y" je�li tw�j komputer jest w sieci takiej jak Internet, albo je�li chcesz u�ywa� protoko��w SLIP czy PPP, aby mie� dost�p do Internetu. Aczkolwiek wiele pakiet�w (np. Xwindows) wymaga obs�ugi sieci nawet je�li tw�j komputer nie jest pod��czony do �adnej sieci; powiniene� tu odpowiedzie� "y". P�niej, zostaniesz zapytany czy chcesz obs�ug� protoko�u TCP/IP; znowu, odpowiedz "y" je�li nie jeste� absolutnie pewien.

System V IPC (General Setup).

Jedn� z najlepszych definicji IPC (InterProcess Communication - Komunikacja Pomi�dzy Procesami) znajduje si� w glosariuszu w ksi��ce o Perlu. Nic wi�c dziwnego, �e niekt�rzy programi�ci pisz�cy w Perlu wykorzystuj� go do komunikacji mi�dzy procesami, tak samo jak wiele innych pakiet�w (DOOM - z tych najbardziej znanych ;) ), wi�c odpowied� "n" nie jest m�drym wyborem, o ile wiesz dok�adnie co robisz.

Processor family (Processor type and features).(w starszych wersjach: Use -m486 flag for 486-specific optimizations)

Tradycyjnie, to wkompilowywa�o pewne optymalizacje dla konkretnego procesora; j�dra dzia�a�y dobrze tak�e na inncyh procesoarch, ale by�y one troche wi�ksze. W nowszych wersjach si� ju� tego nie stosuje i powiniene� odpowiedzie� na jaki procesor rzeczywi�cie kompilujesz j�dro. J�dro skompilowane na 386 b�dzie dzia�a� na wszystkich procesorach.

SCSI support.

Je�li masz urz�dzenia SCSI odpowiedz "y". Zostaniesz nast�pnie zapytany o dalsze informacje, jak np.: obs�uga CD-ROM-u, dysk�w i twojego adaptera. Zajrzyj do SCSI-HOWTO po wi�cej szczeg��w.

Network device support.

Je�li masz kart� sieciow�, albo chcia�by� u�ywa� protoko��w SLIP, PPP, albo kontrolera portu r�wnoleg�ego aby po��czy� si� z Internetem odpowiedz "y". Konfigurator spyta ci� nast�pnie o typ karty i rodzaj protoko�u.

Filesystems.

Skrypt konfiguracyjny pyta ci� nast�pnie o to, jakie systemy plik�w chcesz obs�ugiwa�:

Standard (minix) - Nowsze dystrybucje nie tworz� tego systemu plik�w, a wielu ludzi go nie u�ywa, ale jednak u�ycie go mog�oby by� dobrym pomys�em, poniewa� przydaje si� on do odczytu dyskietek, dla kt�rych system ten jest mniej bolesny ni� ext2.

Second extended - To jest standardowy system plik�w Linuxa. Prawie na pewno masz jeden z nich i musisz odpowiedzie� y.

msdos - Je�li chcesz u�ywa� swej partycji dos-owej, albo montowa� dyskietki sformatowane pod ten system, odpowiedz "y".

Dost�pne s� jeszcze r�ne inne systemy plik�w z innych system�w operacyjnych.

/proc - (Pomys� jak mniemam z laboratorium Bella). Na dysku nie tworzy si� systemu plik�w proc. To jest system plik�w, kt�ry s�u�y do porozumiewania si� z j�drem i procesami. Wiele program�w wy�wietlaj�cych procesy, jak np. ps u�ywa tego systemu plik�w. Spr�buj czasami wykona� polecenie cat /proc/meminfo albo cat /proc/devices. Niekt�re pow�oki (w szczeg�lno�ci rc) u�ywaj� /proc/self/fd (znane jako /dev/fd na innych systemach) do funkcji I/O. Powiniene� prawie na pewno odpowiedzie� tutaj "y". Wiele wa�nych narz�dzi do Linux-a zale�y od tego systemu plik�w.

NFS - Je�li tw�j komputer jest w sieci i chcesz u�ywa� system�w plik�w, kt�re znajduj� si� na innych systemach z NFS, odpowiedz "y".

ISO9660 - Ten system plik�w jest na przewa�aj�cej ilo�ci CD-ROM-�w. Je�li wi�c chcesz u�ywa� CD-ROM-u odpowiedz "y".

Ale ja nie wiem jakiego systemu plik�w potrzebuj�!

No dobra, napisz mount. Powinno si� wy�wietli� co� jak:

    blah# mount
    /dev/hda1 on / type ext2 (defaults)
    /dev/hda3 on /usr type ext2 (defaults)
    none on /proc type proc (defaults)
    /dev/fd0 on /mnt type msdos (defaults)

Sp�jrz na ka�d� linijk�; s�owo obok type jest typem systemu plik�w. W tym przypadku / i /usr s� typu second extended, u�ywany jest tak�e proc i jest tak�e zamontowana dyskietka z systemem plik�w msdos (tfu!).

Mo�esz spr�bowa� te� cat /proc/filesystems je�li masz system proc. Wy�wietli ci to systemy plik�w wkompilowane w aktulanie u�ywane j�dro.

Konfiguracja rzadko u�ywanych i nie krytycznych system�w plik�w mo�e powodowa� niepotrzebne powi�kszanie si� j�dra; poczytaj sekcj� o modu�ach jak tego unikn�� i sekcj� "Pu�apki", aby dowiedzie� si� dlaczego powi�kszaj�ce si� j�dro nie jest po��dane.

Character devices.

Tutaj do��czasz sterowniki dla drukarki (r�wnoleg�ej, znaczy si�), myszy szeregowej, myszy PS/2 (wiele Notebook�w u�ywa protoko�u PS/2 dla swoich wbudowanych myszy), niekt�re sterowniki do ta�m, i inne tego typu "znakowe" urz�dzenia. Odpowiedz "y" kiedy znajdziesz urz�dzenie, kt�rego u�ywasz.

UWAGA: gpm to program, kt�ry pozwala na u�ycie myszy poza Xwindow i na kopiowanie tekstu pomi�dzy wirtualnymi konsolami. Jest to ca�kiem przyjemne je�li masz zwyk�� myszk� szeregow�, poniewa� koegzystuje ona z Xwindows, ale musisz ucieka� si� do specjalnych sztuczek dla innych.

Sound.

Je�li czujesz wielk� potrzeb� us�yszenia d�wi�k�w wydobywaj�cych si� z tej maszynerii to odpowiedz "y" i napisz wszystko co wiesz na temat szczeg��w twojej karty d�wi�kowej i skompiluje sterownik. (Uwaga o konfiguracji kart d�wi�kowych: je�li zapyta ci� czy chcesz zainstalowa� pe�n� wersj� sterownika, mo�esz odpowiedzie� "n" i zaoszcz�dzi� troch� pami�ci wybieraj�c tylko to co jest ci potrzebne.)

Je�li my�lisz powa�nie o karcie d�wi�kowej, to zajrzyj na dwie strony darmowych sterownik�w:

Inne opcje konfiguracji.

Nie wszystkie opcje konfiguracyjne s� tu wymienione poniewa� zmieniaj� si� zbyt cz�sto lub s� oczywiste (na przyk�ad: obs�uga 3Com 3C509). Jest ca�kiem spora lista wszystkich opcji wraz ze sposobem umieszczenia jej w skrypcie Configure. Zajmuje si� t� list� Axel Boldt ( boldt@math.ucsb.edu). Mo�na go tak�e zobaczy� jako jeden du�y plik w dystrybucji j�dra Documentation/Configure.help od wersji 2.0.

[Od t�umacza] Plik ten dla chyba dw�ch wersji j�dra jest przet�umaczony na j�zyk Polski. Zajrzyj pod adres www.jtz.org.pl/inne-polskie.html

Kernel hacking.

Wzi�te z pliku README napisanego przez Linusa: opcja "kernel hacking" daje w rezultacie wi�ksze i wolniejsze j�dro, mo�e nawet uczyni� je mniej stabilnym, przez konfigurowanie niekt�rych procedur, tak aby aktywnie pr�bowa�y �ama� z�e algorytmy i �eby mo�na by�o znale�� problemy j�dra. (kmalloc()). Tak wi�c powiniene� odpowiedzie� tutaj "n" je�li chcesz mie� normalnie dzia�aj�ce i stabilne j�dro.

3.4 I co teraz? (Makefile)

Jak ju� sko�czysz konfiguracj� pojawi si� na ekranie wiadomo��, �e j�dro zosta�o skonfigurowane i �e nale�y sprawdzi� top-level Makefile dla dodatkowej konfiguracji.

Ten top-level Makefile to plik o nazwie Makefile w katalogu /usr/src/linux. Zajrzyj tam. Przypuszczalnie nie b�dziesz tam nic zmienia�, ale spojrze� nie boli :). Jak ju� zainstalujesz nowe j�dro mo�esz zmieni� jego opcje przy pomocy narz�dzia rdev. Je�li czujesz si� zagubiony patrz�c na ten plik, to nie przejmuj si� nim.

4. Kompilacja j�dra.

4.1 Czyszczenie i zale�no�ci.

Kiedy skrypt konfiguracyjny si� sko�czy ka�e ci napisa� make dep i (przypuszczalnie) make clean. Tak wi�c zaczynamy od make dep. Jest to pewne zabezpieczenie si�, kt�re sprawdza r�ne zale�no�ci, jak na przyk�ad: czy pliki nag��wkowe s� na swoich miejscach. Nie zajmuje to wiele czasu, no chyba, �e tw�j komputer jest naprawd� wolny.

W starszych wersjach powiniene� jeszcze wyda� polecenie make clean. To usuwa pozosta�o�ci po starej kompilacji j�dra (pliki objektowe itp). Nie zapomnij tego kroku !!!

4.2 Kompilacja g��wna.

Po czyszczeniu i sprawdzeniu zale�no�ci mo�esz wpisa� make bzImage lub make bzdisk (to jest ta cz��, kt�ra zabiera tyle czasu). make bzImage skompiluje j�dro i zostawi je w pliku /usr/src/linux/arch/i386/boot/bzImage w�r�d innych rzeczy. To jest nowe skompresowane j�dro. make bzdisk robi to samo, z t� r�nic�, �e umieszcza plik bzImage na dyskietce w stacji A:, kt�r� mam nadziej� w�o�ysz na czas do stacji :). (ten czas to sam koniec kompilacji, ale na wszelki wypadek radz� w�o�y� od razu, bo potem mo�na zapomnie�) make bzdisk to dobry spos�b na testowanie nowego j�dra; je�li co� p�jdzie nie tak, po prostu wyjmujesz dyskietk� ze stacji, resetujesz i po krzyku. Mo�e to by� tak�e pomocne je�li przypadkowo usuniesz j�dro z dysku. (radz� uwa�a� na to co si� robi w katalogu g��wnym a szczeg�lnie w katalogu /boot). Mo�esz jej tak�e u�y� do instalacji innych system�w, poniewa� wystarczy przegra� zawarto�� tej dyskietki na inn�.

Wszystkie, nawet te w po�owie sensowne, j�dra s� skompresowane, z powodu literek "bz" na pocz�tku. Skompresowane j�dro odkompresowuje si� automatycznie w czasie wykonywania.

W starszych j�drach nie ma opcji bzImage. By�o to po prostu zImage. Opcja ta jest wci�� dost�pna, jednak bior�c pod uwag� obecne rozmiary j�dra nie poleca si� tego sposobu kompresji.

4.3 Inne parametry dla "make" przy kompilowaniu j�dra.

make mrproper spowoduje dok�adniejsze wyczyszczenie. Czasem jest to potrzebne; mo�esz to robi� przy instalacji ka�dej �aty (patch). make mrproper skasuje tak�e tw�j plik z bie��c� konfiguracj�, wi�c mo�esz sobie zrobi� kopi� tego pliku (.config).

make oldconfig spr�buje skonfigurowa� j�dro na podstawie starego pliku konfiguracyjnego; przejdzie za ciebie przez proces konfiguracji (make config). Je�li jeszcze nigdy przedtem nie kompilowa�e� j�dra lub nie masz starego pliku konfiguracyjnego wtedy przypuszczalnie nie powiniene� tego robi�, bo b�dziesz chcia� zmieni� konfiguracj� domy�ln�.

Przeczytaj sekcj� o modu�ach na temat szczeg��w dotycz�cych make modules.

4.4 Instalacja j�dra.

Je�li masz ju� nowe j�dra i wydaje ci si�, �e ono dzia�a tak jak chcia�e�, czas aby je zainstalowa�. Wi�kszo�� ludzi u�ywa do tego celu LILO (Linux Loader). make bzlilo zainstaluje j�dro, uruchomi lilo, aby od�wie�y� informacje i przygotuje wszystko, aby zresetowa� i za�adowa� nowe j�dro. ALE TYLKO w przypadku, gdy LILO jest skonfigurowane nast�puj�co: j�dro to /vmlinuz, lilo jest w /sbin, a tw�j plik konfiguracyjny od lilo to /etc/lilo.conf i zgadza si� z tym co jest powy�ej.

W innym przypadku musisz u�y� bezpo�rednio polecenia lilo. Jest to pakiet ca�kiem prosty do zainstalowania i u�ywania, ale ma tendencj� do za�amywania ludzi swoim plikiem konfiguracyjnym. Zajrzyj do pliku /etc/lilo/config - w starszych wersjach; lub /etc/lilo.conf - w nowszych wersjach, i sprawd� bie��ce ustawienia. Plik ten wygl�da tak:

    image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...

image = odnosi si� do aktualnej wersji zainstalowanego j�dra. Wi�kszo�� u�ywa nazwy /vmlinuz. Ale r�wnie dobrze mo�e to by� nazwa xxx, j�dro, czy pliczek (nie jestem pewien co do polskich liter, ale zawsze mo�na poeksperymentowa� :) ) label = u�ywane jest przez LILO, aby dowiedzie� si� jaki system lub j�dro za�adowa�, a root = jest katalogiem g��wnym danego systemu. Zr�b kopi� j�dra, kt�rego teraz u�ywasz i skopiuj nowo zrobione j�dro na miejsce starego (czyli napisz cp bzImage /vmlinuz je�li u�ywasz nazwy vmlinuz i jeste� w katalogu /usr/src/linux/arch/i386/boot. Potem uruchom LILO - w nowszych wersjach po prostu uruchamiasz lilo; w starszych mo�e b�dziesz musia� uruchomi� /etc/lilo/install albo nawet /etc/lilo/lilo -C /etc/lilo/config.

Je�li chcesz wiedzie� wi�cej na temat konfiguracji LILO, albo nie masz LILO, zdob�d� najnowsz� wersj� i poczytaj dokumentacj�.

Aby za�adowa� jedn� ze starszych wersji j�dra, kt�re mam nadziej� zachowa�e� :) skopiuj linie od image = xxx w pliku konfiguracyjnym LILO na d� pliku, zmie� xxx na nazw� twojego zachowanego pliku (wraz z pe�n� �cie�k�). Zmie� label = zzz na np. label = old-kernel i uruchom ponownie lilo. Mo�esz te� wstawi� lini� delay = x, gdzie x jest ilo�ci� dziesi�tnych cz�ci sekundy, do pliku konfiguracyjnego LILO, aby zatrzyma� �adowanie na okre�lon� ilo�� sekund i przerwa� je np. klawiszem SHIFT, a potem wpisa� nazw� kt�r� nada�e� starszej wersji j�dra (t� label = z pliku konfiguracyjnego LILO, a nie nazw� pliku j�dra) w razie gdyby sta�o si� co� nieprzyjemnego.

5. �atanie j�dra (patchowanie).

5.1 Zak�adanie �aty.

Pakiety, kt�re pozwalaj� na odnowienie j�dra to �aty. Na przyk�ad: je�li masz wersj� 1.1.45 i znajdziesz plik o nazwie patch46.gz to znaczy, �e mo�esz odnowi� swoje j�dro do wersji 1.1.46. Mo�esz zrobi� kopi� �r�de�, kt�re masz (make clean a potem cd /usr/src; tar zcvf old-kernel.tar.gz linux)

Tak wi�c kontynuuj�c powy�szy przyk�ad za��my, �e masz plik patch46.gz w katalogu /usr/src. Bed�c w katalogu /usr/src wydaj polecenie zcat pacth46.gz | patch -p0 albo patch -p0 < patch46 je�li �ata nie jest skompresowana. Zobaczysz teraz troch� �cie�ek i nazw plik�w oraz komunikat�w przelatuj�cych przez ekran, o tym co si� uda�o a co nie. Wszystko to przelatuje zbyt szybko, �eby nad��y� z czytaniem, tak�e w�a�ciwie nie wiesz czy si� uda�o czy nie. Mo�esz u�y� parametru -s do polecenia patch, aby poinformowa� je, �eby wy�wietla�o tylko komunikaty o b��dach. Aby zobaczy� czy co� posz�o nie tak, poszukaj plik�w z rozszerzeniem .rej w katalogu /usr/src/linux. Niekt�re wersje patch (starsze wersje, kt�re mog�y by� skompilowane na gorszym systemie plik�w) zostawiaj� b��dy w plikach z rozszerzeniem #. Mo�esz u�y� polecenia find, aby znale�� te pliki:

      cd /usr/src/linux; find ./ -name '*.rej' -print

Polecenie to wy�wietli wszystkie pliki z rozszerzeniem rej znajduj�ce si� w bie��cym katalogu i jego podkatalogach.

Je�li wszystko posz�o dobrze, wydaj teraz po kolei polecenia make clean, make config i make dep tak jak opisano w sekcjach 3 i 4.

Do polecenia patch jest troch� opcji. Jak ju� wspomnia�em, patch -s spowoduje wy�wietlenie na ekran tylko wiadomo�ci o b��dach. Je�li trzymasz �r�d�a w innym katalogu ni� /usr/src/linux, polecenie patch -p1 wydane w tym katalogu, gdzie trzymasz �r�d�a zrobi wszystko bez b��d�w. Inne opcje polcenia patch s� dobrze opisane w podr�czniku "man".

5.2 Je�li co� p�jdzie nie tak.

(Uwaga: ta sekcja odnosi si� w g��wnej mierze do starszych wersji j�dra.)

Najcz�stszym problemem by�o to, �e kiedy polecenie patch modyfikowa�o plik config.in nie wygl�da� on tak jak powinien, bo zmodyfikowa�e� go, aby pasowa� do twojego komputera. Zosta�o to ju� poprawione, ale w starszych wersjach b��d ten pozosta�. Aby to naprawi�, przeczytaj plik config.in.rej i zobacz co pozosta�o z oryginalnej �aty. Zmiany s� zwykle zaznaczane znakami + i - na pocz�tku linii. Sp�jrz na linie otaczaj�ce t� zaznaczon� i przypomnij sobie, czy by�y one ustawione na tak, czy na nie. Teraz w pliku config.in zmie� "y" na "n" i "n" na "y" tam gdzie trzeba. Wydaj polecenie patch -p0 < config.in.rej a je�li poinformuje ci�, �e si� powiod�o, wtedy mo�esz kontynuowa� konfiguracj� i kompilacj�. Plik config.in.rej pozostanie, ale mo�esz go skasowa�.

Je�li odkryjesz dalsze problemy, mog�e� zainstalowa� jak�� �at� nie w kolejno�ci. Je�li na ekranie pojawi si� taka wiadomo��: previously applied patch detected: Assume -R? oznacza to, �e przypuszczalnie pr�bujesz na�o�y� �at� o wersji mniejszej ni� �r�d�a twojego j�dra. Je�li odpowiesz "y", polecenie patch spr�buje zdegradowa� twoj� wersj�, i najprzypuszcalnie si� to nie powiedzie, przez co b�dziesz musia� zdoby� ca�kiem nowe �r�d�a. (co w sumie wcale nie jest takim z�ym pomys�em).

Aby odinstalowa� jak�� �at� u�yj patch -R na oryginalnej.

Jak ju� si� wszystko tak pomiesza, �e nie b�dziesz m�g� doj�� do �adu, to najlepszym sposobem jest zdoby� nowe �r�d�a j�dra i zacz�� od nowa.

5.3 Pozbywanie si� plik�w ".orig".

Po zaledwie kilku �atach pliki .orig zaczynaj� niebezpiecznie rosn��. Na przyk�ad: usuni�cie plik�w .orig z wersji 1.1.51, kt�ra by�a ostatnio czyszczona w wersji 1.1.48 spowodowa�o zwolnienie ponad 500 kB dysku.

    find . -name '*.orig' -exec rm -f {} ';'

Polecenie to spowoduje usuni�cie wszystkich plik�w .orig z bie��cego katalogu i jego podkatalog�w.

Wersje patch, kt�re u�ywaj� plik�w .# zamiast plik�w .rej, u�ywaj� tyldy (~) zamiast plik�w .orig.

S� lepsze sposoby pozbycia si� plik�w .orig, kt�re zale�� od polecenia GNU xargs:

    find .  -name '*.orig' | xargs rm

lub metoda ca�kiem bezpieczna ale troch� "g�o�na" (du�o komunikat�wna ekranie):

    find . -name '*.orig' -print0 | xargs --null rm --

5.4 Inne �aty.

S� jeszcze inne �aty (tzw. niestandardowe), ni� te kt�re dystrybuuje Linus. Je�li ich u�yjesz �aty Linusa mog� nie dzia�a� i b�dziesz musia� je albo odinstalowa�, dopasowa� �r�d�a albo �at�, zainstalowa� nowe �r�d�a, albo jaka� kombinacja tego. Mo�e to by� troch� frustruj�ce, wi�c je�li nie chcesz grzeba� w �r�d�ach (z mo�liwo�ci� narobienia niez�ego bajzlu), odinstaluj niestandardowe wersje �at zanim zainstalujesz �at� Linusa, albo po prostu zainstaluj nowe �r�d�a. Wtedy mo�esz zobaczy� czy �aty niestandardowe wci�� dzia�aj�. Je�li nie to albo utkn��e� ze starym j�drem i b�dziesz pr�bowa� zmusi� jako� �r�d�o albo �at�, �eby zacz�a dzia�a�, albo b�dziesz czeka� (pewnie b�aga�) o now� �at�.

Jak pospolite s� te niestandardowe �aty?
Przypuszczalnie o nich us�yszysz. Ja u�ywa�em �aty "noblink" na moich wirtualnych konsolach, bo nienawidz� mrugaj�cego kursora. Ta �ata jest (a przynajmniej by�a) cz�sto odnawiana dla nowszych wersji j�dra. Z wi�kszo�ci� nowych sterownik�w jako �adowalne modu�y, chocia� cz�stotliwo�� niestandardowych �at znacznie spada.

6. Pakiety dodatkowe.

J�dro Linux-a ma wiele zalet, kt�re nie znajduj� si� w �r�d�ach. S� one rozprowadzane jako osobne pakiety. Niekt�re z tych najbardziej popularnych s� tu wymienione.

6.1 kbd

Konsola Linux-owa ma chyba wi�cej zalet ni� na to zas�uguje. Pomi�dzy nimi znajduj� si� takie jak: zmiana czcionek, zmiana uk�adu klawiszy, zmiana tryb�w wy�wietlania (w nowszych wersjach). Pakiet kbd to programy, kt�re pozwalaj� u�ytkownikowi na robienie tego wszystkiego plus wiele czcionek i uk�ad�w klawiatur dla prawie wszystkich klawiatur i jest on dost�pny z tego samego miejsca, gdzie znajduj� si� �r�d�a j�dra.

6.2 util-linux

Rik Faith ( faith@cs.unc.edu ) z�o�y� razem obszern� kolekcj� narz�dzi do Linux-a, kt�re dziwnym trafem nazywaj� si� util-linux. Obecnie zajmuje si� nimi Andries Brouwer ( util-linux@math.uio.no ). Dost�pne s� one poprzez anonimowe ftp z ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/system/misc. Zawiera ona takie narz�dzia jak: setterm, rdev, czy ctrlaltdel, kt�re s� zwi�zane z j�drem. Jak Rik twierdzi, Nie instaluj tego zestawu bez zastanowienia. Nie trzeba instalowa� ca�ej zawarto�ci pakietu, mog�oby to nawet spowodowa� powa�ne problemy.

6.3 hdparm

Jak wi�szko�� pakiet�w, ten by� �at� i dodatkiem dla j�dra. �aty zosta�y z czasem zwi�zane na sta�e z j�drem, a ten program sta� si� osobnym pakietem. W r�kach niedo�wiadczonego u�ytkownika jest on bardzo niebezpieczny. Wi�c nie u�ywaj go je�li nie wiesz co robisz.

6.4 gpm

gpm - general purpose mouse czyli, w do�� wolnym t�umaczeniu :), mysz o og�lnym zastosowaniu. Program ten pozwala na przenoszenie zawarto��i pomi�dzy wirtualnymi konsolami i inne po�yteczne rzeczy jak np. t�umaczenie protoko��w pomi�dzy r�nymi typami myszek, u�ywanie wielu myszek...

7. Niekt�re pu�apki.

7.1 make clean

Je�li twoje nowe j�dro zaczyna robi� dziwne rzeczy po rutynowym odnowieniu, przypuszczalnie zapomnia�e� wyda� polecenie make clean przed kompilacj� nowego j�dra. Oznaki takie to mo�e by� cokolwiek od zawieszania si� systemu bez powodu, przez dziwne problemy z funkcajmi I/O, do �limaczej szybko�ci. Nie zapomnij tak�e wyda� polecenia make dep.

7.2 Wielkie albo wolne j�dro.

Je�li twoje jadro z�era ogromn� ilo�� pami�ci, jest zbyt du�e, albo po prostu kompiluje si� w niesko�czono�� nawet je�li masz swoje nowiutkie Quadbazillium-III/4400, najprawdopodobniej skonfigurowa�e� niepotrzebnie pe�no sterownik�w. Je�li czego� nie u�ywasz, to nie konfiguruj, bo to naprawd� zabiera niepotrzebnie pami��. Najbardziej oczywistym symptomem przy zbyt du�ym j�drze jest bardzo cz�ste swapowanie (je�li tw�j dysk ci�gle rz�zi, a nie jest jednym z tych starych or��w Fujitsu, kt�re brzmi� jak l�duj�cy odrzutowiec, przejrzyj konfiguracj� swojego j�dra).

Mo�esz dowiedzie� si� ile pami�ci zabiera twoje j�dro odejmuj�c warto�� total mem z pliku /proc/meminfo albo z polecenia free od ca�kowitej ilo�ci pami�ci w twoim komputerze.

7.3 Port r�wnoleg�y nie dzia�a/moja drukarka nie dzia�a.

Opcje kt�re musisz w��czy� na PC-cie to: Najpierw w sekcji "General Setup" w��cz "Parallel port support" oraz "PC-style hardware". Nast�pnie w sekcji "Character devices" w��cz "Parallel printer support".

No i potem zostaj� nazwy. W wersji 2.2 zastosowano inne nazwy ni� w starszych wersjach. Powodem tego jest, to �e w starym j�drze mia�e� lp1 a teraz jest to lp0. Sp�jrz do dmesg albo w katalogu /var/log/.

7.4 J�dro si� nie kompiluje.

Je�li si� rzeczywi�cie nie kompiluje, to pewnie jaka� �ata si� nie zainstalowa�a poprawnie. Twoja wersja "gcc" mo�e tak�e by� nie w porz�dku. Albo pliki nag��wkowe s� skopane. Upewnij si� tak�e czy symboliczne do��czenie, o kt�rych Linus pisze w README, s� poprawnie zrobione. W og�lno�ci je�li standardowe j�dro si� nie kompiluje, to co� powa�nego jest z systemem i niezb�dna jest ponowna instalacja niekt�rych narz�dzi.

W niekt�rych przypadkach "gcc" mo�e si� wysypa� z powodu problem�w sprz�towych. Komunikaty w tym przypadku to: xxx exited with signal 15 i w og�lno�ci s� one bardzo tajemnicze. Pewnie bym o tym nie wspomina�, gdyby nie to, �e mi si� to zda�y�o - mia�em kiedy� wadliw� pami�� cache a kompilator wtedy hula� sobie po pami�ci gdzie chcia�. Najpierw spr�buj przeinstalwa� gcc. Podejrzenia na sprz�t rzucaj dopiero je�li j�dro si� kompiluje przy wy��czonym zewn�trznym cache'u, albo przy zmniejszonej ilo�ci pami�ci RAM itp.

Z regu�y ludzi to troch� denerwuje jak im powiesz, �e maj� popsuty sprz�t. C�, ja tego nie zmy�lam. Jest FAQ na ten temat - www.bitwizard.nl/sig11/.

7.5 Nowa wersja j�dra nie chce si� za�adowa�.

Albo nie uruchomi�e� lilo po skopiowaniu j�dra na miejsce starego, albo �le skonfigurowa�e�. Najcz�ciej spotykanym problemem jest nie wkompilowanie obs�ugi twoejgo dysku lub systemu ext2. Kiedy� mia�em problem z plikiem konfiguracyjnym LILO; by�o tam boot = /dev/hda1 a powinno by� boot = /dev/hda. Na pocz�tku to mo�e byc naprawd� denerwuj�ce, ale potem jak ju� masz dobry plik konfiguracyjny nie powiniene� go zmienia�.

7.6 Zapomnia�e� uruchomi� lilo, albo system si� w og�le nie �aduje.

Oooj! Najlepsz� rzecz� jak� mo�na zrobi� to za�adowa� system z dyskietki lub CDROMu (no trzeba je oczywi�cie mie� :) ) i przygotowa� now� dyskietk� startuj�c� (np. make zdisk). Musisz wiedzie�, gdzie jest tw�j g��wny system plik�w i jakiego jest typu. (ext2, minix). W przyk�adzie poni�ej musisz tak�e wiedzie� gdzie i na jakim systemie jest /usr/src/linux i gdzie jest zwykle zamontowany.

W nast�puj�cym przyk�adzie "/" to /dev/hda1, a partycja, na kt�rej znajduje si� katalog linux to /dev/hda3 normalnie montowana na /usr. Dzia�aj�ce j�dro jest w katalogu /usr/src/linux/arch/i386/boot i nazywa si� bzImage.

Pomys� polega na tym, �e je�li masz dzia�aj�ce bzImage, mo�na tego u�y� dla nowej dyskietki. Inna alternatywa, kt�ra mo�e, ale nie musi dzia�a� (to zale�y jak bardzo namiesza�e�) opisana jest za tym przyk�adem.

Najpierw, za�aduj system z dyskietki, kt�r� akurat masz i zamontuj system plik�w, na kt�rym znajduje si� dzia�aj�ce j�dro:

   mkdir /mnt
   mount -t ext2 /dev/hda3 /mnt

Je�li pojawi si� komunikat, �e katalog /mnt ju� jest - zignoruj go. Przy mount na pewno pojawi si� komunikat ostrzegaj�cy, �e montujesz niesprawdzony system plik�w - zignoruj go. Zmie� katalog na ten, w kt�rym znajduje si� dzia�aj�ce j�dro (pami�taj, �e teraz masz dysk w katalogu /mnt). Umie�� sformatowan� dyskietk� w stacji A: (nie dyskietk�, z kt�rej startowa�e� !!!), przerzu� j�dro na dyskietk� i skonfiguruj je dla twojego g��wnego systemu plik�w:

   cd /mnt/src/linux/arch/i386/boot
   dd if=bzImage of=/dev/fd0
   rdev /dev/fd0 /dev/hda1

Zmie� katalog na / (cd /) i odmontuj katalog /mnt (umount /mnt). Powiniene� by� teraz w stanie za�adowa� system tak jak normalnie z tej dyskietki. Nie zapomnij uruchomi� lilo po restarcie (czy co tam �le zrobi�e�).

Jak ju� wspomnia�em jest jeszcze inna metoda. Je�li masz kopi� dzia�aj�cego j�dra, mo�esz jej u�y� dla zrobienia dyskietki startowej. We�my zn�w powy�sze warunki i za��my, �e dzia�aj�ca kopia to /vmlinuz. Zr�b to samo co powy�ej z tymi zmianami: /dev/hda3 zmie� na /dev/hda1/ (g�. system plik�w) /mnt/src/linux na /mnt if=bzImage na if=vmlinuz

------------------------------------------------------------------
Od t�umacza:

Szczerze powiem/napisz�, �e nie wiem po co ten cz�owiek tak komplikuje spraw�. Podam tu spos�b, ktorego ja u�ywam:

Najpierw sprawd� czy masz takie linijki na pocz�tku pliku /etc/lilo.conf:

   prompt
   timeout=50

Je�li nie to je dopisz.

W swoim pliku /etc/lilo.conf mam zawsze dwie sekcje:

image=/boot/vmlinuz
        label=linux
        root=/dev/hda1
        read-only
image=/boot/vmlinuz-old
        label=linux-old
        root=/dev/hda1
        read-only

Ja nazywam j�dra z wersj� na ko�cu (/vmlinuz-2.0.18) i robi� symboliczne do��czenie ln -s /vmlinuz-2.0.18 /vmlinuz. Je�li kompiluj� t� sam� wersj� j�dra, to przed kompilacj�/instalacj� ZAWSZE robi� kopi� j�dra, kt�re mi dzia�a (powiedzmy cp /vmlinuz-2.0.18 /vmlinuz.2.0.18.old);
Jak ju� skompiluj� j�dro to kopiuje je na /vmlinuz-wersja, przedtem KOPIA !!! - tylko je�li kompilujemy t� sam� wersj� j�dra, kt�r� ju� u�ywamy, bo nowsza wersja b�dzie mia�a inny numer na ko�cu. Po skopiowaniu zmieniamy do��czenie symboliczne (je�li instalujemy now� wersj�) - rm /vmlinuz; ln -s /vmlinuz-nowa_wersja /vmlinuz; oraz ln -s /vmlinuz-2.0.18.old /vmlinuz-old; potem uruchamiamy lilo i restartujemy komputer. Je�li nowe j�dro nie dzia�a, to startujemy stare j�dro (wpisujemy po pojawieniu si� boot: lub LILO: na ekranie linux-old) i po wci�ni�ciu ENETERa mamy znowu dzia�aj�cy system.

Je�li nie dzia�aj�ce j�dro by�o w tej samej wersji co poprzednie (po prostu potrzebowa�e� co� doda�), to trzeba uruchomi� system w trybie "single" (linux-old init single), odzyska� stare modu�y ze zrobionej poprzednio kopii katalogu /lib/modules/x.y.z i zrestartowa� jeszcze raz system pami�taj�c, �eby startowa� stare j�dro. Albo po prostu zmie� odpowiednie dowi�zanie /vmlinuz, �eby wskazywa�o te� na star� wersj� j�dra (ln -s /vmlinuz-x.y.z.old /vmlinuz) i NIE ZAPOMNIJ po ka�dej takiej operacji uruchomi� /sbin/lilo.

------------------------------------------------------------------

U�ywanie LILO z du�ymi dyskami (z wieksz� ilo�ci� cylindr�w ni� 1023) mo�e powodowa� problemy. Przeczytaj mini-HOWTO LILO i Large-Drives, je�li chcesz zna� wi�cej szczeg��w.

7.7 Pisze mi "warning: bdflush not running".

No i dobrze, �e pisze, bo to mo�e by� powa�ny problem. Poczynaj�c od wersji j�dra 1.0.0 (oko�o 20 kwietnia 1994) program update, kt�ry okresowo zapisuje zawarto�� bufora na dysk, zosta� zmieniony. Zdob�d� �r�d�a programu "bdflush" (powiniene� je znale�� tam gdzie j�dro) i skompiluj. Dop�ki nie uruchomisz tego programu radz� u�ywa� wersji j�dra starszej od 1.0.0 (Czy ta wersja jest jeszcze do zdobycia !!!?). Instaluje si� samo jako update, a po restarcie nowe j�dro nie powinno juz narzeka�.

7.8 Nie mog� zmusi� mojego CD-ROM-u IDE/ATAPI do wsp�pracy.

Naprawd� dziwne. Bardzo du�o ludzi ma ten problem. Pewnie dlatego, �e jest du�o przypadk�w, w kt�rych to si� mo�e dzia�.

Je�li tw�j CD-ROM to jedyne urz�dzenie na konkretnym interfejsie IDE, musi by� skonfigurowany zworkami jako master lub single. To jest najcz�stszy problem.

Creative Labs umieszcza teraz interfejs IDE na swoich kartach d�wi�kowych. To prowadzi do ciekawego problemu, bo niekt�rzy maj� tylko jeden interfejs IDE, wielu ma dwa interfejsy IDE na swoich p�ytach g��wnych (zwykle na IRQ15), wi�c najpopularniejszym rozwi�zaniem jest uczyni� interfejs na karcie d�wi�kowej trzecim (IRQ11, a przynajmniej tak mi m�wili).

To powoduje w Linux-ie problemy, poniewa� wersja 1.2.x nie obs�uguje trzeciego interfejsu IDE (obs�uga jest w kt�rej� z wersji 1.3.x, ale pami�taj - to jest wersja testowa, i nie wykrywa sama tego interfejsu). Aby to obej�� masz trzy mo�liwo�ci:

Je�li masz ju� drugi interfejs, to prze�� CD-ROM na ten drugi interfejs je�li jest wolny. Mo�esz wtedy wy��czy� interfejs z karty d�wi�kowej, co zachowa jedno IRQ.

Je�li nie masz drugiego interfejsu, ustaw interfejs na karcie d�wi�kowej (ale nie ten od d�wi�ku, tylko IDE) na przerwanie IRQ15 za pomoc� zworek. Powinno dzia�a�.

7.9 Pisze co� o przestarza�ym rutingu.

We� now� wersj� programu route i wszelkie inne programy, kt�re si� zajmuja rutingiem. /usr/include/linux/route.h (kt�ry w�a�ciwie jest plikiem w /usr/src/linux) sie zmieni�.

7.10 Firewall mi nie dzia�a w wersji 1.2.0

We� wersj� co najmniej 1.2.1.

7.11 "Not a compressed kernel Image file".

Nie u�ywaj jako j�dra pliku vmlinux w katalogu /usr/src/linux stworzonego podczas kompilacji. Plik, kt�ry powiniene� u�y� to: /usr/src/linux/arch/i386/boot/bzImage.

7.12 Problemy z konsol� po odnowieniu do wersji 1.3.x.

Zmie� s�owo dumb na linux w pliku /etc/termcap w sekcji dotycz�cej konsoli. Mozliwe te�, �e b�dziesz musia� zrobi� terminfo.

7.13 Nie mog� skompilowa� r�nych rzeczy po odnowieniu j�dra.

�r�d�a j�dra zawieraj� pewn� liczb� plik�w nag��wkowych (te co si� ko�cz� na .h), do kt�rych odwo�uj� si� standardowe pliki nag��wkowe w /usr/include. Przewa�nie wygl�da to tak:

     #include <linux/xxyy.h>

Zwykle w katalogu /usr/include jest symboliczne do��czenie linux wskazuj�ce na /usr/src/linux/include/linux. Je�li do��czenia tego nie ma, albo wskazuje na z�e miejsce, to rzeczywi�cie wi�kszo�� program�w si� nie skompiluje. Je�li zdecydowa�e�, �e �r�d�a zajmuj� za du�o miejsca na dysku i skasowa�e� je, to to jest w�a�nie tw�j problem. Razem z tymi �r�d�ami skasowa�e� pliki nag��wkowe. Inny problem to problem z dost�pem do plik�w: Je�li tw�j root ma umask ustawiony tak, �e u�ytkownicy nie mog� widzie� plik�w przez niego stworzonych, i rozpakowa�e� �r�d�a bez opcji p (zachowaj oryginalne flagi dost�pu), u�ytkownicy nie b�d� mogli u�y� kompilatora. Najpro�ciej naprawi� to w ten spos�b:

   zaloguj si� jako root
   cd /usr/src/linux/
   chmod -R go+r include/

7.14 Zwi�kszanie limit�w.

Kilka nast�puj�cych przyk�adowych polece� mo�e pom�c tym, kt�rzy zastanawiaj� si� jak zwi�kszy� pewne programowe ograniczenia wprowadzone przez j�dro:

echo 4096 > /proc/sys/kernel/file-max
echo 12288 > /proc/sys/kernel/inode-max
echo 300 400 500 > /proc/sys/vm/freepages

8. Uwaga na temat uaktualnienia do wersji 2.0.x i 2.2.x.

Wersje j�dra 2.0.x i 2.2.x wprowadzi�y troch� zmian w instalacji. Plik Documentation/Changes zawiera informacje, kt�re powiniene� pozna�, kiedy uaktualaniasz swoje j�dro do kt�rej� z tych wersji. Najprzypuszczalniej b�dziesz musia� odnowi� tak�e niekt�re kluczowe pakiety, takie jak: gcc, libc i SysVInit, i mo�e dostosowa� kilka plik�w systemowych. Ale nie panikuj !

9. Modu�y.

�adowalne modu�y j�dra mog� zaoszcz�dzi� troch� pami�ci i u�atwi� konfiguracj�. Obszar dzia�ania modu��w ur�s� ju� do tego, �e zawieraj� one systemy plik�w, sterowniki do kart Ethernet, do ta�m, do drukarek i wiele innych.

9.1 Instalacja narz�dzi modu�owych.

Narz�dzia te sa dost�pne stamt�d, sk�d masz �r�d�a j�dra. Nazywaj� si� modutils-x.y.z.tar.gz; wybierz najwy�sz� wersj� r�wn�, albo mniejsz� od wersji twojego j�dra. Rozpakuj poleceniem tar zxvf modutils-x.y.z. Wejd� do stworzonego katalogu i poczytaj plik README. Wype�nij dok�adnie instrukcje na temat instalacji (jest ona z regu�y bardzo prosta: make install lub co� podobnego). Powiniene� mie� teraz programy: insmod, rmmod, ksyms, lsmod, genksyms, modprobe i depmod w katalogu /sbin. Je�li chcesz przetestowa� narz�dzia z przyk�adowym sterownikiem "hw" w insmod; przejrzyj plik INSTALL w tym katalogu.

insmod �aduje modu� do uruchomionego j�dra. Modu�y maj� z regu�y roszerzenie .o; przyk�adowy modu� wspomniany wy�ej nazywa si� drv_hello.o, a wi�c aby go za�adowa�, napisz: insmod drv_hello.o. Aby zobaczy� jakie modu�y s� aktualnie u�ywane przez j�dro u�yj lsmod. Powinien wy�wietli� co� takiego

   blah# lsmod
   Module:      #pages: Usedby:
   drv_hello       1

drv_hello jest nazw� modu�u, u�ywa jednej strony (4kB) pami�ci i �adne inne modu�y nie zale�� od niego w tej chwili. Aby usun�� ten modu� z j�dra u�yj rmmod drv_hello. Zauwa�, �e rmmod chce nazwy modu�u a nie pliku. We� j� z polecenia lsmod. Inne narz�dzia modu�owe s� opisane w podr�czniku man.

9.2 Modu�y dystrybuowane z j�drem.

Je�li chodzi o wersj� 2.0.30 wi�kszo�� sterownik�w dost�pna jest w postaci modu��w. Aby ich u�y�, najpierw upewnij si� czy nie skonfigurowa�e� ich jako sta�e cz�ci j�dra. To znaczy: nie odpowiadaj "y" na pytania ich dotycz�ce podczas konfiguracji, ale "m" je�li jest taka mo�liwo��. Po skompilowaniu j�dra napisz make modules i make modules_install. Pierwsze polecenie skompiluje wszystkie sterowniki wyspecyfikowane jako modu�y, a drugie zainstaluje je w katalogu /lib/modules/x.y.z, gdzie x.y.z jest wersj� j�dra. Po zainstalowaniu tych modu��w wejd� do katalogu /lib/modules/x.y.z i napisz modprobe -a, je�li masz ten program.

$lsqb;Od t�umacza] Je�li kompilujesz j�dro o wersji takie samej jak to kt�re u�ywasz obecnie, to na wszleki wypadek przed poleceniem make modules_install, zr�b w katalogu /lib/modules/ kopi� katalogu o nazwie takiej samej jak wersja obecnego j�dra.

Modu�y s� szczeg�lnie przydatne do system�w plik�w albo sterownik�w urz�dze�, kt�rych rzadko u�ywasz. Np. je�li chcesz u�y� dyskietki msdos, to najpierw piszesz insmod /lib/modules/x.y.z/fs/msdos.o i u�ywasz tej dyskietki. Po sko�czeniu piszesz rmmod msdos. Operacja ta zaoszcz�dza jakie� 50 kB RAM-u - niby nic ale jak si� uzbiera kilka takich sterownik�w to docenisz t� zalet�. Co do systemu plik�w minix to powinien on by� zawsze wkompilowany w j�dro na sta�e, w razie u�ycia dyskietki startowej. Na dyskietkach jest w�a�nie minix.

------------------------------------------------------------------
Od t�umacza: Znowu facet skomplikowa� spraw�. Jest narz�dzie, kt�re zajmuje si� za ciebie �adowaniem i usuwaniem odpowiednich modu��w do i z pami�ci. Nazywa si� kerneld czyli kernel daemon. Je�li u�yjesz czego� co wymaga sterownika w module, kerneld za�aduje za ciebie ten modu�, a potem go wyrzuci jak ju� przestaniesz tego u�ywa�. Aby go u�y� musisz odpowiedzie� na pytanie konfiguracyjne dotycz�ce kerneld "Kernel daemon support" "y". Przedtem jeszcze odpowiedz "y" na pytanie "Modules support" czy jako� tak, �eby m�c w og�le u�ywa� modu��w. Po kompilacji j�dra wszystko idzie tak samo jak opisane powy�ej. Jeszcze jedno: je�li masz dystrybucj� RH to sprawd� czy w pliku /etc/rc.d/rc.sysinit jest uruchamiany /sbin/kerneld. Je�li nie, to sprawd� czy uruchamia si� tam program depmod. je�li te� nie to dopisz te linijki:

     /sbin/depmod -a
     
     if [ -x /sbin/kerneld ]; then
        /sbin/kerneld
     fi

za linijk� kt�ra wygl�da mniej wi�cej tak:

      mount -n -o remount,rw /

Je�li masz Slackware sprawd� czy w pliku /etc/rc.d/rc.M jest uruchamiany /sbin/kerneld. Je�li nie, to sprawd� czy uruchamia si� tam program depmod. Je�li te� nie, to dopisz te linijki

     /sbin/depmod -a
     
     if [ -x /sbin/kerneld ]; then
        /sbin/kerneld
     fi

za linijk� kt�ra wygl�da mniej wi�cej tak:

      mount -n -o remount,rw /

Je�li masz dystrybucj� Debian to: 1) sprawd� czy jest plik /etc/init.d/kerneld, je�li tak to 2) sprawd� czy w /etc/rcX.d/ jest dowi�zanie do tego pliku (b�dzie to plik SYYkerneld), je�li jest, to wszystko jest w porz�dku. X - numer runlevel-u kt�ry standardowo uruchamiasz. (sprawd� w pliku /etc/inittab linijk� initdefault)
Je�li kt�ry� z tych warunk�w jest niespe�niony to:

ad 1) za�� plik /etc/init.d/kerneld o tre�ci:

#!/bin/bash

# source function library
. /etc/rc.d/init.d/functions


case "$1" in
  start)
        echo -n "Starting kerneld "
        if [ -f "/sbin/kerneld" ]; then
                /sbin/kerneld
                /sbin/depmod -a
        fi

        touch /var/lock/subsys/kerneld
        ;;
  stop)
        echo -n "Shutting down kerneld: "
        killproc kerneld
        rm -f /var/lock/subsys/kernled
        echo
        ;;
  *)
        echo "Usage: kerneld {start|stop}"
        exit 1
esac

exit 0

ad 2) napisz

     cd /etc/rcX.d/
     ln -s /etc/init.d/kerneld SYYkerneld

YY musi by� numerem przed �adowaniem modu��w; najlpiej jak najwcze�niej. ------------------------------------------------------------------

10. Sztuczki i wskaz�wki.

10.1 Przekierowywanie wyj�cia z polece� make i patch.

Je�li chcia�by� mie� zapisane w pliku to co dzia�o si� podczas wykonywania polece� make i patch, mo�esz przekierowa� wyj�cie tych komend do pliku. Najpierw dowiedz si� w jakiej pow�oce pracujesz:

   echo $shell

Je�li jest to /bin/sh albo /bin/bash, wtedy przekierowywanie wyj�cia wygl�da tak:

   polecenie 2>&1 | tee nazwa_pliku_do_zapisania

Je�li jest to /bin/csh albo /bin/tcsh, to wygl�da to tak

   polecenie |& tee nazwa_pliku_do_zapisania

Je�li u�ywasz rc (a raczej nie u�ywasz), wtedy wygl�da to tak:

   polecenie >[2=1] | tee nazwa_pliku_do_zapisania

10.2 Instalacja warunkowa j�dra.

S� jeszcze inne metody testowania nowego j�dra bez ruszania starego, opr�cz tych z dyskietkami. LILO ma mo�liwo�� �adowania j�dra z jakiegokolwiek miejsca na dysku (je�li tw�j dysk ma wi�cej ni� 1023 cylindry [512 MB lub wi�cej], przeczytaj dokumentacj� LILO, �eby dowiedzie� si� jakie s� z tym zwi�zane problemy). Tak wi�c je�li dodasz takie linie:

     image = (tu wstaw katalog, w kt�rym znajduje si� nowe j�dro)
         label = new_kernel

na ko�cu pliku konfiguracyjnego LILO, mo�esz wybra� jakie j�dro chcesz �adowa�, bez ruszania starego j�dra (po wykonaniu lilo oczywi�cie). Najprostszym sposobem poinformowania LILO, kt�re j�dro chcemy za�adowa� jest wci�ni�cie klawisz SHIFT podczas startu (w momencie kiedy na ekranie pojawi si� "LILO"). Wtedy pojawi si� znak zach�ty. Wpisuj�c tu new_kernel, lub nazw�, kt�r� nada�e� w pliku konfiguracyjnym LILO nowemu j�dru, poinformujesz LILO, �eby za�adowa�o nowe j�dro.

Je�li chcesz trzyma� kilka r�nych �r�de� j�dra na dysku (to zabiera DU�O miejsca - ostro�nie) najprostszym sposobem jest nazywanie ich linux-wersja_j�dra. Musisz wtedy zrobi� symboliczne do��czenie ln -s linux-wersja linux �eby u�ywa� wybranej wersji. Przed zrobieniem takiego do��czenie upewnij si�, �e ostatni parametr do "ln" nie jest katalogiem, bo wtedy nie b�dzie to to, czego si� spodziewa�e�.

10.3 Odnowienia j�dra.

Russel Nelson ( nelson@crynwr.com ) umieszcza zmiany jakie zasz�y w bie��cej wersji j�dra. S� one kr�tkie i mo�esz zajrze� tam zanim postanowisz odnowi� j�dro. S� one dost�pne poprzez anonimowe ftp z ftp.emlist.com w katalogu pub/kchanges lub poprzez WWW - http://www.crynwr.com/kchanges. Spis zmian mo�esz znale�� tak�e w ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/kernel/changes.

11. Inne dokumenty HOWTO, kt�re mog� si� przyda� to:

12. R�no�ci

12.1 Od autora.

Autorem i cz�owiekim opiekuj�cym si� tym dokumentem jest Brian Ward bri@cs.uchicago.edu Prosz� przysy�a� mi wszelkie komentarze, dodatki, poprawki (te s� najwa�niejsze).

Jak chcesz mo�esz zajrze� na moj� stron� WWW:

            
<htmlurl url="http://www.math.psu.edu/bri/" name="www.math.psu.edu/bri/">

Pomimo, i� staram si� odpowiada� na poczt� kiedy tylko mog�, to musisz pami�ta�, �e dostaje du�o list�w codziennie. Wi�c odpowiedzenie na tw�j list mo�e zaj�� troch� czasu. Szczeg�lnie je�li wys�a�e� mi jakie� pytanie, spr�buj by� jak najbardziej dok�adny. Je�li piszesz o niedzia�aj�cym sprz�cie (czy co� podobnego) musz� wiedzie� jaka jest konfiguracja tego sprz�tu. Je�li piszesz o b��dzie, to nie pisz, �e "pr�bowa�em, ale nie dzia�a..." Musz� zna� chocia� b��d jaki si� pojawi�. Chcia�bym tak�e wiedzie� jaka by�a wersja j�dra, gcc i libc. Je�li powiesz mi, �e u�ywasz tej-i-tej dystrybucji to mi wiele nie powie. Nie obchodzi mnie to, �e zadajesz proste pytania. Kto pyta, nie b��dzi! Chcia�bym podzi�kowa� wszystkim, kt�rzy wspierali mnie podzas pisania tego dokumentu.

Je�li twoje pytanie nie by�o zwi�zane z j�drem albo jest w jakim� j�zyku, kt�rego nie znam, to mog� nie odpowiedzie�.

Je�li wys�a�e� do mnie list i nie otrzyma�e� odpowiedzi w jakim� sensownym czasie (3+ tygodni). To ca�kiem mo�liwe, �e przypadkowo skasowa�em tw�j list (przepraszam). Napisz jeszcze raz.

Dostaj� du�o poczty z pytaniami, kt�re s� w�a�ciwie problemami sprz�towymi. W porz�dku, ale pami�taj, �e przecie� nie znam wszystkich urz�dze� na �wiecie i nie wiem na ile mog� by� pomocny. Osobi�cie u�ywam maszyn z procesorem AMD, kontrolery SCSI Adaptec i Sybios oraz dyski SCSI IBM.

Wersja -0.1 zosta�a napisana 3 pa�dziernika 1994. Dokument ten jest dost�pny w formatach: SGML, PostScript, TeX, roff i jako czysty tekst.

12.2 Co jest jeszcze do zrobienia.

Sekcja na temat sztuczek i wskaz�wek jest jeszcze troch� ma�a. Mam nadziej�, �e si� rozro�nie wraz z przybywaniem sugestii. To samo odnosi si� do sekcji pakiety dodatkowe. Potrzeba mi wi�cej informacji na temat �ledzenia (debugging) i odzyskiwania po padach systemu.

12.3 Oto ci, kt�rzy si� przyczynili do powstania tego HOWTO.

Do��czona jest ma�a cz�� README Linusa na temat opcji rozgryzania j�dra.(kernel hacking) (Dzi�ki Ci Linus!)

uc@brian.lunetix.de (Ulrich Callmeier): polecenia patch -s, xargs.

quinlan@yggdrasil.com (Daniel Quinlan): poprawki i dodatki do wielu sekcji.

nat@nataa.fr.eu.org (Nat Makarevitch): mrproper, tar -p i wiele innych

boldt@math.ucsb.edu (Axel Boldt): uzbierany spis opcji konfiguracyjnych j�dra dotycz�cych sieci. Przes�ane mi.

lembark@wrkhors.psyber.com (Steve Lembark): sugestie odno�nie wyboru j�dra przy starcie.

kbriggs@earwax.pd.uwa.edu.au (Keith Briggs): kilka sugestii i poprawek.

rmcguire@freenet.columbus.oh.us (Ryan McGuire): dodatki na temat "make"

dumas@excalibur.ibp.fr (Eric Dumas): t�umaczenie francuskie

simazaki@ab11.yamanashi.ac.jp (Yasutada Shimazaki): t�umaczenie japo�skie

jjamor@lml.ls.fi.upm.es (Juan Jose Amor Iglesias): t�umaczenie hiszpa�skie

mva@sbbs.se (Martin Wahlen): t�umaczenie szwedzkie

jzp1218@stud.u-szeged.hu (Zoltan Vamosi): t�umaczenie w�gierskie

B.Maruszewski@jtz.org.pl (Bartosz Maruszewski): t�umaczenie polskie

donahue@tiber.nist.gov (Michael J Donahue): korekta liter�wek, wygra� konkurs o kromk� chleba

rms@gnu.ai.mit.edu (Richard Stallman): pomys� na bezp�atn� dokumentacj� i dystrybucj�

dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup): NFS

esr@snark.thyrsus.com (Eric Raymond): r�no�ci.

Ci, kt�rzy przysy�ali mi pytania z problemami tak�e byli pomocni.

12.4 Prawa autorskie, licencja i takie inne.

Dokument chroniony prawami autorskimi © Briana Warda, 1994-1999. Mo�na rozprowadza� kopie tego dokumentu o ile na wszystkich b�dzie zachowana uwaga o prawach autorskich i to pozwolenie.

Mo�na kopiowa� i dystrybuwa� ten dokument w wersji modyfikowanej pod warunkiem dos�ownego kopiowania zak�adaj�c, �e praca pochodna jest dystrybuowana z takimi samymi prawami jak ten dokument. T�umaczenia zaliczaj� si� tak�e do wersji modyfikowanych.

Gwarancja: �adna.

Zalecenia: Dystrybucja komercyjna jest dozwolona. Jednak zaleca si� najpierw kontakt z autorem, aby mie� naj�wie�sze dane (mo�esz mi wys�a� kopi� tego co chcesz dystrybuowa�). T�umacze s� tak�e zobowi�zani najpierw si� skontaktowa� ze mn�. Wersja wydrukowana wygl�da o wiele �adniej.

12.5 Od t�umacza.

T�umaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

Je�li znalaz�e� jakie� ra��ce b��dy ortograficzne, gramatyczne, sk�adniowe, techniczne to pisz do mnie:

B.Maruszewski@jtz.org.pl

Oficjaln� stron� t�umacze� HOWTO jest http://www.jtz.org.pl/

Aktualne wersje przet�umaczonych dokument�w znajduj� si� na tej�e stronie. Dost�pne s� tak�e poprzez anonimowe ftp pod adresem ftp.jtz.org.pl w katalogu /pub/Linux/JTZ/.

Przet�umaczone przeze mnie dokumenty znajduj� si� tak�e na mojej stronie WWW. S� tam te� odwo�ania do Polskiej Strony T�umaczeniowej.

Kontakt z nasz� grup�, grup� t�umaczy mo�esz uzyska� poprzez list� dyskusyjn� jtz@ippt.gov.pl. Je�li chcesz sie na ni� zapisa�, to wy�lij list o tre�ci subscribe jtz Imi� Nazwisko na adres majordomo@ippt.gov.pl

Zmiany w tym dokumencie wprowadzone przez t�umacza to:

#

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:23