|
/pub/Linux/sunsite/docs/HOWTO
.
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 LILO czy
loadlin służących do przekazywania tych argumentów do
jądra i do ładowania go.
WAŻNA UWAGA DLA UŻYTKOWNIKÓW MODUŁÓW: Argumenty podczas
ładowania jądra odnoszą się zwykle do sterowników sprzętowych
wkompilowanych w jądro na stałe. Nie odnoszą 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, gpg109@rsphy1.anu.edu.au
***** 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.
***********************
Dokument ten nie jest 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.
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.
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ń (Frequently Asked Questions - FAQ). 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ę pl.comp.os.linux. Przestrzegaj poprzedniego paragrafu oraz nie wysyłaj pytań do wielu grup na raz ponieważ z reguły czytają je te same osoby.
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.
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 NIE używać odstępów w argumentach, tylko pomiędzy nimi. Wartości jakie mają być przekazane mają być oddzielone przecinkami bez żadnych odstę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*
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 LILO:. 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.
Innym często używanym programem do ładowania Linux-a jest loadlin.exe. 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
.
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
.
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
.
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.
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ć.
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.
Następujące argumenty mają wpływ na to jak jądro będzie obsługiwać główny system plików:
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
.
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
.
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
.
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.
Aby pozwolić obrazowi jądra na przebywanie na dyskietce wraz ze
skompresowanym obrazem RAM-dysku dodany został argument
`ramdisk_start=<offset>'. 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.
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
.
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
.
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
.
(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
.
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.
Następujące argumenty określają jak Linux wykrywa i obsługuje pamięć fizyczną i wirtualną w twoim systemie.
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
.
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
.
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
.
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.
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=[<serwer-ip>:]<gł.sys.pl.>[,<opcje-nfs>]
Jeśli argument nfsroot
nie jest podany wtedy użyte
zostanie "/tftpboot/%s". Kolejne opcje tego argumentu
oznaczają:
<serwer-ip> - 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.
<gł.sys.pl.> - 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.
<opcje-nfs> - 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
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=<mój-ip>:<serw-ip>:<r-ip>:<netmask>:<nazwa>:<urz>:<auto>
<mój-ip> - 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 <auto>. Jeśli parametr ten nie jest pusty, ani RARP ani BOOTP nie zostanie użyty.
<serw-ip> - 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.
<r-ip> - 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.
<netmask> - 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> - Nazwa klienta. Jeśli opcja ta jest pusta, adres IP klienta używany jest w notacji znakowej lub wartość otrzymana poprzez BOOTP.
<urz> - 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ą.
<auto> - 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 <auto> 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.
Te różne argumenty startowe pozwalają użytkownikowi ustawić pewne wewnętrzne parametry jądra.
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
wszystkie 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ć.
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.
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 naprawdę starych maszyn 386, które mogą używać 80287 FPU, a Linux nie umie tego używać.
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.
Użycie tego argumentu startowego powoduje wyłączenie możliwości scrolowania, która powoduje utrudnienie użycia terminali Braille'a.
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
.
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
.
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.
Argument ten jest używany do ochrony 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
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ć.
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 Video mode selection support więc musisz włączyć tę opcję jeśli chcesz używać tej właściwości.
Sekcja ta zawiera opis argumentów startowych używanych do przekazywania informacji na temat dołączonych adapterów i urządzeń SCSI.
Sterowniki średniego poziomu obsługują takie rzeczy jak dyski, CD-ROM-y i taśmy bez wdawania się w szczegóły kontrolerów.
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.
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.
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.
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.
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.
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.
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.
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
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
.
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
.
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:<Per-Target-Spec> - kolejkowanie będzie kontrolowane indywidualnie dla każdego urządzenia docelowego. <Per-Target-Spec> - 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:<Per-Target-Spec> - sekwencja naprawy błędów będzie kontrolowana indywidualnie dla każdego urządzenia docelowego. <Per-Target-Spec> 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.".
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.
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
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]
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
.
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
.
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.
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.
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.
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
.
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
.
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.
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
Obecnie następujące karty nie przyjmują żadnych argumentów startowych. W niektórych wypadkach możesz na siłę 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)
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=".
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
naprawdę 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").
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.
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
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 powinieneś przeczytać. Wszystkie są w katalogu
linux/Documentation/cdrom
.
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.
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ć.
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.
Składnia argumentu dla tego interfejsu to:
gscd=iobase
gdzie iobase jest adresem I/O.
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.
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.
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.
Składnia argumentu dla tej karty to:
optcd=iobase
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ę.
Składania argumentu dla tej karty to:
sjcd=iobase[,irq[,dma_channel]]
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 nie interfejsu
dźwiękowego.
Wszelkie urządzenia, które nie zaliczają się do wyżej wymienionych zostały wrzucone tutaj.
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 nie 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.
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.)
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.
Ten sterownik przyjmuje tylko jeden parametr: jest to wartość IRQ.
Ten sterownik przyjmuje tylko jeden parametr: jest to wartość IRQ.
Co do jąder w wersji większej niż 1.3.75, możesz przekazać sterownikowi jakich portów używać a jakich nie 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
.
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.
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.
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.
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
.
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
.
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
.
Jeśli znalazłeś jakieś przestarzałe informacje, to napisz do autora tego dokumentu:
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:
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. #
Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:23