Opis jądra Linux-a, jego instalacji itp.
Autor: Brian Ward, bri@cs.uchicago.edu
v1.0, 5 Czerwca 1999
WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
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.
______________________________________________________________________
11.. WWpprroowwaaddzzeenniiee..
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 _n_a_p_r_a_w_d_ę 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.
11..11.. PPrrzzeecczzyyttaajj ttoo nnaajjppiieerrww!! ((NNiiee żżaarrttuujjęę))
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.
11..22.. SSłłoowwoo nnaa tteemmaatt wwyygglląądduu..
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.
22.. WWaażżnnee ppyyttaanniiaa ii ooddppoowwiieeddzzii nnaa nniiee..
22..11.. CCoo ttoo jjąąddrroo ww ooggóóllee rroobbii??
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ć.
22..22.. DDllaacczzeeggoo mmiiaałłbbyymm cchhcciieećć ooddnnoowwiićć sswwoojjee jjąąddrroo??
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.
22..33.. JJaakkii sspprrzzęętt oobbssłłuugguujjąą nnoowwsszzee wweerrssjjee jjąąddrraa??
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.
22..44.. JJaakkiieejj wweerrssjjii ggcccc ii lliibbcc ppoottrrzzeebbuujjęę??
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.
22..55.. CCoo ttoo jjeesstt łłaaddoowwaallnnyy mmoodduułł??
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.
22..66.. IIllee ppoottrrzzeebbuujjęę mmiieejjssccaa nnaa ddyysskkuu??
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.
22..77.. JJaakk ddłłuuggoo zzaajjmmuujjee kkoommppiillaaccjjaa??
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.
33.. JJaakk wwłłaaśścciiwwiiee sskkoonnffiigguurroowwaaćć ttoo jjąąddrroo??
33..11.. ZZddoobbyywwaanniiee źźrróóddłłaa..
Ź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.
33..22.. RRoozzppaakkoowwyywwaanniiee źźrróóddłłaa..
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 -
33..33.. KKoonnffiigguurraaccjjaa jjąąddrraa..
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 _p_o_l_e_c_e_n_i_e "?", 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.
33..33..11.. KKeerrnneell mmaatthh eemmuullaattiioonn ((PPrroocceessssoorr ttyyppee aanndd ffeeaattuurreess))
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.
33..33..22.. EEnnhhaanncceedd ((MMFFMM//RRLLLL)) ddiisskk aanndd IIDDEE ddiisskk//ccddrroomm ssuuppppoorrtt ((BBlloocckk
DDeevviicceess))..
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.
33..33..33.. NNeettwwoorrkkiinngg ssuuppppoorrtt ((GGeenneerraall SSeettuupp))..
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.
33..33..44.. SSyysstteemm VV IIPPCC ((GGeenneerraall SSeettuupp))..
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.
33..33..55.. ((ww ssttaarrsszzyycchh wweerrssjjaacchh:: UUssee --mm448866 ffllaagg ffoorr 448866--ssppeecciiffiicc ooppttii
mmiizzaattiioonnss)) PPrroocceessssoorr ffaammiillyy ((PPrroocceessssoorr ttyyppee aanndd ffeeaattuurreess))..
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.
33..33..66.. SSCCSSII ssuuppppoorrtt..
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.
33..33..77.. NNeettwwoorrkk ddeevviiccee ssuuppppoorrtt..
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.
33..33..88.. FFiilleessyysstteemmss..
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".
33..33..88..11.. AAllee jjaa nniiee wwiieemm jjaakkiieeggoo ssyysstteemmuu pplliikkóóww ppoottrrzzeebbuujjęę!!
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 _s_e_c_o_n_d _e_x_t_e_n_d_e_d, używany jest także
_p_r_o_c i jest także zamontowana dyskietka z systemem plików msdos
(tfu!).
Możesz spróbować też cat /proc/filesystems jeśli masz system _p_r_o_c.
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.
33..33..99.. CChhaarraacctteerr ddeevviicceess..
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.
33..33..1100.. SSoouunndd..
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:
www.linux.org.uk/OSS/
www.opensound.com/
33..33..1111.. IInnnnee ooppccjjee kkoonnffiigguurraaccjjii..
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
33..33..1122.. KKeerrnneell hhaacckkiinngg..
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.
33..44.. II ccoo tteerraazz?? ((MMaakkeeffiillee))
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.
44.. KKoommppiillaaccjjaa jjąąddrraa..
44..11.. CCzzyysszzcczzeenniiee ii zzaalleeżżnnoośśccii..
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).
NNiiee zzaappoommnniijj tego kroku !!!
44..22.. KKoommppiillaaccjjaa ggłłóówwnnaa..
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.
44..33.. IInnnnee ppaarraammeettrryy ddllaa ""mmaakkee"" pprrzzyy kkoommppiilloowwaanniiuu jjąąddrraa..
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.
44..44.. IInnssttaallaaccjjaa jjąąddrraa..
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. AALLEE TTYYLLKKOO 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.
55.. ŁŁaattaanniiee jjąąddrraa ((ppaattcchhoowwaanniiee))..
55..11.. ZZaakkłłaaddaanniiee łłaattyy..
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".
55..22.. JJeeśśllii ccoośś ppóójjddzziiee nniiee ttaakk..
(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.
55..33.. PPoozzbbyywwaanniiee ssiięę pplliikkóóww ""..oorriigg""..
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 --
55..44.. IInnnnee łłaattyy..
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.
66.. PPaakkiieettyy ddooddaattkkoowwee..
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.
66..11.. kkbbdd
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 _k_b_d 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.
66..22.. uuttiill--lliinnuuxx
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, _N_i_e _i_n_s_t_a_l_u_j _t_e_g_o _z_e_s_t_a_w_u _b_e_z _z_a_s_t_a_n_o_w_i_e_n_i_a. Nie trzeba
instalować całej zawartości pakietu, mogłoby to nawet spowodować
poważne problemy.
66..33.. hhddppaarrmm
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 nniieebbeezzppiieecczznnyy. Więc nie używaj go jeśli nie wiesz co robisz.
66..44.. ggppmm
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...
77.. NNiieekkttóórree ppuułłaappkkii..
77..11.. mmaakkee cclleeaann
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.
77..22.. WWiieellkkiiee aallbboo wwoollnnee jjąąddrroo..
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.
77..33.. PPoorrtt rróówwnnoolleeggłłyy nniiee ddzziiaałłaa//mmoojjaa ddrruukkaarrkkaa nniiee ddzziiaałłaa..
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/.
77..44.. JJąąddrroo ssiięę nniiee kkoommppiilluujjee..
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/.
77..55.. NNoowwaa wweerrssjjaa jjąąddrraa nniiee cchhccee ssiięę zzaałłaaddoowwaaćć..
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ć.
77..66.. ZZaappoommnniiaałłeeśś uurruucchhoommiićć lliilloo,, aallbboo ssyysstteemm ssiięę ww ooggóóllee nniiee łłaadduujjee..
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ą ZZAAWWSSZZEE
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 NNIIEE ZZAAPPOOMMNNIIJJ 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.
77..77.. PPiisszzee mmii ""wwaarrnniinngg:: bbddfflluusshh nnoott rruunnnniinngg""..
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ć.
77..88.. NNiiee mmooggęę zzmmuussiićć mmoojjeeggoo CCDD--RROOMM--uu IIDDEE//AATTAAPPII ddoo wwssppóółłpprraaccyy..
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ć.
77..99.. PPiisszzee ccoośś oo pprrzzeessttaarrzzaałłyymm rruuttiinngguu..
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ł.
77..1100.. FFiirreewwaallll mmii nniiee ddzziiaałłaa ww wweerrssjjii 11..22..00
Weź wersję co najmniej 1.2.1.
77..1111.. ""NNoott aa ccoommpprreesssseedd kkeerrnneell IImmaaggee ffiillee""..
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.
77..1122.. PPrroobblleemmyy zz kkoonnssoolląą ppoo ooddnnoowwiieenniiuu ddoo wweerrssjjii 11..33..xx..
Zmień słowo dumb na linux w pliku /etc/termcap w sekcji dotyczącej
konsoli. Mozliwe też, że będziesz musiał zrobić terminfo.
77..1133.. NNiiee mmooggęę sskkoommppiilloowwaaćć rróóżżnnyycchh rrzzeecczzyy ppoo ooddnnoowwiieenniiuu jjąąddrraa..
Ź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
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/
77..1144.. ZZwwiięękksszzaanniiee lliimmiittóóww..
Kilka następujących _p_r_z_y_k_ł_a_d_o_w_y_c_h 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
88.. UUwwaaggaa nnaa tteemmaatt uuaakkttuuaallnniieenniiaa ddoo wweerrssjjii 22..00..xx ii 22..22..xx..
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 !
99.. MMoodduułłyy..
Ł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.
99..11.. IInnssttaallaaccjjaa nnaarrzzęęddzzii mmoodduułłoowwyycchh..
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 mmaann.
99..22.. MMoodduułłyy ddyyssttrryybbuuoowwaannee zz jjąąddrreemm..
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 mmiinniixx
to powinien on być zzaawwsszzee 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.
------------------------------------------------------------------
1100.. SSzzttuucczzkkii ii wwsskkaazzóówwkkii..
1100..11.. PPrrzzeekkiieerroowwyywwaanniiee wwyyjjśścciiaa zz ppoolleecceeńń mmaakkee ii ppaattcchh..
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
1100..22.. IInnssttaallaaccjjaa wwaarruunnkkoowwaa jjąąddrraa..
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
DDUUŻŻOO 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ś.
1100..33.. OOddnnoowwiieenniiaa jjąąddrraa..
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.
1111.. IInnnnee ddookkuummeennttyy HHOOWWTTOO,, kkttóórree mmooggąą ssiięę pprrzzyyddaaćć ttoo::
Sound-HOWTO: karty dźwiękowe i narzędzia do nich
SCSI-HOWTO: wszystko na temat kontrolerów i urządzeń SCSI
NET-3-HOWTO: wszystko o sieci
PPP-HOWTO: protokół PPP w Linux-ie
PCMCIA-HOWTO: o sterownikach do twojego Notebook-a
ELF-HOWTO: ELF: co to ELF
Hardware-HOWTO: przegląd obsługiwanego przez Linux-a sprzętu.
Module-HOWTO: więcej na temat modułów.
Kerneld mini-HOWTO: na temat kerneld.
BogoMips mini-HOWTO: w razie gdybyś chciał wiedzieć
1122.. RRóóżżnnoośśccii
1122..11.. OOdd aauuttoorraa..
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:
Pomimo, iż staram się odpowiadać na pocztę kiedy tylko mogę, to musisz
pamiętać, że dostaje dduużżoo 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.
1122..22.. CCoo jjeesstt jjeesszzcczzee ddoo zzrroobbiieenniiaa..
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.
1122..33.. OOttoo ccii,, kkttóórrzzyy ssiięę pprrzzyycczzyynniillii ddoo ppoowwssttaanniiaa tteeggoo HHOOWWTTOO..
Dołączona jest mała część README Linusa na temat opcji rozgryzania
jądra.(kernel hacking) (Dzięki Ci Linus!)
_u_c_@_b_r_i_a_n_._l_u_n_e_t_i_x_._d_e (Ulrich Callmeier): polecenia patch -s, xargs.
_q_u_i_n_l_a_n_@_y_g_g_d_r_a_s_i_l_._c_o_m (Daniel Quinlan): poprawki i dodatki do wielu
sekcji.
_n_a_t_@_n_a_t_a_a_._f_r_._e_u_._o_r_g (Nat Makarevitch): mrproper, tar -p i wiele innych
_b_o_l_d_t_@_m_a_t_h_._u_c_s_b_._e_d_u (Axel Boldt): uzbierany spis opcji
konfiguracyjnych jądra dotyczących sieci. Przesłane mi.
_l_e_m_b_a_r_k_@_w_r_k_h_o_r_s_._p_s_y_b_e_r_._c_o_m (Steve Lembark): sugestie odnośnie wyboru
jądra przy starcie.
_k_b_r_i_g_g_s_@_e_a_r_w_a_x_._p_d_._u_w_a_._e_d_u_._a_u (Keith Briggs): kilka sugestii i
poprawek.
_r_m_c_g_u_i_r_e_@_f_r_e_e_n_e_t_._c_o_l_u_m_b_u_s_._o_h_._u_s (Ryan McGuire): dodatki na temat
"make"
_d_u_m_a_s_@_e_x_c_a_l_i_b_u_r_._i_b_p_._f_r (Eric Dumas): tłumaczenie francuskie
_s_i_m_a_z_a_k_i_@_a_b_1_1_._y_a_m_a_n_a_s_h_i_._a_c_._j_p (Yasutada Shimazaki): tłumaczenie
japońskie
_j_j_a_m_o_r_@_l_m_l_._l_s_._f_i_._u_p_m_._e_s (Juan Jose Amor Iglesias): tłumaczenie
hiszpańskie
_m_v_a_@_s_b_b_s_._s_e (Martin Wahlen): tłumaczenie szwedzkie
_j_z_p_1_2_1_8_@_s_t_u_d_._u_-_s_z_e_g_e_d_._h_u (Zoltan Vamosi): tłumaczenie węgierskie
_B_._M_a_r_u_s_z_e_w_s_k_i_@_j_t_z_._o_r_g_._p_l (Bartosz Maruszewski): tłumaczenie polskie
_d_o_n_a_h_u_e_@_t_i_b_e_r_._n_i_s_t_._g_o_v (Michael J Donahue): korekta literówek, wygrał
konkurs o kromkę chleba
_r_m_s_@_g_n_u_._a_i_._m_i_t_._e_d_u (Richard Stallman): pomysł na bezpłatną
dokumentację i dystrybucję
_d_a_k_@_P_o_o_l_._I_n_f_o_r_m_a_t_i_k_._R_W_T_H_-_A_a_c_h_e_n_._D_E (David Kastrup): NFS
_e_s_r_@_s_n_a_r_k_._t_h_y_r_s_u_s_._c_o_m (Eric Raymond): różności.
Ci, którzy przysyłali mi pytania z problemami także byli pomocni.
1122..44.. PPrraawwaa aauuttoorrsskkiiee,, lliicceennccjjaa ii ttaakkiiee iinnnnee..
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.
1122..55.. OOdd ttłłuummaacczzaa..
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:
- dodatkowy sposób na załadowanie dobrego jądra
- informacja o kerneld
- a także odnośniki do polskich serwerów ftp i WWW
Wyszukiwarka
Podobne podstrony:
Kernel HOWTO pl 12 (2)
Kernel HOWTO pl 9 (2)
Kernel HOWTO pl 6 (2)
Kernel HOWTO pl 4 (2)
Kernel HOWTO pl (2)
Kernel HOWTO pl 7 (2)
Kernel HOWTO pl 5 (2)
Kernel HOWTO pl 2 (2)
Kernel HOWTO pl 11 (2)
Kernel HOWTO pl 1 (2)
Kernel HOWTO pl 10 (2)
Kernel HOWTO pl 3 (2)
Kernel HOWTO pl (3)
Kernel HOWTO pl 8 (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
kernel howto 3 clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq
cdrom howto pl 1
więcej podobnych podstron