Jakie argumenty można przekazać do jądra podczas startu.
Autor: Paul Gortmaker, gpg109@rsphy1.anu.edu.au
v1.14, 1 Lutego 1998
WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii,, BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
v1.4, 16 Sierpnia 1998
Dokument ten jest zestawieniem wszystkich możliwych argumentów
podawanych w czasie startu systemu (Boot prompt). Dotyczy to wszyst
kich parametrów jądra jak i sterowników urządzeń. Zawarte są tutaj
także opisy jak jądro sortuje te argumenty oraz najpopularniejszego
oprogramowania służącego do startu jądra. Dokument ten został
napisany w standardzie ISO-8859-2. Wersja oryginalna tego dokumentu
znajduje się pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sun
site/docs/HOWTO.
______________________________________________________________________
Table of Contents:
1. Wprowadzenie
1.1. Disclaimer i Prawa autorskie.
1.2. Dokumenty związane z poniższym.
1.3. Grupy dyskusyjne dotyczące Linux-a.
1.4. Nowe wersje tego dokumentu.
2. Przegląd argumentów podawanych w czasie startu systemu.
2.1. LILO. (LInux LOader)
2.2. LoadLin.
2.3. Narzędzie "rdev".
2.4. Jak jądro sortuje argumenty.
2.5. Ustawianie zmiennych środowiskowych.
2.6. Przekazywanie argumentów do programu "init".
3. Ogólne argumenty nie dotyczące sterowników.
3.1. Argumenty dotyczące głównego systemu plików.
3.1.1. Argument "root=".
3.1.2. Argument "ro".
3.1.3. Argument "rw".
3.2. Argumenty dotyczące RAM-dysku.
3.2.1. Argument "ramdisk_start=".
3.2.2. Argument "load_ramdisk=".
3.2.3. Argument "prompt_ramdisk=".
3.2.4. Argument "ramdisk_size=".
3.2.5. Argument "ramdisk=".
3.2.6. Argument "noinitrd".
3.3. . Argumenty dotyczące obsługi pamięci.
3.3.1. Argument "mem=".
3.3.2. Argument "swap=".
3.3.3. Argument "buff=".
3.4. Argumenty dotyczące głównego systemu plików montowanego
poprzez NFS.
3.4.1. Argument "nfsroot=".
3.4.2. Argument "nfsaddrs=".
3.5. Inne argumenty.
3.5.1. Argument "debug".
3.5.2. Argument "init=".
3.5.3. Argument "no387".
3.5.4. Argument "no-hlt".
3.5.5. Argument "no-scroll".
3.5.6. Argument "panic=".
3.5.7. Argument "profile=".
3.5.8. Argument "reboot=".
3.5.9. Argument "reserve=".
3.5.10. Argument "vga=".
4. Argumenty startowe dla urządzeń peryferyjnych SCSI.
4.1. Argumenty dla sterowników średniego poziomu.
4.1.1. Maksymalna liczba sprawdzanych urządzeń LUN.
("max_scsi_luns=")
4.1.2. Parametry dla sterownika taśm SCSI. ("st=")
4.2. Argumenty kontrolerów SCSI.
4.2.1. Kontrolery aha151x, aha152x, aic6260, aic6360, SB16-SCSI
(`aha152x=')
4.2.2. Kontroler aha154x. ("aha1542=")
4.2.3. Kontrolery aha274x, aha284x, aic7xxx ("aic7xxx=")
4.2.4. Kontroler SCSI AdvanSys. ("advansys=")
4.2.5. Kontroler Always IN2000. ("in2000=")
4.2.6. Sprzęt na podstawie AMD AM53C974. ("AM53C974=")
4.2.7. Kontrolery SCSI BusLogic z jądrem w wersji 1.2. ("buslogic=")
4.2.8. Kontroler SCSI BusLogic z jądrem w wersji 2.x. ("BusLogic=")
4.2.9. Karty EATA SCSI. ("eata=")
4.2.10. Future Domain TMC-8xx, TMC-950. ("tmc8xx=")
4.2.11. Future Domain TMC-16xx, TMC-3260, AHA-2920. ("fdomain=")
4.2.12. Port równoległy IOMEGA / sterownik ZIP. ("ppa=")
4.2.13. Kontrolery oparte na NCR5380. ("ncr5380=")
4.2.14. Kontrolery oparte na NCR53c400. ("ncr53c400=")
4.2.15. Kontrolery oparte na NCR53c406a. ("ncr53c406a=")
4.2.16. Pro Audio Spectrum. ("pas=16")
4.2.17. Seagate ST-0x ("st0x=")
4.2.18. Trantor T128. ("t128=")
4.2.19. Karta Ultrastor SCSI. ("u14-34f=")
4.2.20. Karty Western Digital WD7000. ("wd7000=")
4.3. Kontrolery SCSI nie przyjmujące parametrów.
5. Dyski twarde.
5.1. Parametry dla dysków i CD-ROM-ów IDE.
5.2. Parametry standardowego sterownika ST-506. ("hd=")
5.3. Parametry sterownika dysku XT. ("xd=")
6. CD-ROM-y (Napędy inne niż SCSI/ATAPI/IDE).
6.1. Interfejs Aztech. ("aztcd=")
6.2. Interfejs Sony CDU-31A i CDU-33A. ("cdu31a=")
6.3. Interfejs Sony CDU-535. ("sonycd535=")
6.4. Interfejs GoldStar. ("gscd=")
6.5. Interfejs ISP16. ("isp16=")
6.6. Interfejs Mitsumi Standard. ("mcd=")
6.7. Interface Mitsumi XA/MultiSession. ("mcdx=")
6.8. Optics Storage Interface. ("optcd=")
6.9. Interfejs Philips CM206. ("cm206=")
6.10. Interfejs Sanyo. ("sjcd=")
6.11. Interfejs SoundBlaster Pro. ("sbpcd=")
7. Inne urządzenia.
7.1. Urządzenia Ethernet. ("ether=")
7.2. Sterownik do dyskietek. ("floppy=")
7.3. Sterownik do dźwięku. ("sound=")
7.4. Sterownik do myszy Bus. ("bmouse=")
7.5. Sterownik do myszy MS Bus. ("msmouse=")
7.6. Sterownik do drukarki, ("lp=")
7.7. Sterownik do ICN ISDN. ("icn=")
7.8. Sterownik do PCBIT ISDN. ("pcbit=")
7.9. Sterownik do Teles ISDN. ("teles=")
7.10. Sterownik do DigiBoard. ("digi")
7.11. Sterownik wieloportowej karty szeregowej RISCom/8.
("riscom8=")
7.12. Baycom Serial/Paralell Radio Modem. ("baycom=")
8. Zakończenie.
9. Od tłumacza.
______________________________________________________________________
11.. WWpprroowwaaddzzeenniiee
Jądro ma ograniczoną możliwość przyjmowania informacji podczas startu
w formie poleceń wydawanych z wiersza poleceń, podobnych do listy
argumentów jakie podałbyś do zwykłego programu. W ogólności stosuje
się to do przekazywania pewnych informacji do jądra na temat
przyłączonych urządzeń, których ono samo nie mogłoby wykryć, lub w
celu zmiany ustawień, tych urządzeń.
Jeśli skopiujesz jądro bezpośrednio na dyskietkę, (np. cp zImage
dev/fd0) wtedy nie masz możliwosci przekazania żadnych argumentów do
tego jądra. Dlatego większość użytkowników Linux-a używa specjalnych
programów takich jak _L_I_L_O czy _l_o_a_d_l_i_n służących do przekazywania tych
argumentów do jądra i do ładowania go.
_W_A_Ż_N_A _U_W_A_G_A _D_L_A _U_Ż_Y_T_K_O_W_N_I_K_Ó_W _M_O_D_U_Ł_Ó_W_: Argumenty podczas ładowania
jądra odnoszą się zwykle do sterowników sprzętowych wkompilowanych w
jądro na stałe. _N_i_e _o_d_n_o_s_z_ą one żadnego skutku w stosunku do
sterowników łądownych jako moduły. Większość dystrybucji używa
modułów. Jeśli nie jesteś pewien, to spójrz do man depmod i man
nmodprobe jak również do /etc/conf/modules.
Bieżąca wersja tego dokumentu dotyczy jądra do wersji 2.0.33 włącznie
oraz wersji rozwojowych do 2.1.84.
Dokument ten został pierwotnie napisany i opiekuje się nim:
Paul Gortmaker, _g_p_g_1_0_9_@_r_s_p_h_y_1_._a_n_u_._e_d_u_._a_u
***** UWAGA !!!!! *****
Argumenty jądra nie dotyczące urządzeń i portów specyficznych dla
maszyn
typu i386 (szczególnie Atari/Amiga) nie są obecnie udokumentowane.
***********************
11..11.. DDiissccllaaiimmeerr ii PPrraawwaa aauuttoorrsskkiiee..
Dokument ten _n_i_e _j_e_s_t idealny i najlepszy. Aczkolwiek jest on
przypuszczalnie najświeższym, i zawiera najświeższe dane, które
będziesz w stanie znaleźć. Nikt nie jest odpowiedzialny za to co
stanie się z twoimi urządzeniami poza tobą. Jeśli twój komputer
zacznie się palić (... co jest raczej niemożliwe!) ja nie biorę
odpowiedzialności, tzn: AUTOR NIE JEST ODPOWIEDZIALNY ZA JAKIEKOLWIEK
ZNISZCZENIA POWSTAŁE NA SKUTEK PODJĘTYCH DZIAŁAŃ NA PODSTAWIE TEGO
DOKUMENTU. (Tłumacz też nie ;)) )
Dokument ten jest chroniony prawami autorskimi (C) 1995-1998 Paula
Gortmakera.
Dokument ten może być kopiowany zgodnie z warunkami licencji GNU, v2,
która jest tu zawarta poprzez odwołanie się do niej. Więcej na temat
szczegółów znajdziesz w pliku linux/COPYING, który jest zawarty w
dystrybucji źródeł jądra.
Jeśli zamierzasz wydać ten dokument jako pracę drukowaną, skontaktuj
się z autorem, a on postara się sprawdzić czy masz najświeższe
dostępne informacje. W przeszłości publikowane były przestarzałe
dokumenty, które powodowały zasypywanie programistów pytaniami, które
zostały już rozwiązane w najnowszych dokumentach.
11..22.. DDookkuummeennttyy zzwwiiąązzaannee zz ppoonniiżżsszzyymm..
Najświeższą dokumentacją będzie zawsze wersja źródłowa jądra. Ale
poczekaj, nie uciekaj ! Nie musisz znać żadnego języka programowania,
aby czytać komentarze zawarte w źródłach. Na przykład jeśli szukasz
jakie argumenty mogą być przekazane do sterownika AHA1542 SCSI,
zajrzyj do katalogu linux/drivers/scsi i pliku aha1542.c - a w
pierwszych 100 liniach znajdziesz czysty tekst w języku angielskim
(niestety, ale nie ma fizycznej możliwosci na tłumaczenie tych
tekstów) opisujący argumenty, których szukasz.
Następnymi najlepszymi dokumentami będą te, dystrybuowane ze źródłami
jądra. Jest tam ich teraz nawet całkiem sporo, a większość z nich
znajduje się w podkatalogu Documentation i jego dalszych
podkatalogach. Źródła jądra znajdują się zwykle w katalogu
/usr/src/linux. Czasami można znaleźć pliki README.xx w odpowiednich
podkatalogach.
Jeśli już wiesz jakich parametrów chcesz używać i chcesz teraz
wiedzieć jak przekazać je do jądra to spójrz na dokumentację, która
przychodzi razem z oprogramowaniem, którego będziesz używał, aby
załadować jądro (najczęściej jest to LILO lub loadlin). Krótki
przegląd znajduje się poniżej, ale nie zastępuje on dokumentacji
dostarczanej wraz z danym oprogramowaniem.
11..33.. GGrruuppyy ddyysskkuussyyjjnnee ddoottyycczząąccee LLiinnuuxx--aa..
Jeśli masz jakieś pytania dotyczące przekazywania parametrów do jądra,
PRZECZYTAJ najpierw ten dokument. Jeśli ten i związane z nim
wymienione wcześniej dokumenty nie odpowiedzą na twoje pytania wtedy
możesz spróbować poczytać grupy dyskusyjne. Jednak zanim zaczniesz na
ślepo wysyłać listy najpierw poczytaj przez kilka dni daną grupę, bo
może akurat ktoś już zaczął ten temat, a może nawet twoje pytanie
zalicza się do często zadawanych pytań _(_F_r_e_q_u_e_n_t_l_y _A_s_k_e_d _Q_u_e_s_t_i_o_n_s _-
_F_A_Q_). Szybkie przejrzenie jakiegoś dokumentu FAQ może być dobrym
pomysłem zanim zaczniesz wysyłać pytania do grup dyskusyjnych.
Ogólne pytania jak skonfigurować swój system kieruj na grupę
_p_l_._c_o_m_p_._o_s_._l_i_n_u_x. Przestrzegaj poprzedniego paragrafu oraz nie wysyłaj
pytań do wielu grup na raz ponieważ z reguły czytają je te same osoby.
11..44.. NNoowwee wweerrssjjee tteeggoo ddookkuummeennttuu..
Nowe wersje będą się znajdować pod adresem ftp.icm.edu.pl w katalogu
/pub/Linux/sunsite/docs/HOWTO. Będą one sukcesywnie uaktualniane jak
tylko będą się pojawiać nowe sterowniki bądź informacje.
Dokument ten został stworzony przy pomocy systemu SGML, który został
przygotowany specjalnie dla projektu Linux HOWTO. Dzięki temu dostępne
są różne wersje tego dokumentu takie jak: postscript, dvi, ascii, html
a wkrótce także Texinfo.
Wszystkie te wersje są dostępne na ftp.icm.edu.pl w katalogu
/pub/Linux/sunsite/doc/HOWTO. Zalecałbym przeglądanie tego dokumentu
jako html lub postscript, gdyż jest tu wiele odwołań, których brakuje
w zwykłym tekście.
22.. PPrrzzeegglląądd aarrgguummeennttóóww ppooddaawwaannyycchh ww cczzaassiiee ssttaarrttuu ssyysstteemmuu..
Ta sekcja podaje kilka przykładów oprogramowania, które może być użyte
do przekazywania argumentów do jądra i do ładowania go. Podaje także
sposób interpretacji argumentów, jakie są na nie ograniczenia i jak są
filtrowane dla odpowiedniego urządzenia. Ważne jest aby _N_I_E używać
odstępów w argumentach, tylko pomiędzy nimi. Wartości jakie mają być
przekazane mają być oddzielone przecinkami _b_e_z _ż_a_d_n_y_c_h _o_d_s_t_ę_p_ó_w.
Spójrz na następujący przykład:
______________________________________________________________________
ether=9,0x300,0xd0000,0xd4000,eth0 root=/dev/hda1 *DOBRZE*
ether = 9, 0x300, 0xd0000, 0xd4000, eth0 root = /dev/hda1 *ŹLE*
______________________________________________________________________
22..11.. LLIILLOO.. ((LLIInnuuxx LLOOaaddeerr))
Najczęściej używanym programem służącym do ładowania Linux-a jest LILO
(LInux LOader), napisany przez Wernera Amesbergera. Ma możliwość
ładowania różnych jąder (jak i systemów) a swoją konfigurację zapisuje
w pliku tekstowym. Większość dystrybucji jest rozprowadzana z LILO
jako domyślnym programem ładującym. LILO umie załadować DOS-a, OS/2,
Linux-a, FreeBSD i wiele innych systemów bez żadnych trudności i jest
dość elastyczny. W typowej konfiguracji LILO zatrzyma się krótko po
włączeniu komputera i wyświetli _L_I_L_O_:. Przez następnych kilka sekund
będzie czekać na podanie ewentualnych argumentów a następnie zacznie
ładować domyślny system. Typowymi etykietami opisującymi systemy i
używanymi w LILO są linux, backup, linux-old, old, dos, msdos. Jeśli
chcesz wpisać jakieś argumenty, wpisujesz je zaraz po nazwie systemu
jaki chcesz załadować, tak jak w przykładzie poniżej:
______________________________________________________________________
LILO: linux root=/dev/hda1
______________________________________________________________________
Bardzo przydatne jest polecenie append= jeśli ktoś chce dodać jakiś
argument na stałe. Tak więc aby nie wpisywać go za każdym razem
wystarczy po prostu dodać linijkę append = "xxx=yyy" do plik
/etc/lilo.conf. Może być ona dodana albo na początku pliku, wtedy
będzie się odnosić do wszystkich sekcji, albo w danej sekcji image,
tak aby odnosiła się tylko do niej. Zajrzyj do dokumentacji LILO aby
dowiedzieć się więcej szczegółów.
22..22.. LLooaaddLLiinn..
Innym często używanym programem do ładowania Linux-a jest _l_o_a_d_l_i_n_._e_x_e.
Jest to DOS-owy program, który potrafi załadować jądro (wraz z
argumentami startowymi) z wiersza poleceń DOS-a zakładając, że są
dostępne pewne zasoby. Jest to dobre rozwiązanie dla tych, którzy
używają DOS-a i chcą się z niego szybko (lub niekoniecznie) przełączyć
na Linux-a.
Jest on także bardzo przydatny jeśli masz jakieś urządzenie, które aby
było przydatne do użycia musi zostać ustawione przez sterownik DOS-
owy. Dobrym przykładem mogą być tutaj karty kompatybilne z
SoundBlaster, które muszą mieć ustawione kilka rejestrów przez
sterownik DOS-owy aby ustawić je w tryb kompatybilności z
SoundBlaster. Ładowanie DOS-a wraz ze sterownikiem, a potem ładowanie
Linux-a z wiersza poleceń DOS-a programem LOADLIN.EXE zapobiega
zresetowaniu karty, co miałoby miejsce gdybyśmy zresetowali komputer,
aby uruchomić Linux-a. W ten sposób karta zostaje w trybie
kompatybilności z SoundBlaster i jest przydatna do użycia pod Linux-
em.
Są także inne programy służące do ładowania Linux-a. Aby poznać
kompletną listę takich programów zajrzyj do swojego lokalnego serwera
ftp do katalogu system/Linux-boot.
22..33.. NNaarrzzęęddzziiee ""rrddeevv""..
Jest kilka argumentów startowych, których wartości domyślne są
zapisane w różnych bajtach w samym jądrze. Jest narzędzie zwane rdev
zainstalowane na większości systemów, które wie gdzie te bajty się
znajdują i jak je zmienić. Potrafi ono także zmienić różne rzeczy,
które nie mają swoich argumentów startowych, jak na przykład domyślny
tryb wyświetlania.
Narzędzie rdev może być zwykle zastąpione przez swapdev, ramsize,
vidmode i rootflags. Jest to pięć rzeczy, które rdev potrafi zmienić:
główny system plików (katalog "/"), urządzenie swap, parametry RAM-
dysku, domyślny tryb graficzny i ustawienia głównego systemu plików
jako tylko-do-odczytu bądź w tryb odczytu-zapisu.
Więcej informacji na temat rdev można znaleźć pisząc w wierszu poleceń
rdev -h bądź w podręczniku systemowym man.
22..44.. JJaakk jjąąddrroo ssoorrttuujjee aarrgguummeennttyy..
Większość argumentów startowych ma następującą składnię:
______________________________________________________________________
nazwa=[wartość_1][,wartość_2]...[,wartość_11]
______________________________________________________________________
gdzie "nazwa" jest unikalnym słowem kluczowym identyfikującym część
jądra, do którego odnoszą się podane wartości. Większa ilość
argumentów startowych to lista powyższych wywołań oddzielonych od
siebie odstępem. Zauważ, że maksymalna ilość wartości to 11. Jądro
rzeczywiście rozpoznaje tylko 11 elementów oddzielonych przecinkami
przy danym słowie kluczowym. (Chociaż możesz użyć ponownie tego samego
słowa kluczowego z dodatkowymi 11 argumentami w jakichś niezwykle
skomplikowanych sytuacjach, zakładając, że dane funkcja ustawiająca
(patrz niżej) to dopuszcza). Zwróć uwagę na fakt, iż jądro dzieli tę
listę na maksimum 10 argumentów typu integer, i następujący po nich
łańcuch, więc tak naprawdę nie możesz podać 11 argumentów typu integer
o ile nie przerobisz sterownika tak, aby sam sobie zamienił ten 11
element na liczbę typu integer.
Wiekszość sortowania odbywa się w linux/init/main.c. Najpierw jądro
sprawdza czy argument jest jednym ze specjalnych argumentów: root=,
ro, rw, debug. Znaczenie tych parametrów jest opisane dalej w tym
dokumencie.
Następnie sprawdza listę argumentów zawartych w tablicy bootsetups czy
podany łańcuch nie został przypisany którejś z funkcji ustawiającej
konkretne urządzenie bądź część jądra. Jeśli przekazałeś do jądra
linię xxx=3,4,5,6,yyy wtedy jądro przeszukałoby tablicę bootsetups aby
zobaczyć czy xxx jest tam wymienione. Jeśli byłoby wymienione wtedy
uruchomiłoby funkcję związaną z xxx i przekazałoby jej argumenty typu
integer: 3,4,5,6 oraz ostatni łańcuch yyy.
22..55.. UUssttaawwiiaanniiee zzmmiieennnnyycchh śśrrooddoowwiisskkoowwyycchh..
Wszystko w formie "xxx=yyy", co nie jest funkcją ustawiającą opisaną
powyżej jest interpretowane jako zmienna środowiskowa, mająca być
ustawiona. (bezużytecznym?) Przykładem mogłoby być użycie TERM=vt100
jako argumentu startowego.
22..66.. PPrrzzeekkaazzyywwaanniiee aarrgguummeennttóóww ddoo pprrooggrraammuu ""iinniitt""..
Wszystkie pozostałe argumenty startowe, które nie zostały rozpoznane
jako funkcje ustawiające, czy zmienne środowiskowe są przekazywane do
procesu o numerze 1, którym zazwyczaj jest init. Najczęstszym
przekazywanym argumentem do programu init jest słowo single
oznaczające uruchomienie systemu w trybie jednego użytkownika nie
uruchamiając demonów, które zwykle są uruchamiane. Sprawdź w
podręczniku man jaką masz wersję programu "init" i jakie argumenty
możesz mu przekazać.
33.. OOggóóllnnee aarrgguummeennttyy nniiee ddoottyycczząąccee sstteerroowwnniikkóóww..
Są to argumenty nie dotyczące żadnych konkretnych sterowników czy
urządzeń peryferyjnych. Odnoszą się natomiast do wewnętrznych
parametrów jądra, takich jak: obsługa pamięci, obsługa RAM-dysku,
obsługa głównego systemu plików itd.
33..11.. AArrgguummeennttyy ddoottyycczząąccee ggłłóówwnneeggoo ssyysstteemmuu pplliikkóóww..
Następujące argumenty mają wpływ na to jak jądro będzie obsługiwać
główny system plików:
33..11..11.. AArrgguummeenntt ""rroooott==""..
Poprzez ten argument możemy przekazać do jądra które urządzenie ma być
użyte jako główny system plików. Domyślnym ustawieniem jest tutaj
urządzenie, na którym był główny system plików, podczas tworzenia
(kompilacji) jądra. Na przykład jeśli dane jądro było utworzone na
systemie, w którym główny system plików był na urządzeniu /dev/hda1
wtedy domyślnym ustawieniem będzie "/dev/hda1". Aby to zmienić i
ustawić drugą stację dyskietek jako główny system plików trzeba użyć
argumentu root= w następujący sposób:
______________________________________________________________________
root=/dev/fd1
______________________________________________________________________
Główny system plików może być zamontowany na następujących
urządzeniach:
(1) /dev/hdaN do /dev/hddN, gdzie N jest numerem partycji na dysku
pierwszym, drugim, trzecim lub czwartym kompatybilnym z ST-506.
(2) /dev/sdaN do /dev/sdeN, gdzie N jest numerem partycji na dysku
pierwszym, drugim, trzecim, czwartym lub piątym kompatybilnym z SCSI.
(3) /dev/xdaN do /dev/xdbN, gdzie N jest numerem partycji na dysku
pierwszym lub drugim kompatybilnym z XT.
(4) /dev/fdN, gdzie N jest numerem stacji dyskietek (N=0 - A:, N=1 -
B:)
(5) /dev/nfs, co raczej nie jest urządzeniem a argumentem, który mówi,
żeby zamontować główny system plików poprzez sieć.
Inna znacznie bardziej kłopotliwa i skomplikowana metoda przekazania,
na którym urządzeniu ma być główny system plików jest podanie liczby
głównej i pobocznej (np. /dev/sda3 to liczba główna - 8, liczba
poboczna - 3 a więc mógłbyś napisać root=0x803.
To jest jeden z kilku argumentów startowych, który ma zapisaną
domyślną wartość w jądrze, i który przez to może być zmieniany za
pomocą rdev.
33..11..22.. AArrgguummeenntt ""rroo""..
Kiedy jądro ładuje system, potrzebuje głównego systemu plików, aby
odczytać z niego podstawowe informacje. To jest główny system plików
montowany podczas ładowania. Chociaż, jeśli system ten jest
zamontowany z możliwoscią zapisu, nie możesz dokładnie sprawdzić jego
integralności (poprawności) jeśli akurat trwa zapis pliku. Argument ro
przekazuje do jądra informację, aby zamontować główny system plików
jako tylko-do-odczytu, tak więc jakikolwiek program sprawdzający
poprawność systemu plików może założyć, że nie ma żadnych częściowo
zapisanych plików podczas sprawdzania. Żaden program ani proces nie
może zapisać niczego do pliku dopóki system plików nie zostanie
przemontowany w tryb odczytu-zapisu (read-write).
To jest jeden z kilku argumentów startowych, który ma zapisaną
domyślną wartość w jądrze, i który przez to może być zmieniany za
pomocą rdev.
33..11..33.. AArrgguummeenntt ""rrww""..
To jest dokładną odwrotnością poprzedniego argumentu, czyli przekazuje
do jądra, aby zamontować główny system plików z możliwoscią zapisu.
Tak czy inaczej ostatecznie chcemy mieć możliwość zapisu na głównym
systemie plików. Ale pamiętaj, aby nie uruchamiać żadnych programów
testujących (typu fsck) system plików kiedy jest on zamontowany z
możliwością zapisu.
Ta sama wartość zapisana w jądrze wspomniana wyżej jest używana do
tego argumentu, dostępna przez rdev.
33..22.. AArrgguummeennttyy ddoottyycczząąccee RRAAMM--ddyysskkuu..
Następujące argumenty są związane z tym jak jądro obsługuje RAM-dysk,
który jest zwykle używany do bootstrappingu podczas instalacji lub na
maszynach ze sterownikami w postaci modułów, które muszą być
zainstalowane aby mieć dostęp do głównego systemu plików.
33..22..11.. AArrgguummeenntt ""rraammddiisskk__ssttaarrtt==""..
Aby pozwolić obrazowi jądra na przebywanie na dyskietce wraz ze
skompresowanym obrazem RAM-dysku dodany został argument
`ramdisk_start=
'. Jądro nie może być zawarte w skompresowanym
obrazie głównego systemu plików na RAM-dysku, ponieważ musi ono być
zapisane poczynając od bloku 0, tak aby BIOS mógł załadować bootsektor
i wtedy jądro może zacząć się ładować.
Uwaga: Jeśli używasz rozpakowanego obrazu RAM-dysku, wtedy jądro może
być częścią obrazu głównego systemu plików, który jest ładowany do
RAM-dysku i system może wystartować z tej dyskietki, albo obraz
głównego systemu plików i jądro mogą być dwiema oddzielnymi
dyskietkami, tak jak w przypadku skompresowanego obrazu.
Jeśli używasz dwóch dyskietek (bootdysk z jądrem i rootdysk z obraze
RAM-dysku) wtedy RAM-dysk zaczyna się od bloku 0 i jako offset w
naszym przykładzie trzeba wpisać 0. Ponieważ jest to domyślna wartość
nie musisz w tym przypadku używać tego argumentu.
33..22..22.. AArrgguummeenntt ""llooaadd__rraammddiisskk==""..
Ten argument informuje jądro czy ma ono ładować RAM-dysk czy nie.
Pisząc load_ramdisk=1 informujesz jądro, aby załadować zawartość
dyskietki do RAM-dysku. Domyślną wartością jest 0, czyli jądro nie ma
ładować zawartości dyskietki do RAM-dysku.
Dokładny opis argumentów startowych dotyczących RAM-dysku znajdziesz w
linux/Documentation/ramdiskt.txt. Jest tam także opisane w jaki sposób
można zapisać w jądrze wartość tego parametru poleceniem rdev.
33..22..33.. AArrgguummeenntt ""pprroommpptt__rraammddiisskk==""..
Ten argument informuje jądro czy wypisywać prośbę o włożenie dyskietki
z zawartością RAM-dysku czy nie. W konfiguracji z jedną dyskietką
zawartość RAM-dysku jest na tej samej dyskietce co jądro, które się
właśnie przestało ładować, a więc prośba nie jest potrzebna. W tym
wypadku można użyć prompt_ramdisk=0. W konfiguracji z dwiema
dyskietkami potrzebujesz czasu na zamianę dyskietek a więc należy użyć
prompt_ramdisk=1. Ponieważ to jest wartość domyślna nie trzeba tego
pisać.
(Uwaga historyczna: Co sprytniejsi używali opcji LILO vga=ask, aby na
chwilę przerwać start systemu i zamienić dyskietki.)
Dokładny opis argumentów startowych dotyczących RAM-dysku znajdziesz w
linux/Documentation/ramdiskt.txt. Jest tam także opisane w jaki sposób
można zapisać w jądrze wartość tego parametru poleceniem rdev.
33..22..44.. AArrgguummeenntt ""rraammddiisskk__ssiizzee==""..
Ponieważ prawdą jest, że zawartość RAM-dysku rośnie dynamicznie wraz z
coraz nowszymi wersjami systemu, jest górne ograniczenie jego
rozmiaru, tak aby nie zabrał całej pamięci RAM i nie zostawił nas na
lodzie. Domyślną wartością jest 4096 (czyli 4MB), która powinna być
wystarczająco duża dla większości potrzeb. Możesz zmienić tę wartość
zależnie od potrzeb na mniejszą lub większą przy pomocy tego
argumentu.
Dokładny opis argumentów startowych dotyczących RAM-dysku znajdziesz w
linux/Documentation/ramdiskt.txt. Jest tam także opisane w jaki sposób
można zapisać w jądrze wartość tego parametru poleceniem rdev.
33..22..55.. AArrgguummeenntt ""rraammddiisskk==""..
(UWAGA: Ten argument jest przestarzały i nie powinien być używany z
jądrami w wersji wyższej niż 1.3.47. Argumenty, których należy używać
zostały opisane powyżej.)
Argument ten określa rozmiar RAM-dysku w kB. Na przykład jeśli ktoś
chciałby mieć główny system plików na dyskietce 1.44MB załadowanej do
RAM-dysku użyłby następującego argumentu:
______________________________________________________________________
ramdisk=1440
______________________________________________________________________
To jest jeden z kilku argumentów startowych, który ma zapisaną
domyślną wartość w jądrze, i który przez to może być zmieniany za
pomocą rdev.
33..22..66.. AArrgguummeenntt ""nnooiinniittrrdd""..
Jądra w wersji 2.x i wyższej mają możliwość wykonywania /linuxrc z
zawartości RAM-dysku. Możliwość ta jest zwykle wykorzystywana, aby
umożliwić ładowanie modułów potrzebnych do zamontowania rzeczywistego
głównego systemu plików (np. załaduj sterownik SCSI zapisany w RAM-
dysku, a potem zamontuj rzeczywisty główny system plików znajdujący
się na dysku SCSI.)
Właściwy argument "noinitrd" określa co dzieje się z danymi initrd po
tym jak jądro się załadowało. Jeśli podamy ten argument dane te staną
się dostępne poprzez urządzenie specjalne /dev/initrd, które może być
czytane zanim pamięć RAM zostanie przywrócona systemowi, zamiast być
zapisanymi do RAM-dysku. Odnośnie szczegółów dotyczących używania
startowego RAM-dysku, przeczytaj linux/Documentation/initrd.txt.
Najnowsza wersja LILO oraz loadlin.exe powinna mieć także dodatkowe
informacje na ten temat.
33..33..
Następujące argumenty określają jak Linux wykrywa i obsługuje pamięć
fizyczną i wirtualną w twoim systemie.
33..33..11.. AArrgguummeenntt ""mmeemm==""..
Ten argument ma dwa przeznaczenia: Pierwotnym założeniem było
określenie ilości zainstalowanej pamięci (lub wartość mniejsza jeśli
chciałeś użyć mniej pamięci niż masz w rzeczywistości). Drugim
(prawie wcale nie używanym) przeznaczeniem jest podanie mem=nopentium
co informuje jądro, aby nie używało stron pamięci o rozmiarze 4MB.
Oryginalne odwołanie do BIOS-u w specyfikacji PC, które zwraca ilość
zainstalowanej pamięci zostało tak zaprojektowane, że było w stanie
zwrócić co najwyżej 64MB. (Tak! Następny przykład na brak patrzenia w
przyszłość, zupełnie tak samo jak w przypadku ilości cylindrów dysku
ograniczonej do 1024... eh). Linux używa tego odwołania BIOS-u podczas
startu, aby określić ilość zainstalowanej pamięci. Jeśli masz więcej
niż 64MB RAM-u, możesz użyć tego argumentu, aby poinformować jądro,
ile rzeczywiście masz pamięci RAM. Oto cytat Linusa na temat jak
używać tego argumentu:
"Jądro zaakceptuje jakikolwiek argument "mem=xx" jaki mu podasz, a
jeśli stwierdzi, że je okłamałeś, wywali się z wielkim hukiem
wcześniej czy później. Argument ten określa najwyższy dostępny adres
pamięci RAM, więc mem=0x1000000 znaczy, że masz 16MB RAM-u na
przykład. Dla maszyny z 96MB RAM-u byłoby to: mem=0x6000000.
UWAGA UWAGA UWAGA: niektóre maszyny mogą używać najwyższych adresów do
cache'owania BIOS-u czy czegoś podobnego, więc mógłbyś nie mieć
pełnych 96MB RAM-u dostępnego. I na odwrót: niektóre procesory
odwzorowują pamięć fizyczną, która jest zakryta przez BIOS tuż za
najwyższym dostępnym adresem, tak więc ten najwyższy adres mógłby być
np: 96MB + 384kB. Jeśli poinformujesz Linux-a, że ma więcej pamięci
niż w rzeczywistości, będą się dziać złe rzeczy: może nie od razu, ale
kiedyś na pewno."
Zauważ, że wartość tego argumentu nie musi być podana szesnastkowo a
przyrostki "k" i "M" (wielkość liter nie ważna) mogą być użyte do
określenia odpowiednio kilobajtów i Megabajtów. ("k" spowoduje
przesunięcie 10 bitowe podanej wartości, a "M" - 20 bitowe) Powyższe
ostrzeżenie jest wciąż ważne, ponieważ maszyna z 96MB pamięci może
działać z argumentem mem=97920k ale może nie działać z mem=98304k lub
mem=96M.
33..33..22.. AArrgguummeenntt ""sswwaapp==""..
Argument ten pozwala użytkownikowi podać kilka parametrów pamięci
wirtualnej, które są związane z pamięcią swap. Można tu podać
następujące parametry:
______________________________________________________________________
MAX_PAGE_AGE
PAGE_ADVANCE
PAGE_DECLINE
PAGE_INITIAL_AGE
AGE_CLUSTER_FRACT
AGE_CLUSTER_MIN
PAGEOUT_WEIGHT
BUFFEROUT_WEIGHT
______________________________________________________________________
Zainteresowani hackerzy proszeni są o przeczytanie linux/mm/swap.c a
także /proc/sys/vm.
33..33..33.. AArrgguummeenntt ""bbuuffff==""..
Podobnie do argumentu "swap=" ten pozwala użytkownikowi podać kilka
parametrów związanych z obsługą pamięci buforowej. Akceptuje
następujące parametry:
______________________________________________________________________
MAX_BUFF_AGE
BUFF_ADVANCE
BUFF_DECLINE
BUFF_INITIAL_AGE
BUFFEROUT_WEIGHT
BUFFERMEM_GRACE
______________________________________________________________________
Zainteresowani hackerzy proszeni są o przeczytanie linux/mm/swap.c a
także /proc/sys/vm.
33..44.. AArrgguummeennttyy ddoottyycczząąccee ggłłóówwnneeggoo ssyysstteemmuu pplliikkóóww mmoonnttoowwaanneeggoo ppoopprrzzeezz
NNFFSS..
Linux obsługuje bezdyskowe stacje robocze, które mają zamontowany
główny system plików jako NFS (Network File System). Argumenty te
używane są, aby przekazać systemowi z jakiego komputera ma sobie
zamontować główny system plików. Zauważ także, że wymagany jest w tym
przypadku argument root=/dev/nfs. Szczegóły na temat używania
głównego systemu plików zamontowanego jako NFS znajdują się w pliku
linux/Documentation/nfsroot.txt. Powinieneś go przeczytać, gdyż ten
paragraf jest tylko streszczeniem tamtego pliku.
33..44..11.. AArrgguummeenntt ""nnffssrroooott==""..
Argument ten informuje jądro jakiej maszyny użyć, jakiego katalogu na
niej i jakich opcji NFS podczas montowania głównego systemu plików.
Argument ten ma następującą postać:
______________________________________________________________________
nfsroot=[:][,]
______________________________________________________________________
Jeśli argument nfsroot nie jest podany wtedy użyte zostanie
"/tftpboot/%s". Kolejne opcje tego argumentu oznaczają:
- Określa adres IP serwera NFS. Jeśli to pole nie jest
podane, użyta zostanie wartość zmiennej nfsaddrs (patrz poniżej).
Jedną z możliwości użycia tego parametru jest na przykład pozwolenie
na użycie różnych serwerów dla RARP i NFS. Zwykle możesz zostawić ten
parametr pusty.
- Nazwa katalogu na serwerze, który ma być zamontowany
jako główny system plików. Jeśli użyty jest znak "%s", zostanie on
zamieniony na znakową reprezentację numeru IP klienta.
- Standardowe opcje NFS. Wszystkie opcje są oddzielone od
siebie przecinkami. Jeśli pole "opcje-nfs" nie jest podane, zostaną
użyte następujące wartości domyślne:
port = podany przez demona "portmap" z serwera
rsize = 1024
wsize = 1024
timeo = 7
retrans = 3
acregmin = 3
acregmax = 60
acdirmin = 30
acdirmax = 60
flags = hard, nointr, noposix, cto, ac
33..44..22.. AArrgguummeenntt ""nnffssaaddddrrss==""..
Ten argument ustawia różne adresy interfejsu sieciowego, które są
wymagane do komunikacji przez sieć. Jeśli argument ten nie jest
podany, wtedy jądro próbuje użyć protokołów RARP bądź BOOTP, aby
znaleźć te parametry. Argument ten ma następująca postać:
______________________________________________________________________
nfsaddrs=::::::
______________________________________________________________________
- Adres IP klienta. Jeśli jest on pusty, zostanie wykryty
przy pomocy RARP albo BOOTP. Jaki protokół jest używany, zależy od
tego co zostało udostępnione podczas kompilacji jądra i od parametru
. Jeśli parametr ten nie jest pusty, ani RARP ani BOOTP nie
zostanie użyty.
- Adres IP serwera NFS. Jeśli RARP został użyty do wykrycia
adresu klienta i parametr ten nie jest pusty akceptowane będą
odpowiedzi tylko z wyspecyfikowanego serwera. Aby użyć różnych
serwerów RARP i NFS, podaj swój serwer RARP tutaj (lub zostaw pusty),
a serwer NFS podaj w argumencie nfsroot (patrz wyżej). Jeśli parametr
ten jest pusty, użyty jest adres serwera, który odpowiedział na
pytanie RARP lub BOOTP.
- Adres IP rutera jeśli serwer jest w innej podsieci. Jeśli
opcja ta jest pusta żaden ruter nie jest używany i przyjmowane jest,
że serwer znajduje się w sieci lokalnej, o ile nie odebrano wartości
poprzez BOOTP.
- Maska sieci dla lokalnego interfejsu sieciowego. Jeśli
opcja ta jest pusta, maska jest wyprowadzana z numeru IP klienta, o
ile nie otrzymano wartości poprzez BOOTP.
- Nazwa klienta. Jeśli opcja ta jest pusta, adres IP klienta
używany jest w notacji znakowej lub wartość otrzymana poprzez BOOTP.
- Nazwa urządzenia sieciowego, które ma zostać użyte. Jeśli
opcja ta jest pusta, wszystkie urządzenia są używane do żądań RARP, a
pierwsze znalezione dla BOOTP. Dla NFS używane jest to urządzenie, dla
którego zostały otrzymane odpowiedzi RARP lub BOOTP. Jeśli masz tylko
jedno urządzenie możesz spokojnie zostawić tę opcję pustą.
- Metoda, która ma być użyta do autokonfiguracji. Jeśli jest to
"rarp" lub "bootp" używany jest podany protokół. Jeśli wartością jest
"both" lub opcja ta jest pusta, oba protokoły są używane jeśli tylko
są wkompilowane w jądrze. Używając "none" informujesz, aby nie używać
autokonfiguracji. W tym przypadku musisz podać wszystkie potrzebne
wartości poprzednich pól.
Parametr może pojawić się samotnie jako wartość argumentu
"nfsaddrs" (bez tych wszystkich ":" znaków przedtem) wtedy używana
jest autokonfiguracja. Aczkolwiek wartość "none" nie jest dostępna w
tym przypadku.
33..55.. IInnnnee aarrgguummeennttyy..
Te różne argumenty startowe pozwalają użytkownikowi ustawić pewne
wewnętrzne parametry jądra.
33..55..11.. AArrgguummeenntt ""ddeebbuugg""..
Jądro podaje ważne (i mniej ważne) informacje do użytkownika poprzez
funkcję printk(). Jeśli informacja jest rozpoznawana jako ważna,
funkcja printk() umieści kopię na bieżącej konsoli jak również
przekaże ją do demona klogd tak aby wiadomość ta została zapisana na
dysk. Powód, dla którego informacje te są wysyłane na konsolę jak i
zapisywane na dysk jest taki, że w pewnych nieszczęśliwych warunkach
(np: awaria dysku) informacje te mogą nie dotrzeć na dysk i zostałyby
stracone.
Próg, wg. którego informacja jest uważana za ważną lub nie ustawiany
jest przez zmienną console_loglevel. Wartością domyślną jest
zapisywanie wszystkiego ważniejszego (o mniejszym poziomie, a tym
samym większym priorytecie) niż DEBUG (poziom 7) na konsolę. (poziomy
te zdefiniowane są w pliku nagłówkowym kernel.h). Podanie argumentu
startowego debug ustawi poziom logowania na konsolę na 10, tak, że
_w_s_z_y_s_t_k_i_e informacje z jądra pojawią się na konsoli.
Poziom logowania na konsolę może zwykle być ustawiony także podczas
normalnej pracy systemu poprzez opcję programu klogd. Sprawdź w
systemie pomocy "man" jak to zrobić.
33..55..22.. AArrgguummeenntt ""iinniitt==""..
Jądro standardowo po załadowaniu się uruchamia program "init", który
następnie zajmuje się przygotowaniem systemu dla użytkownika poprzez
uruchomienie programów getty, skryptów "rc" itp. Jądro najpierw szuka
/sbin/init, następnie /etc/init a na końcu spróbuje użyć /bin/sh
(możliwie w /etc/rc). Jeśli na przykład twój program init popsuł się
i nie jest możliwy restart systemu, możesz użyć argumentu
init=/bin/sh, który spowoduje uruchomienie shell-a natychmiast po
załadowaniu jądra, umożliwiając ci zamianę popsutego programu na
dobry.
33..55..33.. AArrgguummeenntt ""nnoo338877""..
Niektóre koprocesory i387 mają błędy, które pojawiają się jeśli
używamy 32-bitowego trybu chronionego. Na przykład niektóre wczesne
procesory ULSI-387 mogą powodować poważne zawieszenia podczas używania
operacji zmiennoprzecinkowych, widocznie z powodu błędu w instrukcjach
FRSAV/FRRESTOR. Użycie argumentu startowego "no387" spowoduje
ignorowanie koprocesora przez Linux-a nawet jeśli go masz. Oczywiście
musisz mieć wkompilowaną emulację koprocesora w jądrze! Może to być
także przydatne jeśli masz jedną z tych _n_a_p_r_a_w_d_ę starych maszyn 386,
które mogą używać 80287 FPU, a Linux nie umie tego używać.
33..55..44.. AArrgguummeenntt ""nnoo--hhlltt""..
Rodzina procesorów i386 (a co za tym idzie i nowsze) mają instrukcję
"hlt", która informuje procesor, że nic się nie stanie dopóki jakieś
zewnętrzne urządzenie (klawiatura, modem, dysk, itp.) nie zażąda
jakiejś akcji. To pozwala na użycie trybu "low-power", który powoduje,
że procesor siedzi jak zombi i czeka aż coś zażąda jakiejś akcji
(zwykle poprzez przerwanie), co powoduje mniejsze zużycie prądu.
Niektóre z wczesnych procesorów i486DX-100 miały problem z tą
instrukcją, przez co nie mogły niezawodnie powrócić do trybu działania
po użyciu tej instrukcji. Używając argumentu "no-hlt" informujesz
Linux-a, aby po prostu robił sobie nieskończoną pętlę jeśli nie ma nic
mądrzejszego do roboty, a nie zatrzymywał procesora jeśli nic się nie
dzieje. To pozwala ludziom z tymi popsutymi procesorami używać Linux-
a, chociaż lepiej, żeby spróbowali wymienić ten procesor.
33..55..55.. AArrgguummeenntt ""nnoo--ssccrroollll""..
Użycie tego argumentu startowego powoduje wyłączenie możliwości
scrolowania, która powoduje utrudnienie użycia terminali Braille'a.
33..55..66.. AArrgguummeenntt ""ppaanniicc==""..
W nieprawdopodobnym przypadku paniki jądra (tj. wewnętrznego błędu,
który został wykryty przez jądro, i który jądro decyduje się uważać na
tyle poważnie, aby głośno jęknąć i wszystko zatrzymać) domyślnym
zachowaniem się jądra jest po prostu siedzieć i czekać aż ktoś
przyjdzie i zauważy informację o panice i zresetuje maszynę.
Aczkolwiek jeśli maszyna jest rzadko odwiedzana, sensowny jest
automatyczny reset. Na przykład używając "panic=30" podczas startu
informujemy jądro aby po 30 sekundach spróbowało zresetować maszynę.
Wartość 0 powoduje zachowanie domyślne.
Zauważ, że wartość ta może być także podana poprzez funkcję sysctl
wywołaną na interfejsie /proc/sys/kernel/panic.
33..55..77.. AArrgguummeenntt ""pprrooffiillee==""..
Ci, którzy chcą ingerować w wewnętrzne działanie jądra, mogą podać
argument, który pozwala na określenie jak i gdzie jądro ma spędzać
cykle procesora, aby doprowadzić do maksymalnego wykorzystania jego
możliwości. Ten argument pozwala ustawić licznik przesunięć podczas
startu. Typowo ustawiony jest on na dwa. Możesz także skompilować
jądro z domyślnie ustawioną możliwością profilowania. W każdym z tych
przypadków potrzebujesz takiego narzędzia jak readprofile.c, które
umie używać /proc/profile.
33..55..88.. AArrgguummeenntt ""rreebboooott==""..
Opcja ta kontroluje sposób w jaki Linux restartuje komputer (typowo
poprzez /sbin/init, który obsługuje kombinację klawiszy Control-Alt-
Delete). Domyślnym zachowaniem co do późnych jąder jest tzw. "zimny"
restart (tzn. pełen restart, wraz ze sprawdzaniem pamięci przez BIOS
itp.) zamiast "ciepłego" restartu (tj. niepełen restart, bez
testowania pamięci). Wartość domyślną zmieniono na "zimny" ponieważ
taki restart, w przeciwieństwie do "ciepłego", wydaje się działać na
tanim/popsutym sprzęcie. Aby przywrócić dawne zachowanie (tj. "ciepły"
restart) użyj reboot=w albo właściwie jakiekolwiek słowo zaczynające
się na w zadziała.
Po co zawracać sobie głowę? Niektóre kontrolery dysków z własną
pamięcią cache może wykrywać "ciepły" restart, i zapisywać wszystkie
dane z pamięci cache na dysk. Podczas "zimnego" restartu, karta może
zostać zrestartowana i wszystkie dane z cache'u zostaną stracone. Inni
raportowali systemy, którym sprawdzanie pamięci zabierało dużo czasu
czy dłuższy czas inicjalizacji BIOS-ów SCSI.
33..55..99.. AArrgguummeenntt ""rreesseerrvvee==""..
Argument ten jest używany do _o_c_h_r_o_n_y obszarów portów I/O przed
przeszukiwaniem.
______________________________________________________________________
reserve=iobase,extent[,iobase,extent]...
______________________________________________________________________
W niektórych maszynach może być konieczne, aby powstrzymać sterowniki
urządzeń przed automatyczną próbą wykrycią urządzenia w konkretnych
obszarach. Może to być spowodowane źle zrobionymi urządzeniami, które
powodują zawieszanie podczas startu (tak jak niektóre karty
Ethernetowe), urządzeniami błędnie rozpoznanymi, urządzeniami, których
stan został zmieniony podczas wcześniejszej próby wykrycia, albo po
prostu tym, że nie chcesz aby jakieś urządzenie zostało wykryte.
Argument startowy reserve eliminuje te problemy przez podanie obszaru
adresów I/O, który nie ma być sprawdzany. Obszar ten jest oznaczany w
tablicy rejestracyjnej portów jądra tak jakby jakieś urządzenie
zostało już w tym obszarze wykryte (słowem reserved). Zauważ, że ten
proceder nie jest konieczny na wszystkich maszynach. Tylko jeśli
występuje problem lub sytuacja wyjątkowa, wymagająca użycia tego
argumentu.
Porty I/O w podanym obszarze są chronione przed próbą automatycznego
wykrywania, która używa funkcji check_region() przed wykrywaniem na
ślepo w pewnym regionie adresów I/O. Argument ten wprowadzono, aby
używać go kiedy jakiś sterownik wisi na karcie NE2000 lub identyfikuje
jakieś inne urządzenie jako swoje. Poprawny sterownik nie powinien
przeszukiwać zarezerwowanego obszaru, o ile inny argument startowy nie
poinformuje go wyraźnie, że ma to zrobić. Wynika z tego, że argument
reserve jest najczęściej używany w konfiguracji z innymi argumentami
startowymi. Tak więc jeśli podasz jakiś obszar, aby chronić jakieś
urządzenie, musisz zwykle podać wyraźnie port tego urządzenia.
Większość sterowników ignoruje tablicę rejestracji portów jeśli mają
podany konkretny adres. Na przykład poniższa linia:
______________________________________________________________________
reserve=0x300,32 bla=0x300
______________________________________________________________________
powstrzymuje wszystkie sterowniki poza sterownikiem do urządzenia bla
przed przeszukiwaniem adresu 0x300-0x31F.
Jako zwykły argument startowy argument reserve ma limit na ilość
parametrów (11), tak więc możesz podać tylko 5 obszarów
zarezerwowanych przez każdy argument reserve. Jeśli masz powód, aby
użyć więcej argumentów reserve możesz to zrobić.
33..55..1100.. AArrgguummeenntt ""vvggaa==""..
Zauważ, że tak naprawdę to nie jest argument startowy. Jest to opcja,
która jest interpretowana przez LILO, a nie przez jądro, tak jak
wszystkie inne argumenty startowe. Jednak jej użycie stało się tak
popularne, że wymaga ona tutaj wzmianki. Można to także ustawić przy
pomocy rdev -v albo równoważnie vidmode w pliku vmlinuz.
Argument ten pozwala na zmianę trybu wyświetlania poprzez BIOS jeszcze
przed załadowaniem jądra. Typowe tryby to 80x50, 132x44 itd.
Najlepszym sposobem jest użycie tego argumentu w postaci vga=ask.
Wyświetli on wtedy listę dostępnych trybów i będzie czekał na podanie
jednego z nich. Później, jak już będziesz znał numer trybu jaki chcesz
używać możesz go wpisać zamiast słowa "ask". Jeśli chcesz wiedzieć
więcej zajrzyj do pliku linux/Documentation/svga.txt, który przychodzi
wraz ze źródłami jądra.
Zauważ, że nowsze jądra (v2.1 i nowsze) mają kod ustawiania, który
zmienia tryb video jako opcję, pokazaną jako _V_i_d_e_o _m_o_d_e _s_e_l_e_c_t_i_o_n
_s_u_p_p_o_r_t więc musisz włączyć tę opcję jeśli chcesz używać tej
właściwości.
44.. AArrgguummeennttyy ssttaarrttoowwee ddllaa uurrzząąddzzeeńń ppeerryyffeerryyjjnnyycchh SSCCSSII..
Sekcja ta zawiera opis argumentów startowych używanych do
przekazywania informacji na temat dołączonych adapterów i urządzeń
SCSI.
44..11.. AArrgguummeennttyy ddllaa sstteerroowwnniikkóóww śśrreeddnniieeggoo ppoozziioommuu..
Sterowniki średniego poziomu obsługują takie rzeczy jak dyski, CD-ROM-
y i taśmy bez wdawania się w szczegóły kontrolerów.
44..11..11.. MMaakkssyymmaallnnaa lliicczzbbaa sspprraawwddzzaannyycchh uurrzząąddzzeeńń LLUUNN..
((""mmaaxx__ssccssii__lluunnss==""))
Każde urządzenie SCSI może mieć pewną ilość "pod-urządzeń" zawartych w
nim. Najpopularniejszym przykładem może być tutaj jeden z nowych CD-
ROM-ów SCSI, który obsługuje więcej niż jeden dysk na raz. Każdy z
tych dysków jest adresowany numerem logicznej jednostki (ang. Logical
Unit Number LUN) danego urządzenia. Ale większość urządzeń takich jak
dyski twarde, taśmy to pojedyncze urządzenia a zatem ich numer
logicznej jednostki będzie wynosił 0.
Problem powstaje przy pojedynczych źle wykonanych urządzeniach LUN.
Niektóre źle zaprojektowane urządzenia SCSI (stare i niestety nowe)
zawieszają się gdy przeszukuje się je w celu znalezienia urządzenia o
numerze LUN różnym od zera, a czasami zawieszają także całą szynę
SCSI.
Nowsze jądra mają argument startowy, który pozwala ci podać maksymalny
numer urządzenia LUN, które będzie szukane. Domyślny numer szukanego
urządzenia to 0, aby zapobiec problemowi opisanemu powyżej.
Aby podać ilość poszukiwanych urządzeń LUN przy starcie, podajemy jako
argument startowy "max_scsi_luns=n", gdzie n jest liczbą pomiędzy 1 a
8. Aby zapobiec problemom opisanym wyżej podajemy n=1.
44..11..22.. PPaarraammeettrryy ddllaa sstteerroowwnniikkaa ttaaśśmm SSCCSSII.. ((""sstt==""))
Niektóre konfiguracje startowe sterownika taśm SCSI można podać w
następujący sposób:
______________________________________________________________________
st=rozm_buf[,próg_zap[,max_bufs]]
______________________________________________________________________
Pierwsze dwie liczby są podawane w kilobajtach (kB). Domyślną
wartością rozm_buf jest 32kB, a maksymalny rozmiar jaki może być
podany to śmieszne 16384kB. próg_zap to wartość, przy osiągnięciu
której zawartość bufora zapisywana jest na taśmę. Domyślną wartością
jest 30kB. Maksymalna ilość buforów różni się w zależności od ilości
wykrytych napędów i ma wartość domyślną = 2. Przykładem może być:
______________________________________________________________________
st=32,30,2
______________________________________________________________________
Szczegóły można znaleźć w pliku README.st, który znajduje się w
podkatalogu scsi źródeł jądra.
44..22.. AArrgguummeennttyy kkoonnttrroolleerróóww SSCCSSII..
Uwaga ogólna dla tej sekcji:
IOBASE - pierwszy port I/O, który jest używany przez kontroler SCSI.
Wartość ta podawana jest szesnastkowo, i zwykle mieści się w
przedziale od 0x200 do 0x3FF.
IRQ - przerwanie sprzętowe, na które jest skonfigurowana karta.
Odpowiednie wartości są zależne od konkretnej karty, ale zwykle są to
5, 7, 9, 10, 11, 12 i 15. Pozostałe wartości są zwykle używane przez
popularne urządzenia takie jak dyski twarde IDE, napędy dyskietek,
porty szeregowe itp.
dma - kanał DMA (Direct Memory Access), którego używa karta. W
zasadzie odnosi się tylko do kart bus-mastering. Karty PCI i VLB mają
domyślnie tryb bus-mastering i nie wymagają kanału ISA DMA.
SCSI-ID - identyfikator, którego używa dany kontroler do
samoidentyfikacji na szynie SCSI. Tylko niektóre kontrolery pozwalają
na zmianę tej wartości, ponieważ większość ma ją zapisaną wewnątrz
siebie. Standardową wartością jest 7, ale urządzenia Seagate i Future
Domain TMC-950 używają 6.
PARITY - czy dany kontroler spodziewa się od przyłączonych urządzeń
kontroli parzystości przy wymianie wszystkich informacji. 1 oznacza
włączenie sprawdzania parzystości, 0 je wyłącza. I znowu nie wszystkie
kontrolery pozwalają na zmianę tej wartości.
44..22..11.. KKoonnttrroolleerryy aahhaa115511xx,, aahhaa115522xx,, aaiicc66226600,, aaiicc66336600,, SSBB1166--SSCCSSII
((``aahhaa115522xx==''))
Numery aha odnoszą się do kart a numery aic do właściwego procesora
SCSI na kartach tego typu, włączając kartę SoundBlaster-16 SCSI.
Podczas przeszukiwania tej karty, jądro próbuje znaleźć zainstalowany
BIOS, a jeśli go nie ma, jądro nie znajdzie twojej karty. Wtedy musisz
użyć argumentu startowego w postaci:
______________________________________________________________________
aha152x=IOBASE[,IRQ[,SCSI-ID[,powt[,parity]]]]
______________________________________________________________________
Zauważ, że jeśli sterownik został skompilowany z włączoną opcją debug,
możliwa jest do podania także szósta wartość ustawiająca poziom
śledzenia.
Wszystkie parametry zostały opisane powyżej, a parametr powt pozwala
na odłączenie lub ponowne podłączenie urządzenia jeśli jego wartością
nie jest 0. Przykładowe użycie może być takie:
______________________________________________________________________
aha152x=0x340,11,7,1
______________________________________________________________________
Zauważ, że parametry muszą być podane w odpowiedniej kolejności; to
znaczy, że jeśli chcesz podać wartość parzystości musisz podać
najpierw IOBASE, IRQ, SCSI-ID, i POWT.
44..22..22.. KKoonnttrroolleerr aahhaa115544xx.. ((""aahhaa11554422==""))
To są karty serii aha154x. Seria kart aha1542 ma w sobie wbudowany
kontroler stacji dyskietek i82077, a aha1540 - nie ma. Są to karty
typu busmaster i mają parametry do ustawienia swojej "uczciwości",
która jest używana do dzielenia się szyną z innymi urządzeniami.
Odpowiedni argument startowy wygląda następująco:
______________________________________________________________________
aha1542=IOBASE[,buson,busoff[,dmaspeed]]
______________________________________________________________________
Możliwe wartości IOBASE to: 0x130, 0x134, 0x230, 0x234, 0x330, 0x334.
Klony oryginalnych kart mogą przyjmować inne wartości.
Wartości buson i busoff odnoszą się do liczby mikrosekund przez jaką
karta przejmuje kontrolę nad szyną ISA. Wartościami domyślnymi są:
buson - 11us, busoff - 4us, tak aby inne karty (jak np. ISA LANCE
Ethernet) miały szansę się dostać do szyny ISA.
Wartość dmaspeed odnosi się do prędkości (w MB/s), z jaką działają
transfery DMA (Direct Memory Access). Wartością domyślną jest 5 MB/s.
Nowe typy kart pozwalają na ustawienie tej wartości programowo,
starsze - poprzez zworki. Możesz podać wartość do 10 MB/s zakładając,
że twoja płyta główna to wytrzyma. Eksperymentuj ostrożnie jeśli
używasz wartości większych od 5 MB/s.
44..22..33.. KKoonnttrroolleerryy aahhaa227744xx,, aahhaa228844xx,, aaiicc77xxxxxx ((""aaiicc77xxxxxx==""))
Kontrolery te przyjmują argument w postaci:
______________________________________________________________________
aic7xxx=extended,no_reset
______________________________________________________________________
Wartość extended, jeśli jest różna od zera, określa czy tłumaczenie
geometrii dużych dysków jest włączone czy nie. Argument no_reset,
jeśli jest różny od zera, informuje sterownik, aby nie resetować szyny
SCSI podczas ustawiania kontrolera.
44..22..44.. KKoonnttrroolleerr SSCCSSII AAddvvaannSSyyss.. ((""aaddvvaannssyyss==""))
Sterownik AdvanSys przyjmuje do czterech adresów I/O, które będą
przeszukiwane w celu znalezienia karty SCSI AdvanSys. Zauważ, że
wartości te (jeśli są używane) nie wpływają w żaden sposób na
wykrywanie EISA czy PCI. Mają znaczenie tylko w przypadku kart ISA i
VLB. Dodatkowo, jeśli sterownik został skompilowany z włączoną opcją
śledzenia, poziom śledzenia może być ustawiony poprzez dodanie
parametru 0xdeb[0-F]. Znaki 0-F pozwalają na ustawienie poziomu
śledzenia na jeden z 16 poziomów.
44..22..55.. KKoonnttrroolleerr AAllwwaayyss IINN22000000.. ((""iinn22000000==""))
W przeciwieństwie do innych adapterów SCSI, ten adapter używa
przedrostków w postaci łańcuchów ASCII dla swoich wartości liczbowych.
Oto lista jego parametrów:
IOPORT:ADDR - gdzie ADDR jest adresem I/O karty (zwykle bez ROM-u).
NORESET - Nie ma dodatkowych parametrów. Zapobiega zresetowaniu szyny
SCSI podczas startu.
NOSYNC:X - X jest maską bitów, gdzie pierwsze siedem bitów odpowiada
siedmiu możliwym sterownikom SCSI (bit 0 - urządzeniu #0, itd). Ustaw
dany bit, aby zapobiec synchronicznym negocjacjom na tym urządzeniu.
Standardowo synchroniczne negocjacje są wyłączone w sterowniku dla
wszystkich urządzeń.
PERIOD:NS - NS jest minimalną ilością nanosekund w cyklu transferu
danych SCSI. Domyślną wartością jest 500; inne akceptowane wartości to
250 i 1000.
DISCONNECT:X - X=0 - nie pozwalaj na odłączenia, X=1 - rób adaptacyjne
odłączenia, X=2 - zawsze pozwalaj na odłączenia.
DEBUG:X - jeśli zdefiniowano symbol "DEBUGGING_ON" X jest maską bitów,
która ustawia różne sposoby wydruku śledzenia - odnośnie konkretnych
wartości zajrzyj do pliku /linux/drivers/scsi/in2000.h.
PROC:X - jeśli zdefiniowano symbol "PROC_INTERFACE", X jest maską
bitów, która określa jak działa interfejs /proc i co robi - odnośnie
konkretnych wartości zajrzyj do pliku /linux/drivers/scsi/in2000.h.
Oto niektóre przykładowe użycia tego argumentu:
______________________________________________________________________
in2000=ioport:0x220,noreset
in2000=period:250,disconnect:2,nosync:0x03
in2000=debug:0x1e
in2000=proc:3
______________________________________________________________________
44..22..66.. SSpprrzzęętt nnaa ppooddssttaawwiiee AAMMDD AAMM5533CC997744.. ((""AAMM5533CC997744==""))
W przeciwieństwie do innych sterowników ten nie przyjmuje parametrów
I/O, IRQ, czy DMA. (Ponieważ AM53C974 jest urządzeniem PCI, nie ma
potrzeby tego robić) W zamian za to, podawane parametry używane są do
ustawiania trybów i prędkości transferu, które mają być używane
pomiędzy adapterem a urządzeniem docelowym. Najlepiej opisać to
przykładem:
______________________________________________________________________
AM53C974=7,2,8,15
______________________________________________________________________
Linijka ta zostałaby zinterpretowana następująco: Do komunikacji
pomiędzy kontrolerem o numerze SCSI-ID 7 a urządzeniem o numerze SCSI-
ID 2 mają być użyte: transfer - 8MHz w trybie synchronicznym z
maksimum 15-bajtowym offsetem. Więcej szczegółów znajduje się w pliku
linux/drivers/scsi/README.AM53C974.
44..22..77.. KKoonnttrroolleerryy SSCCSSII BBuussLLooggiicc zz jjąąddrreemm ww wweerrssjjii 11..22.. ((""bbuussllooggiicc==""))
W starszych wersjach jądra, sterownik buslogic akceptuje tylko jeden
parametr, który jest adresem I/O. Ma to być jedna z następujących
wartości: 0x130, 0x134, 0x230, 0x234, 0x330, 0x334.
44..22..88.. KKoonnttrroolleerr SSCCSSII BBuussLLooggiicc zz jjąąddrreemm ww wweerrssjjii 22..xx.. ((""BBuussLLooggiicc==""))
W wersjach jądra 2.x, sterownik BusLogic przyjmuje wiele parametrów.
(!!! Uważaj na wielkość liter w argumencie !!!). Następujący opis jest
wzięty bezpośrednio ze sterownika Leonarda N. Zubkoffa ze źródeł jądra
2.x.
Argumentem startowym dla tego sterownika jest jego nazwa "BusLogic="
(jeszcze raz przypominam o zachowaniu wielkości liter), po której
następuje lista parametrów liczbowych oddzielonych przecinkami oraz
ewentualnie lista parametrów łańcuchowych także oddzielonych
przecinkami. Większa ilość argumentów "BusLogic=" może być użyta w
systemach z większą ilością adapterów BusLogic.
Pierwsza liczba określa adres I/O, pod którym znajduje się kontroler.
Jeśli nie jest podana, wartością domyślną jest 0, co oznacza aby
resztę wartości odnieść do pierwszego znalezionego kontrolera
BusLogic. Jeśli podane zostaną jakiekolwiek parametry adresowe I/O
wtedy standardowe przeszukiwanie nie odbywa się.
Druga liczba określa głębokość kolejki (Tagged Queue), która ma być
użyta dla urządzenia docelowego, które obsługuje kolejkowanie.
Głębokość kolejki jest ilością poleceń SCSI jaka jest możliwa do
umieszczenia w kolejce poleceń do wykonania. Jeśli parametr ten nie
jest podany, wartością domyślną jest 0, co oznacza użycie wartości
wykrytej automatycznie opartej na całkowitej głębokości kolejki
adaptera i numerze, typie, prędkości oraz możliwościach wykrytego
urządzenia docelowego. Dla kontrolerów wymagających buforów bounce
ISA, głębokość kolejki jest automatycznie ustawiana na
BusLogic_TaggedQueueDepth_B, aby uniknąć nadmiernej prealokacji
pamięci na bufory bounce DMA. Urządzenia docelowe, które nie
obsługują kolejkowania, używają głębokości kolejki
BusLogic_UntaggedQueueDepth.
Trzecia liczba określa czas stabilizacji szyny w sekundach. Jest to
ilość czasu do odczekania pomiędzy twardym resetem kontrolera, który
inicjuje reset szyny SCSI a wykonaniem polecenia SCSI. Jeśli nie jest
ona podana, wartością domyślną jest 0, co oznacza użycie
BusLogic_DefaultBusSettleTime.
Czwarta liczba określa opcje lokalne. Jeśli nie jest ona podana,
wartością domyślną jest 0. Zauważ, że opcje lokalne odnoszą się tylko
do specyficznych kontrolerów.
Piąta liczba określa opcje globalne. Jeśli nie jest ona podana,
wartością domyślna jest 0. Zauważ, że opcje globalne odnoszą się do
wszystkich kontrolerów.
Parametry łańcuchowe podaje się w celu kontrolowania kolejkowania,
naprawy błędów i wyszukiwania kontrolera.
Parametr odnośnie kolejkowania zaczyna się od "TQ:" i pozwala na
wyraźne podanie czy kolejkowanie jest dopuszczone na urządzeniu
docelowym, które je obsługuje. Następujące opcje tego parametru są
dozwolone:
TQ:Default - kolejkowanie będzie dopuszczone i oparte na firmowej
wersji kontrolera BusLogic i na tym czy wartość głębokości kolejki
pozwala na kolejkowanie poleceń.
TQ:Enable - kolejkowanie będzie dozwolone dla wszystkich urządzeń
docelowych na danym kontrolerze zamazując wszelkie limity, które
wynikałyby z ustawień firmowych.
TQ:Disable - kolejkowanie będzie niedozwolone dla wszystkich urządzeń
docelowych na danym adapterze.
TQ: - kolejkowanie będzie kontrolowane indywidualnie
dla każdego urządzenia docelowego. - ciąg znaków
"N" i "X". "Y" zezwala na kolejkowanie, "N" nie pozwala na nie, a "X"
używa wartości domyślnej opartej na wersji firmowej. Pierwszy znak
odnosi się do urządzenia 0, drugi - do urządzenia 1 itd. Jeśli ciąg
znaków "Y", "N" i "X" nie pokrywa wszystkich urządzeń docelowych, dla
urządzeń nie pokrytych używany jest znak "X" czyli wartość domyślna.
Zauważ, że wyraźne żądanie kolejkowania może prowadzić do problemów;
możliwość ta została wprowadzona, aby wyłączać kolejkowanie dla
urządzeń docelowych, które nie obsługują go poprawnie.
Parametr odnośnie naprawy błędów zaczyna się od "ER:" i pozwala na
wyraźne zezwolenie uruchamiania sekwencji naprawy błędów kiedy
wywołane zostanie polecenie ResetCommand z powodu niepowodzenia
wykonania jakiegoś polecenia SCSI. Dostępne są następujące opcje dla
tego parametru:
ER:Default - sekwencja naprawy błędów wybierze pomiędzy twardym
resetem a resetem szyny w zależności od zaleceń podsystemu SCSI.
ER:HardReset - sekwencja naprawy błędów zainicjuje twardy reset
adaptera, który także spowoduje reset szyny SCSI.
ER:BusDeviceReset - sekwencja naprawy błędów wyśle do urządzenia
docelowego powodującego błąd polecenie resetujące szynę. Jeśli
sekwencja naprawy błędów jest ponownie inicjowana dla tego urządzenia
docelowego i żadne polecenie SCSI do tego urządzenia nie wykonało się
poprawnie od momentu wysłania polecenia resetującego, wtedy zostanie
zainicjowany twardy reset.
ER:None - sekwencja naprawy błędów zostanie zatrzymana. Opcja ta
powinna być podana tylko jeśli reset szyny SCSI i reset szyny powodują
całkowite i nieodwracalne zawieszenie urządzenia docelowego.
ER: - sekwencja naprawy błędów będzie kontrolowana
indywidualnie dla każdego urządzenia docelowego.
jest ciągiem znaków "H", "B" i "N". "D" powoduje zachowanie domyślne,
"H" - twardy reset, "B" - reset szyny, "N" - zatrzymanie sekwencji
naprawy błędów. Pierwszy znak odnosi się do urządzenia 1, drugi - do
drugiego, itd. Jeśli ciąg znaków nie pokrywa wszystkich urządzeń
docelowych, wtedy dla urządzeń nie pokrytych przyjmuje się "D" czyli
zachowanie domyślne.
Parametry odnośnie przeszukiwania adaptera są następujące:
NoProbe - nie przeprowadzać żadnego przeszukiwania - żadne kontrolery
BusLogic nie zostaną znalezione.
NoProbeISA - nie przeprowadzać standardowego przeszukiwania adresów
I/O ISA - wykryte zostaną tylko kontrolery PCI.
NoSortPCI - kontrolery PCI zostaną ponumerowane wg. porządku
ustalonego przez PCI BIOS, ignorując jakiekolwiek ustawienia opcji
AutoSCSI "Use Bus and Device # For PCI Scanning Seq.".
44..22..99.. KKaarrttyy EEAATTAA SSCCSSII.. ((""eeaattaa==""))
Od późnych wersji 2.0 jądra, sterownik EATA przyjmuje argument
startowy, który specyfikuje adres bazowy I/O, który ma być
przeszukiwany. Forma tego argumentu to:
______________________________________________________________________
eata=iobase1[,iobase2][,iobase3]...[,iobaseN]
______________________________________________________________________
Sterownik będzie przeszukiwał adresy w takiej kolejności w jakiej
zostały podane.
44..22..1100.. FFuuttuurree DDoommaaiinn TTMMCC--88xxxx,, TTMMCC--995500.. ((""ttmmcc88xxxx==""))
Algorytm wyszukujący dla tych urządzeń SCSI szuka zainstalowanego
BIOS-u, a jeśli taki nie jest zainstalowany, karta nie zostanie
znaleziona. Albo jeśli sygnatura twojego BIOS-u nie zostanie
rozpoznana wtedy karta także nie zostanie znaleziona. W tych
przypadkach będziesz musiał użyć argumentu startowego w formie:
______________________________________________________________________
tmc8xx=mem_base,irq
______________________________________________________________________
Wartość mem_base określa ilość pamięci przeznaczonej na odwzorowanie
obszaru I/O używanego przez daną kartę. Zwykle jest to jedna z
poniższych wartości:
0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.n
44..22..1111.. FFuuttuurree DDoommaaiinn TTMMCC--1166xxxx,, TTMMCC--33226600,, AAHHAA--22992200.. ((""ffddoommaaiinn==""))
Sterownik wykrywa te karty na podstawie znanych sygnatur ROM BIOS-ów.
Pełną listę znanych BIOS-ów znajdziesz w pliku
linux/drivers/scsi/fdomain.c, jak i wiele innych informacji. Jeśli
twój BIOS nie jest znany, to możesz podać parametry bezpośrednio w
formie:
______________________________________________________________________
fdomain=iobase,irq[,scsi_id]
______________________________________________________________________
44..22..1122.. PPoorrtt rróówwnnoolleeggłłyy IIOOMMEEGGAA // sstteerroowwnniikk ZZIIPP.. ((""ppppaa==""))
Ten argument przeznaczony jest dla kontrolera SCSI portu równoległego
SCSI, który jest wbudowany w sterownik IOMEGA ZIP. Może także działać
z oryginalnym urządzeniem IOMEGA PPA3. Argument startowy dla tego
sterownika ma formę:
______________________________________________________________________
ppa=iobase,speed_high,speed_low,nybble
______________________________________________________________________
Wszystkie wartości oprócz IOBASE są opcjonalne. Jeśli chcesz zmieniać
którąś z tych trzech opcjonalnych wartości lepiej przeczytaj plik
linux/drivers/scsi/README.ppa.
44..22..1133.. KKoonnttrroolleerryy ooppaarrttee nnaa NNCCRR55338800.. ((""nnccrr55338800==""))
W zależności od twojej karty, 5380 może odwzorowywać albo porty I/O
albo pamięć. (Adres poniżej 0x400 zwykle oznacza odwzorowywanie
adresów I/O, ale PCI i EISA używają adresów I/O powyżej 0x3FF.) W
każdym z przypadków podajesz adres, numer IRQ i numer kanału DMA.
Przykładem dla karty z odwzorowywaniem portów I/O może być:
______________________________________________________________________
ncr5380=0x350,5,3
______________________________________________________________________
Jeśli karta nie używa IRQ, wtedy podajemy 255 (0xFF) jako numer IRQ.
Wartość 254 (0xFE) oznacza automatyczne wykrycie numeru przerwania.
Więcej szczegółów znajdziesz w pliku
linux/drivers/scsi/README.g_NCR5380.
44..22..1144.. KKoonnttrroolleerryy ooppaarrttee nnaa NNCCRR5533cc440000.. ((""nnccrr5533cc440000==""))
Kontroler ten jest obsługiwany przez ten sam sterownik co opisany
wyżej 5380. Argument startowy przyjmuje identyczne wartości za
wyjątkiem DMA, którego 53c400 nie używa.
44..22..1155.. KKoonnttrroolleerryy ooppaarrttee nnaa NNCCRR5533cc440066aa.. ((""nnccrr5533cc440066aa==""))
Argument startowy tego sterownika ma formę:
______________________________________________________________________
ncr53c406a=PORTBASE,IRQ,FASTPIO
______________________________________________________________________
gdzie IRQ i FASTPIO są parametrami opcjonalnymi. Wartość przerwania =
0, wyłącza użycie przerwania. Wartość FASTPIO = 1 włącza użycie
instrukcji insl i outsl zamiast instrukcji jedno-bajtowych inb i outb.
Sterownik może także przyjmować DMA jako opcję podczas kompilacji.
44..22..1166.. PPrroo AAuuddiioo SSppeeccttrruumm.. ((""ppaass==1166""))
PAS16 używa układu SCSI NCR5380, a nowsze modele obsługują
konfigurację bezzworkową. Argument startowy ma postać:
______________________________________________________________________
pas16=iobase,irq
______________________________________________________________________
Jedyną różnicą jest to, że możesz podać numer przerwania 255 (0xFF),
które poinformuje sterownik, żeby pracował bez używania przerwania,
aczkolwiek przy utracie jakości. IOBASE ma zwykle wartość 0x388.
44..22..1177.. SSeeaaggaattee SSTT--00xx ((""sstt00xx==""))
Algorytm wyszukiwania dla tych kontrolerów szuka zainstalowanego BIOS-
u, a jeśli takiego nie znajdzie, lub jeśli sygnatura w BIOS-ie nie
zostanie rozpoznana, karta nie zostanie zidentyfikowana. W takich
przypadkach musisz użyć argumentu startowego w formie:
______________________________________________________________________
st0x=mem_base,irq
______________________________________________________________________
Wartość mem_base określa obszar adresów I/O odwzorowywany, którego
używa karta. Jest to zwykle jedna z poniższych wartości: 0xc8000,
0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
44..22..1188.. TTrraannttoorr TT112288.. ((""tt112288==""))
Te karty są także oparte na układzie NCR5280 i akceptują następujące
parametry:
______________________________________________________________________
t128=mem_base,irq
______________________________________________________________________
Wartości dla mem_base to z reguły:
0xcc000, 0xc8000, 0xdc000, 0xd8000.
44..22..1199.. KKaarrttaa UUllttrraassttoorr SSCCSSII.. ((""uu1144--3344ff==""))
Zauważ, że zdaje się, że są dwa niezależne sterowniki dla tej karty,
tj. CONFIG_SCSI_U14_34F, który używa u14-34f.c i
CONFIG_SCSI_ULTRASTOR, który używa ultrastor.c. u14-34f jest tym (w
późnych jądrach 2.0), który przyjmuje argument startowy w formie:
______________________________________________________________________
u14-34f=iobase1[,iobase2][,iobase3]...[,iobaseN]
______________________________________________________________________
Sterownik będzie przeszukiwał adresy w podanej kolejności.
44..22..2200.. KKaarrttyy WWeesstteerrnn DDiiggiittaall WWDD77000000.. ((""wwdd77000000==""))
Sterownik dla wd7000 szuka znanego łańcucha BIOS ROM i zna kilka
standardowych ustawień konfiguracji. Jeśli ustawienia te nie są
poprawne albo masz nierozpoznaną wersję BIOS-u, możesz użyć argumentu
startowego w formie:
______________________________________________________________________
wd7000=irq,dma,iobase
______________________________________________________________________
44..33.. KKoonnttrroolleerryy SSCCSSII nniiee pprrzzyyjjmmuujjąąccee ppaarraammeettrróóww..
Obecnie następujące karty nie przyjmują żadnych argumentów startowych.
W niektórych wypadkach możesz _n_a _s_i_ł_ę zmienić wartości, edytując kod
źródłowy sterownika, jeśli już musisz.
Adaptec aha1740 (próbkowanie EISA),
NCR53c7xx,8xx (PCI, oba sterowniki),
Qlogic Fast (0x230, 0x330),
Qlogic ISP (PCI)
55.. DDyysskkii ttwwaarrddee..
Ta sekcja wymienia wszystkie argumenty startowe związane ze
standardowymi dyskami twardymi takimi jak: MFM/RLL, ST-506, XT i IDE.
Zauważ, że oba sterowniki IDE jak i ST-506 akceptują ten sam argument:
"hd=".
55..11.. PPaarraammeettrryy ddllaa ddyysskkóóww ii CCDD--RROOMM--óóww IIDDEE..
Sterownik IDE akceptuje wiele parametrów, od określenia geometrii
dysku do obsługi zaawansowanych, czy źle wykonanych układów
kontrolerów. Poniżej wymienione są wszystkie możliwe argumenty
startowe. Aby dowiedzieć się więcej na temat szczegółowego opisu
_n_a_p_r_a_w_d_ę powinienieś zajrzeć do pliku linux/Documentation/ide.txt, z
którego to streszczenie zostało wyciągnięte.
______________________________________________________________________
"hdx=" - jest rozpoznawalny przez wszystkie "x" od "a" do "h",
jak np. "hdc".
"idex=" - jest rozpoznawalny przez wszystkie "x" od "0" do "3",
jak np. "ide1".
"hdx=noprobe" - napęd może być, ale go nie szukaj,
"hdx=none" - napędu nie ma, zignoruj CMOS i nie szukaj go,
"hdx=nowerr" - zignoruj bit WRERR_STAT w tym napędzie,
"hdx=cdrom" - napęd jest obecny i jest CD-ROM-em,
"hdx=cyl,head,sect" - napęd jest obecny z podaną geometrią,
"hdx=autotune" - sterownik będzie próbował ustawić prędkość
interfejsu na najszybsze obsługiwane PIO jeśli jest to możliwe
tylko dla tego napędu. Nie jest to obsługiwane przez wszystkie
układy, i całkiem prawdopodobne, że będzie sprawiało kłopoty
przy starszych/dziwnych napędach IDE.
"idex=noprobe" - nie próbuj używać tego interfejsu,
"idex=base" - szukaj interfejsu w podanym adresie, gdzie base
to przeważnie 0x1F0 lub 0x170 a "ctl" to "base"+0x206,
"idex=base,ctl" - określenie base i ctl,
"idex=base,ctl,irq - określenie base, ctl i irq,
"idex=autotune" - sterownik będzie próbował ustawić prędkość
interfejsu na najszybsze obsługiwane PIO, dla wszystkich
napędów na tym interfejsie. Nie jest to obsługiwane przez wszystkie
układy, i całkiem prawdopodobne, że będzie sprawiało kłopoty
przy starszych/dziwnych napędach IDE,
"idex=noautotune" - sterownik nie będzie próbował ustawić
prędkości interfejsu. Jest to zachowanie standardowe
większości układów oprócz cmd640.
"idex=serialize" - nie nakładaj operacji na idex i ide(x^1).
______________________________________________________________________
Następujące parametry są ważne TYLKO dla ide0, a wartości domyślnych
dla portów base i ctl nie wolno zmieniać.
______________________________________________________________________
"ide0=dtc2278" : szukaj/obsługuj interfejs DTC2278,
"ide0=ht6560b" : szukaj/obsługuj interfejs HT6560B,
"ide0=cmd640_vlb" : *WYMAGANE* dla kart VLB z układem CMD640,
(nie dla PCI - wykrywane automatycznie)
"ide0=qd6580" : szukaj/obsługuj interfejs qd6580,
"ide0=ali14xx" : szukaj/obsługuj układy ali14xx (ALI M1439/M1445),
"ide0=umc8672" : szukaj/obsługuj układy umc8672,
______________________________________________________________________
Wszystko inne jest odrzucane z informacją "BAD OPTION" (czyli "zła
opcja").
55..22.. PPaarraammeettrryy ssttaannddaarrddoowweeggoo sstteerroowwnniikkaa SSTT--550066.. ((""hhdd==""))
Standardowy sterownik dysku może zaakceptować parametry dotyczące
geometrii dysków podobnych do sterownika IDE. Aczkolwiek zauważ, że
spodziewa się on tylko trzech wartości (C/H/S) - jedna mniej lub
więcej i po cichutku cię zignoruje. Akceptuje on tylko argument "hd=",
tak, że "hda=", "hdb=" itd. nie są brane pod uwagę. Format tego
argumentu to:
______________________________________________________________________
hd=cyls,heads,sects
______________________________________________________________________
gdzie cyls to ilość cylindrów, heads - głowic; sects - sektorów.
Jeśli są zainstalowane dwa dyski, należy powyższe powtórzyć z
geometrią dysku drugiego.
55..33.. PPaarraammeettrryy sstteerroowwnniikkaa ddyysskkuu XXTT.. ((""xxdd==""))
Jeśli jesteś na tak nieszczęśliwym miejscu i używasz jednej z tych
starych kart, które przenoszą dane z zabójczą prędkością dochodzącą w
porywach do 125kB/s WYRZUĆ JĄ NATYCHMIAT I KUP NOWĄ !!! A poważnie.
Algorytm wyszukiwania dla tych kart szuka zainstalowanego BIOS-u, a
jeśli takiego nie znajdzie, lub jeśli sygnatura w BIOS-ie nie zostanie
rozpoznana, karta nie zostanie zidentyfikowana. W takich przypadkach
musisz użyć argumentu startowego w formie:
______________________________________________________________________
xd=type,irq,iobase,dma_chan
______________________________________________________________________
Wartość type określa konkretnego wykonawcę karty, i jest jedną z:
0=generic; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI.
Jedyną różnicą pomiędzy różnymi typami tego samego wykonawcy jest
łańcuch w BIOS-ie używany do autodetekcji, który nie jest używany
jeśli jest podany typ.
Funkcja xd_setup() nie sprawdza wartości, i przyjmuje, że wpisałeś
wszystkie cztery. Nie załamuj się. Tutaj jest przykład dla kontrolera
WD1002 z wyłączonym/usuniętym BIOS-em, używającym domyślnych
parametrów kontrolera XT:
______________________________________________________________________
xd=2,5,0x320,3
______________________________________________________________________
66.. CCDD--RROOMM--yy ((NNaappęęddyy iinnnnee nniiżż SSCCSSII//AATTAAPPII//IIDDEE))..
Ta sekcja wymienia wszystkie możliwe argumenty startowe odnoszące się
do CD-ROM-ów. Zauważ, że nie zawierają się tutaj CD-ROM-y typu SCSI
czy IDE/ATAPI. Przeczytaj odpowiednią sekcję dla tych CD-ROM-ów.
Zauważ też, że większość z tych CD-ROM-ów ma pliki z dokumentacją,
które _p_o_w_i_n_i_e_n_e_ś przeczytać. Wszystkie są w katalogu
linux/Documentation/cdrom.
66..11.. IInntteerrffeejjss AAzztteecchh.. ((""aazzttccdd==""))
Składnia argumentu dla tej karty to:
______________________________________________________________________
aztcd=iobase[,magic_number]
______________________________________________________________________
Jeśli ustawisz parametr magic_number na 0x79 sterownik będzie próbował
się uruchomić i uruchomi się w przypadku nieznanego typu urządzenia
firmowego. Wszystkie inne wartości są ignorowane.
66..22.. IInntteerrffeejjss SSoonnyy CCDDUU--3311AA ii CCDDUU--3333AA.. ((""ccdduu3311aa==""))
Ten interfejs CD-ROM-u znajduje się na niektórych kartach dźwiękowych
Pro Audio Spectrum i innych kartach obsługujących interfejs Sony.
Składnia tego argumentu to:
______________________________________________________________________
cdu31a=iobase,[irq[,is_pas_card]]
______________________________________________________________________
Podając wartość IRQ = 0 informujesz sterownik, że przerwania sprzętowe
nie są obsługiwane (jak na niektórych kartach PAS). Jeśli twoja karta
obsługuje przerwania, powinieneś ich użyć ponieważ zmniejszają użycie
procesora na karcie.
Jeśli używasz karty Pro Audio Spectrum podaj parametr "is_pas_card"
jako PAS, a jeśli nie to nie powinieneś go wcale podawać.
66..33.. IInntteerrffeejjss SSoonnyy CCDDUU--553355.. ((""ssoonnyyccdd553355==""))
Składnia argumentu dla tego interfejsu to:
______________________________________________________________________
sonycd535=iobase[,irq]
______________________________________________________________________
Zero może być użyte dla wartości iobase jako "znak zajmujący miejsce"
(bez żadnego znaczenia dla sterownika) jeśli ktoś chce podać wartość
IRQ.
66..44.. IInntteerrffeejjss GGoollddSSttaarr.. ((""ggssccdd==""))
Składnia argumentu dla tego interfejsu to:
______________________________________________________________________
gscd=iobase
______________________________________________________________________
gdzie iobase jest adresem I/O.
66..55.. IInntteerrffeejjss IISSPP1166.. ((""iisspp1166==""))
Składnia argumentu dla tego interfejsu to:
______________________________________________________________________
isp16=[port[,irq[,dma]]][[,]drive_type]
______________________________________________________________________
Podając 0 dla IRQ lub DMA informujesz sterownik, że nie będą one
używane. Wartość parametru drive_type to jedna z: noisp16, Sanyo,
Panasonic, Sony i Mitsumi. Podanie wartości noisp16 wyłączy sterownik
zupełnie.
66..66.. IInntteerrffeejjss MMiittssuummii SSttaannddaarrdd.. ((""mmccdd==""))
Składnia argumentu dla tego interfejsu to:
______________________________________________________________________
mcd=iobase,[irq[,wait_value]]
______________________________________________________________________
Wartość wait_value jest używana jako wewnętrzna wartość timeout dla
tych, którzy mają problemy ze swoimi napędami i może, ale nie musi być
zaimplementowana. Zależy to od definicji odpowiedniego symbolu podczas
kompilacji.
66..77.. IInntteerrffaaccee MMiittssuummii XXAA//MMuullttiiSSeessssiioonn.. ((""mmccddxx==""))
Obecnie ten "eksperymentalny" sterownik ma funkcję ustawiającą, ale
nie przyjmuje ona jeszcze żadnych parametrów (1.3.15). (Od tłumacza:
W wersji jądra 2.0.18 także nie przyjmuje.) Odnosi się on do tego
samego sprzętu co powyżej tyle, że ma trochę rozszerzone możliwości.
66..88.. OOppttiiccss SSttoorraaggee IInntteerrffaaccee.. ((""ooppttccdd==""))
Składnia argumentu dla tej karty to:
______________________________________________________________________
optcd=iobase
______________________________________________________________________
66..99.. IInntteerrffeejjss PPhhiilliippss CCMM220066.. ((""ccmm220066==""))
Składnia argumentu dla tej karty to:
______________________________________________________________________
cm206=[iobase][,irq]
______________________________________________________________________
Sterownik zakłada, że liczby między 3 a 11 to numery przerwań IRQ, a
liczby pomiędzy 0x300 a 0x370 to porty I/O, tak więc możesz podać
jeden lub oba argumenty w jakimkolwiek porządku. Można także podać
cm206=auto, aby sterownik sam znalazł kartę.
66..1100.. IInntteerrffeejjss SSaannyyoo.. ((""ssjjccdd==""))
Składania argumentu dla tej karty to:
______________________________________________________________________
sjcd=iobase[,irq[,dma_channel]]
______________________________________________________________________
66..1111.. IInntteerrffeejjss SSoouunnddBBllaasstteerr PPrroo.. ((""ssbbppccdd==""))
Składnia argumentu dla tej karty to:
______________________________________________________________________
sbpcd=iobase,type
______________________________________________________________________
gdzie type jest jednym z łańcuchów: SounBlaster, LaserMate lub SPEA.
(Wielkość liter jest ważna !!!). I/O base jest adresem I/O interfejsu
CD-ROM-u, a _n_i_e interfejsu dźwiękowego.
77.. IInnnnee uurrzząąddzzeenniiaa..
Wszelkie urządzenia, które nie zaliczają się do wyżej wymienionych
zostały wrzucone tutaj.
77..11.. UUrrzząąddzzeenniiaa EEtthheerrnneett.. ((""eetthheerr==""))
Różne sterowniki przyjmują różne parametry, ale wszystkie przyjmują
przynajmniej nazwę, IRQ oraz adres I/O. W najbardziej ogólnej postaci
wyglądą to mniej więcej tak:
______________________________________________________________________
ether=irq,iobase[,param_1[,param_2,...param_8]]],name
______________________________________________________________________
Pierwszy argument, który nie jest liczbą uznawany jest za nazwę.
Wartości param_n zwykle mają różne znaczenie dla każdej karty czy
sterownika. Typowe wartości to adres pamięci dzielonej, określenie
interfejsu, kanały DMA itp.
Najpopularniejszym użyciem tego parametru jest wymuszenie szukania
drugiej karty Ethernet ponieważ domyślnie szuka się tylko jednej. Tak
wyglądałby przykład:
______________________________________________________________________
ether=0,0,eth1
______________________________________________________________________
Zauważ, że wartości 0 przy IRQ i adresie I/O w powyższym przykładzie
informują sterownik, aby sam ich poszukał.
WAŻNA UWAGA DLA UŻYTKOWNIKÓW MODUŁÓW: Powyższe _n_i_e wymusi poszukiwania
drugiej karty jeśli używasz sterownik-a/ów jako moduł (zamiast
wkompilować je w jądro). Większość dystrybucji Linux-owych jest
zbudowana na bazie małego statycznego jądra i dużej ilości ładowalnych
modułów. Parametr ether= odnosi się tylko do sterowników
wkompilowanych w jądro.
Zauważ też, że Ethernet-HowTo ma pełną dokumentację na temat używania
większej ilości kart i na temat parametrów dla konkretnych kart.
Zainteresowani powinni zajrzeć do tamtego dokumentu, aby dowiedzieć
się szczegółów na temat swojej karty.
77..22.. SStteerroowwnniikk ddoo ddyysskkiieetteekk.. ((""ffllooppppyy==""))
Jest wiele parametrów do tego sterownika i wszystkie są wymienione w
pliku /linux/drivers/block/README.fd. Następująca informacja została
zaczerpnięta bezpośrednio stamtąd.
______________________________________________________________________
floppy=mask,allowed_drive_mask
______________________________________________________________________
Ustawia maskę bitów dopuszczonych napędów na mask. Domyślnie są to
kanały 0 i 1 każdego kontrolera. Jest tak, ponieważ pewne
niestandardowe urządzenia (płyty główne ASUS PCI) zmieniają układ
znaków na klawiaturze kiedy próbują dostać się do kanału 2 czy 3. Ten
parametr jest trochę przestarzały z powodu opcji CMOS-u.
______________________________________________________________________
floppy=all_drives
______________________________________________________________________
Ustawia maskę bitów dopuszczonych napędów na wszystkie napędy. Użyj
tego jeśli masz więcej niż dwa napędy podłączone do kontrolera
dyskietek.
______________________________________________________________________
floppy=asus_pci
______________________________________________________________________
Ustawia maskę bitów, aby dopuścić tylko kanały 0 i 1. (Wartość
domyślna)
______________________________________________________________________
floppy=daring
______________________________________________________________________
Informuje sterownik, że masz "dobrze zachowujący się" kontroler do
dyskietek. Pozwala to na bardziej wydajną i płynniejszą pracę, ale
może się nie udać przy niektórych kontrolerach. Może to przyspieszyć
pewne operacje.
______________________________________________________________________
floppy=0,daring
______________________________________________________________________
Informuje sterownik, aby używać kontrolera ostrożnie.
______________________________________________________________________
floppy=one_fdc
______________________________________________________________________
Informuje sterownik, że masz tylko jeden kontroler. (wartość
domyślna)
______________________________________________________________________
floppy=two_fdc lub floppy=address,two_fdc
______________________________________________________________________
Informuje sterownik, że masz dwa kontrolery do dyskietek. Drugi
sterownik znajduje się pod adresem address. Jeśli adres ten nie jest
podany - przyjmuje się wartość domyślną, tj. 0x370.
______________________________________________________________________
floppy=thinkpad
______________________________________________________________________
Informuje sterownik, że masz kontroler Thinkpad, który używa
odwrotnego oznaczenia linii zmiany dyskietek.
______________________________________________________________________
floppy=0,thinkpad
______________________________________________________________________
Informuje sterownik, że nie masz kontrolera Thinkpad.
______________________________________________________________________
floppy=drive,type,cmos
______________________________________________________________________
Ustawia typ CMOS-u napędu drive na type. Dodatkowo, napęd ten jest
dopuszczony w masce bitów. Jest to przydatne jeśli masz więcej niż dwa
napędy (w fizycznym cmos-ie można opisać tylko dwa), lub jeśli twój
BIOS używa niestandardowych typów CMOS-u. Ustawienie CMOS-u na 0 dla
pierwszych dwóch napędów (domyślnie) zmusza sterownik do czytania
fizycznego CMOS-u dla tych napędów.
______________________________________________________________________
floppy=unexpected_interrupts
______________________________________________________________________
Wyświetl informację ostrzegającą jeśli odebrano niespodziewane
przerwanie. (zachowanie domyślne)
______________________________________________________________________
floppy=no_unexpected_interrupts lub floppy=L40SX
______________________________________________________________________
Nie wyświetlaj informacji ostrzegającej kiedy odebrano niespodziewane
przerwanie. Jest to potrzebne na niektórych laptopach IBM L40SX w
pewnych trybach wyświetlania. (Wygląda na to, że jest jakaś interakcja
pomiędzy grafiką a dyskietkami. Niespodziewane przerwania dotyczą
wydajności i mogą być spokojnie ignorowane.)
77..33.. SStteerroowwnniikk ddoo ddźźwwiięękkuu.. ((""ssoouunndd==""))
Sterownik dźwięku może także przyjmować parametry, które zmieniają
wartości zapisane podczas kompilacji. Nie jest to zalecane ponieważ
jest to operacja skomplikowana. Jest (Była?) ona opisana w pliku
linux/drivers/sound/Readme.Linux. Forma argumentu startowego dla
sterownika dźwięku to:
______________________________________________________________________
sound=urz1[,urz2[,urz3...[,urz11]]]
______________________________________________________________________
gdzie każda wartość urzN ma postać 0xTaaaID. Symbole oznaczają w tym
formacie:
T - typ urządzenia: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
7=SB16-MPU401,
aaa - adres I/O szesnastkowo,
I - numer IRQ szesnastkowo (tj, 10=a, 11=b, ...),
D - kanał DMA.
Jak widzisz jest tu trochę bałaganu. Także lepiej wkompiluj swoje
własne wartości w sterowniku. Podanie sound=0 spowoduje wyłączenie
sterownika dźwięku zupełnie.
77..44.. SStteerroowwnniikk ddoo mmyysszzyy BBuuss.. ((""bbmmoouussee==""))
Ten sterownik przyjmuje tylko jeden parametr: jest to wartość IRQ.
77..55.. SStteerroowwnniikk ddoo mmyysszzyy MMSS BBuuss.. ((""mmssmmoouussee==""))
Ten sterownik przyjmuje tylko jeden parametr: jest to wartość IRQ.
77..66.. SStteerroowwnniikk ddoo ddrruukkaarrkkii,, ((""llpp==""))
Co do jąder w wersji większej niż 1.3.75, możesz przekazać
sterownikowi jakich portów używać a jakich _n_i_e używać. To drugie jest
przydatne jeśli nie chcesz, żeby sterownik zajął wszystkie dostępne
porty, aby inne sterowniki (np.: PLIP, PPA) mogły ich używać.
Forma tego argumentu to pary adres_I/O,IRQ. Na przykład takie
wywołanie lp=0x3BC,0,0x378,7 spowoduje użycie portu o adresie 0x3BC w
trybie bezprzerwaniowym, i przerwania 7 dla portu o adresie 0x378.
Port o adresie 0x278 (jeśli taki by był) nie byłby przeszukiwany,
ponieważ automatyczne przeszukiwanie ma miejsce tylko jeśli nie podano
argumentu "lp". Aby wyłączyć sterownik od drukarki należy podać lp=0.
77..77.. SStteerroowwnniikk ddoo IICCNN IISSDDNN.. ((""iiccnn==""))
Argument startowy dla tego sterownika to:
______________________________________________________________________
icn=iobase,membase,icn_id1,icn_id2
______________________________________________________________________
gdzie iobase jest adresem portu I/O karty, membase jest adresem
pamięci dzielonej karty, a dwa ostatnie parametry są unikalnymi
łańcuchami identyfikującymi.
77..88.. SStteerroowwnniikk ddoo PPCCBBIITT IISSDDNN.. ((""ppccbbiitt==""))
Argument ten przyjmuje pary liczb w postaci:
______________________________________________________________________
pcbit=membase1,irq1[,membase2,irq2]
______________________________________________________________________
gdzie membaseN jest adresem pamięci dzielonej N-tej karty, a irqN jest
numerem przerwania N-tej karty. Wartościami domyślnymi są: IRQ = 5,
membase = 0xD0000.
77..99.. SStteerroowwnniikk ddoo TTeelleess IISSDDNN.. ((""tteelleess==""))
Argument dla tego sterownika ma postać:
______________________________________________________________________
teles=iobase,irq,membase,protocol,teles_id
______________________________________________________________________
gdzie iobase jest adresem portu I/O karty, membase jest adresem
pamięci dzielonej karty, irq jest kanałem przerwania używanym przez
kartę, a teles_id jest unikalnym łańcuchem identyfikującym.
77..1100.. SStteerroowwnniikk ddoo DDiiggiiBBooaarrdd.. ((""ddiiggii""))
Sterownik ten przyjmuje łańcuch sześciu oddzielonych przecinkiem
identyfikatorów lub liczb. Te sześć wartości to odpowiednio:
Włącz/wyłącz kartę. (E/D)
Typ karty: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)
Włącz/wyłącz dodatkowe ustawienie zworkami. (E/D)
Ilość portów na tej karcie.
Adresy portów I/O tej karty (szesnastkowo jeśli używasz
identyfikatorów łańcuchowych)
Podstawa okna pamięci (szesnastkowo jeśli używasz
identyfikatorów łańcuchowych).
Oto poprawny przykład użycia tego argumentu (w obu formach: z
łańcuchami i liczbami):
______________________________________________________________________
digi=E,PC/Xi,D,16,200,D0000
digi=1,0,0,16,512,851968
______________________________________________________________________
Wartościami domyślnymi są: adres I/O - 0x200, adres pamięci dzielonej
- 0xD0000. W przypadku tego sterownika nie jest dokonywane
automatyczne wyszukiwanie urządzenia. Więcej szczegółów znajdziesz w
pliku linux/Documentation/digiboard.txt.
77..1111.. SStteerroowwnniikk wwiieellooppoorrttoowweejj kkaarrttyy sszzeerreeggoowweejj RRIISSCCoomm//88.. ((""rriissccoomm88==""))
Jądro może obsłużyć do czterech kart podając cztery unikalne wartości
dla portów I/O dla każdej indywidualnej karty. Dalsze szczegóły
znajdziesz w pliku linux/Documentation/riscom8.txt.
77..1122.. BBaayyccoomm SSeerriiaall//PPaarraalleellll RRaaddiioo MMooddeemm.. ((""bbaayyccoomm==""))
Argument dla tego sterownika ma postać:
______________________________________________________________________
baycom=modem,io,irq,opcje[,modem,io,irq,opcje]
______________________________________________________________________
Podając modem=1 informujesz, że masz urządzenie ser12, modem=2 -
urządzenie par96. Opcje=0 oznacza sprzęt DCD, opcje=1 - oprogramowanie
DCD. I/O i IRQ są jak zwykle: adresem portów I/O i numerem IRQ. Więcej
szczegółów na temat tego sterownika znajdziesz w pliku
/linux/drivers/char/README.baycom.
88.. ZZaakkoońńcczzeenniiee..
Jeśli znalazłeś jakieś przestarzałe informacje, to napisz do autora
tego dokumentu:
gpg109@rsphy1.anu.edu.au
99.. 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/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 się na nią zapisać, to wyślij
list o treści subscribe jtz Imię Nazwisko na adres
majordomo@ippt.gov.pl
Zmiany wprowadzone przez tłumacza w tym dokumencie to odnośniki do
polskich serwerów ftp i WWW.
Wyszukiwarka