Ultra-DMA mini HOWTO
Ultra-DMA mini HOWTO
Autor: Brion Vibber,
brion@pobox.com
v3.0, 9 Listopada 1999
Wersja polska: Bartosz Maruszewski
B.Maruszewski@jtz.org.pl.
v1.0, 2 Marca 2001
Celem tego dokumentu jest wyjaśnienie sposobu użytkowania
dysków UltraDMA/UltraATA/Ultra33/Ultra66 w Linuksie. Najnowsza wersja
oryginału znajduje się pod adresem
http://pobox.com/~brion/linux/Ultra-DMA.html.
Dokument ten napisany został w standardzie ISO-8859-2.
1. Wprowadzenie.
Celem tego dokumentu jest wyjaśnienie sposobu użytkowania
dysków UltraDMA/UltraATA/Ultra33/Ultra66 w Linuksie. W wielu
przypadkach nie ma trudności w użytkowaniu tych urządzeń, a drobne
,,poprawki'' mogą wpłynąć pozytywnie na lepsze działanie. Z kolei w innych
przypadkach wymagane są dodatkowe działania tylko po to, żeby
dostać się do dysku.
1.1 Zastrzeżenie
Informacje zawarte w tym dokumencie są, wg. mojej wiedzy,
poprawne. Jednak mogą pojawić się literówki, jakieś tajemnicze
błędy podczas transmisji jak również dziwne niekompatybilności w
systemie, które będą powodowały niepoprawne działanie opisanych
tutaj sposbów. Tak więc... przed rozpoczęciem grzebania w konfiguracji
dysku NALEŻY ZROBIĆ KOPIĘ ZAPASOWĄ DANYCH, KTÓRYCH NIE CHCEMY
STRACIĆ. Jeśli jeszcze nie robisz tego regularnie, to dla
własnego dobra - zacznij.
1.2 Wyrazy uznania
Michel Aubry - łata
do VIA do włączania UDMA dla jądra 2.0.33 i inne; zunifikowana
łata UDMA dla 2.0.34+.
Andrew Balsa -
dostarczył ogólnych informacji na temat UDMA oraz łatę UDMA do
Intel TX, SiS i VP1 dla jądra 2.0.33 oraz zunifikowaną łatę dla
2.0.34+.
Maxime Baudin - tłumaczenie francuskie
Bokonon - ``Controller'' vs. ``interface''
John G. - łata do VIA
VP2 dla jądra 2.0.33 i różne informacje
Martin Gaitan - obejście instalacji dla Ultra33 ide0/ide1
Andre M. Hedrick -
aktualny opiekun systemu IDE w Linuksie
Hvard Tautra Knutsen - tłumaczenie norweskie
Norman Jacobowitz - nakłonił mnie do dodania informacji o VP3
John Levon - informacja o TX Pro
Peter Monta - informacja o używaniu dwóch sterowników Ultra33
Masayoshi Nakano - tłumaczenie japońskie
Gadi Oxman - łata
do Ultra33 dla jądra 2.0.34 i znalazł tajemnicze numerki do
zastosowania w obejściu
Andy Pearce - zasugerował dodanie informacji o dodatkowych
plikach urządzeń hde, hdh
Andrei Pitis - łata dla
LILO
Brion Vibber - ten
dokument
1.3 Prawa autorskie
Dokument ten można kopiować i dystrybuować w celach informacyjnych
bez ograniczeń. Nie wolno go modyfikować bez zgody autora z wyjątkiem
zmiany wyglądu. Tumaczenie tego dokumentu jest dozwolone. Jednak
zalecany jest kontakt z autorem, aby otrzymać najnowszą wersję.
2. Co to jest Ultra-DMA i dlaczego tego chcę?
Oto krótki przegląd technologii opartych na IDE:
2.1 IDE, EIDE, ATAPI
Są to starsze technologie dyskowe. Większość interfejsów nie-SCSI i
dyskowych, które można dzisiaj kupić, to EIDE chociaż wiele dużych
dysków umie obsługiwać UDMA. [Od tłumacza: ponieważ dokument
jest z XI.1999, więc warto dopowiedzieć, że w tej chwili II.2001
praktycznie wszystkie szanujące się firmy wypuszczają dyski z
obsługą UDMA (najlepiej ATA100)].
2.2 Bus Master DMA
Bus master DMA to technologia zwiększająca prędkość transferu
danych z/do dysku twardego, która wymaga obslugi przez płytę
główną i BIOS i chociaż najmniejszej obsługi ze strony dysku.
Więcej możesz się dowiedzieć pod adresem
http://developer.intel.com/design/pcisets/busmastr/FAQs.htm.
2.3 Ultra-DMA/Ultra-ATA/Ultra33/...
Ultra-DMA ma wiele nazw - tutaj będziemy je nazywać UDMA.
UDMA jest bardziej zaawwansowaną technologią, która umożliwia o
wiele większe transfery (do 33,3 MB/s w UDMA 2 i 66,7 w UDMA 4)
od dwóch do czterech razy szybciej niż EIDE i po znacznie
niższej cenie niż SCSI. Wiele nowych komputerów dostarczanych jest
z dużymi dyskami UDMA i interfejsami UDMA. Możliwe jest też dodanie
interfejsów UDMA (jak np. Promise Ultra33/66) do komputera, aby
zwiększyć transfery dysków bez obsługi UDMA.
Dużo szczegółów na temat UDMA można się dowiedzieć ze strony
http://www.quantum.com/src/whitepapers/ultraata/Należy zauważyć, że długość taśmy łączącej urządzenie z kontrolerem
UDMA musi być mniejsza od zwykłego DMA - najlepiej mniej niż 30 cm,
maksymalnie 45 cm. Jeśli chcemy mieć 66 MB/s, to wymagana jest
taśma 80-pinowa i na pewno nie dłuższa niż ww. Jeśli pojawia się
dużo błędów CRC, to należy użyć krótszej taśmy.
2.4 Właściwie to jak ,,ultra'' to jest?
Zanim zaczniemy, pozwolę sobie wyjaśnić drobne nieporozumienie. Te
transfery 33 MB/s i 66 MB/s to transfery maksymalne (burst
transfer rate) i nie doświadcza się ich zbyt często. Oto
mały wyciąg z ,,generic UDMA.txt'':
Transfery chwilowe/maksymalne (burst) powinny osiągać wartości od 16,6 MB/s (dla PIO 4 i DMA
2) do 33 MB/s dla UDMA. W swojej łacie do jądra 2.1.55 Kim-Hoe Pang
wyliczył te transfery z zależności 60 ns/słowo co daje 33 MB/s.
Jednak transfery takie dotyczą tylko danych przesyłanych z/do cache'u
(476 kB dla dysku IBM 6,4 GB) i nie są zbyt odpowiednie dla
większości użytkowników Linuksa.
Jądro Linuksa używa tyle RAMu ile się tylko da, aby cache'ować dane z
dysku. Tak więc jeśli czegoś nie ma w tej podręcznej pamięci jądra, to
jest bardzo małe prawdopodobieństwo, że będzie w o wiele mniejszym cache'u
dysku.
O wiele bardziej odpowiedni będzie sustained transfer rate,
czyli prędkość z jaką dane są transportowane z dysku do głównej
pamięci, gdzię mogą być użyte. Prostym sposobem na zmierzenie tego
transferu jest użycie polecenia hdparm - np hdparm -Tt
/dev/hda, aby zmierzyć transfer pierwszego dysku IDE.
Oto trochę danych zebranych po intesnywnym testowaniu hdparmem:
[od tłumacza: W tej chwili (II.2001) te transfery wyglądają znacznie
lepiej]
PIO tryb 4: +/- 5,2 MB/s
DMA tryb 2: +/- 7,2 MB/s
UDMA tryb2: +/- 9,8 MB/s
Jak widać, UDMA jest prawie dwa razy szybsze od EIDE i znacząco
szybsze niż zwykłe ,,bus mastering DMA''. Większość obecnych dysków
UDMA potrafi osiągnąć tranfery między 10 a 15 MB/s w UDMA 2
(33 MB/s) i UDMA 4 (66 MB/s).
2.5 Jak się ma UDMA do SCSI?
Nie mam żadnych konkretnych liczb, abym mógł je podać, ale ogólnie
dyski SCSI są szybsze od UDMA. Jednak jeśli spojrzeć na cenę, to
można zauważyć, że dyski UDMA są o wiele tańsze. Stosunek
wydajność/cena jest znacznie lepszy dla UDMA.
3. Używanie dysku UDMA z interfejsem EIDE.
To jest akurat łatwe do zrobienia. Ponieważ wszystkie dyski UDMA są
kompatybilne z EIDE, należy po prostu podpiąć dysk UDMA do interfejsu
EIDE i Linux nie powinien mieć najmniejszych problemów z wykryciem
go. Należy pamiętać, że transfery będą takie jak na zwykłym EIDE.
4. Używanie dysku UDMA z interfejsem UDMA
Mam dwie wiadomości: dobrą i złą. Dobra, to ta, że interfejs UDMA
można używać zarówno dla dysków UDMA i ,,legacy EIDE''. Będzie o
wiele szybciej niż w interfejsie EIDE.
Zła wiadomość to ta, że stare jądra (2.0.x) nie obsługują UDMA zbyt
dobrze. Nowsze jądra 2.2.x obsługują UDMA33, a do tych, które nie
obsługują, są dostępne łaty.
Dodatkowo należy zaznaczyć, że niektóre interfejsy UDMA, które są
dodawanymi kartami a nie są wbudowane w płytę główną, wymagają
jakiejś łaty lub kilku sztuczek, żeby używać ich ze starym jądrem.
Oto po co w ogóle ten dokument istnieje - aby wyjaśnić jak zdobyć
łaty i jakie to są sztuczki.
5. Interfejsy UDMA PCI nie zintegrowane z płytą główną
Istnieją interfejsy UDMA jako karty PCI, przy pomocy których można
dodać obsługę UDMA bez wymiany płyty głównej lub dodać kolejny
kontroler jeśli istniejące zostały już zapełnione. Są one także
czasami instalowane w nowych komputerach: Gateway 2000 i Dell.
Większość z nich nie jest obsługiwana przez stare jądra serii
2.0.x, ale wiele powinno być obsługiwanych przez jądra 2.2.x.
Jednak niektóre z najnowszych takich kart (np. Promise Ultra66) nie
są obsługiwane nawet przez najnowsze jądra [od tłumacza: teraz
(II.2001) jednak chyba już większość jest obsługiwana]. Jeśli
posiadasz taką kartę, to musisz zainstalować łatę na jądro albo
znaleźć nowsze z obsługą twojej karty. Jeśli musisz zainstalować
Linuksa na dysku na takim interfejsie, to trzeba będzie trochę
pokombinować.
5.1 Promise Ultra33
Jest to karta PCI z dwoma kanałami UDMA, obsługująca do 4 dysków.
Specyfikacje i ceny można znaleźć pod adresem
http://www.promise.com. Karta
ta jest we wczesnych modelach Gateway 2000 Pentium II.
Jądra 2.0.35 i nowsze oraz wszystkie 2.2.x obsługują Ultra33 i nie
powinno być problemów z zainstalowaniem dystrybucji opartej na tych
jądrach. Starsze jądra nie obsługują tego standardu i z instalacją
Linuksa starszej wersji możgą być kłopoty jeśli nie można lub
nie chce się przejść na nowsze jądro.
Instalacja Linuksa z obsługą Ultra33
Pomimo iż jest łata do interfejsu Ultra 33, to zainstalowanie jej i
kompilacja jądra nie jest prostą sprawą jeśli nigdy nie
instalowałeś Linuksa. Jest więc pewne obejście, które pozwala
zainstalować system na takim interfejsie. Podziękowania dla Gadi
Oxmana za poniższe informacje na temat ustawień interfejsu:
Jeśli jest dostęp do konsoli z dysku instalacyjnego, to można
wyświetlić ustawienia karty Promise poleceniem "cat /proc/pci":
RAID bus interface: Promise Technology Unknown device (rev 1).
Vendor id=105a. Device id=4d33.
Medium devsel. IRQ 12. Master Capable. Latency=32.
I/O at 0xe000. (a)
I/O at 0xd804. (b)
I/O at 0xd400. (c)
I/O at 0xd004. (d)
I/O at 0xc800. (e)
i przekazać do jądra parametry "ide2=a,b+2 ide3=c,d+2".
Uwaga: Liczby podane tutaj będą się różnić od Twoich. Przykładowymi
parametrami w tym przypadku będą: ``ide2=0xe000,0xd806
ide3=0xd400,0xd006''.
Jeśli używany jest tylko pierwszy kanał Ultra33 (np. jeśli jest
tylko jeden dysk czy dwa jeśli są to master i slave na jednym
kanale) wtedy nie trzeba podawać ide3.
Red Hat 5.1:Należy wystartować z dyskietki startowej i wcisnąć ENTER po
pojawieniu się zachęty. Jądro wystartuje i pojawi się zapytanie o
język, klawiaturę i metodę instalacji. Źródło instalacji nie ma
znaczenia, ważny jest kolejny krok: powinno się pojawić okienko
zatytułowane ``Select Installation Path'', wciskamy Alt-F2, aby
przejść do linii poleceń. Wpisujemy ``cat /proc/pci'', zapisujemy
liczby, które się pojawią i startujemy ponownie z dyskietki
startowej. Tym razem, gdy pojawi się zachęta wpisujemy ``linux
ide2= (tutaj te numerki spisane wcześniej jak na
przykładzie wyżej) ide3=(i kolejne numerki)''. Teraz
instalacja na dysk twardy powinna odbyć się już bez problemów,
chociaż LILO będzie pewnie miało problemy z zainstalowaniem się.
Zamiast instalować LILO trzeba zrobić dyskietkę startową i
startować z niej z parametrami jw. dopóki nie będzie można załatać
jądra i LILO.
Red Hat 5.0 i Slackware 3.4:Tutaj sytuacja jest podobna,
z małym wyjątkiem: programy instalacyjne ignorują /dev/hde-h
(dyski na ide2 i ide3). Aby zainstalować Linuksa na lub z
takiego dysku trzeba nadpisać jeden lub oba kanały z płyty głównej.
Jednak uwaga na nadpisanie kanału, z którego odbywać się będzie
instalacja. Np. jeśli instalacja odbędzie się z CD-ROMu na
/dev/hdd (ide1 - kontroler na płycie głównej) na dysk
/dev/hde (ide2 - Ultra33), trzeba nadpisać ide0
przez ide2 a zostawić ide1. Przy starcie z dyskietki
ratunkowej pojawi się zachęta w RH 5.0 natomiast Slackware
udostępnia powłokę w trybie instalacyjnym. Jednak RH 5.0 stwarza
problemy z wystartowaniem po instalacji. Jeśli takie problemy
pojawią się można sciągnąć dyskietkę startową Slackware'a z
ftp://ftp.icm.edu.pl/pub/linux/slackware/slackware-current/bootdsks.144/
i użyć tej dyskietki.
W wypadku innych dystrybucji trzeba trochę poimprowizować, ale
proces powinien być podobny.
WAŻNE: Bez łaty (omawianej w punkcie
Zunifikowane IDE) jądro potrzebuje
parametrów startowych, aby dostać się do dysku! Z tego powodu
bardzo ważnym jest podczas konfiguracji LILO (na dysku lub
dyskietce), aby podać dokładnie te same parametry jak podczas
instalacji. W przeciwnym wypadku system nie wystartuje! Można te
parametry przekazać podczas startu systemu (tak samo jak podczas
instalacji) w zachęcie LILO wciskając SHIFT i wpisując ``linux
ide2=.....'' za każdym razem. Polecam jednak czym prędzej
załatać jądro i zapomnieć o wpisywaniu tych parametrów. Z tego co
się orientuję, to nie ma sposobu przekazania parametrów do jądra
startującego z dyskietki, TRZEBA używać LILO lub innego
programu ładującego system, który pozwala na przekazywanie
parametrów.
Niełatane jądra i programy instalacyjne często mają problemy z
używaniem ide2 czy ide3 nawet jeśli napędy zostały poprawnie
wykryte. Jeśli nie można użyć tych interfejsów przy pomocy
powyższej techniki, to można spróbować podać ide0 lub ide1 zamiast
ide2 czy ide3 (podziękowania dla Martina Gaitana). To podmienia
interfejsy na płycie głównej na Promise Ultra33 i można kierować
się wskazówkami z następnego punktu tak jak po fizycznej zamianie
tych interfejsów. Jeśli do instalacji użyty zostanie CD-ROM, to należy
uważać, żeby nie podmienić interfejsu, do którego jest on podpięty,
bo instalacja będzie nie możliwa! Jeśli jest to hda lub hdb, to
dysk należy podpiąć do ide1 w przeciwnym razie (hdc, hdd) - do ide0.
Instalacja Linuksa omijająca Ultra33
Jeśli nie można zastosować takiego obejścia jw., to trzeba
spróbować czegoś innego. Oto alternatywna metoda, która gwarantuje
działanie, ale wymaga otwarcia komputera i pogrzebania w nim.
UWAGA: Jeśli nie bardzo wiesz jak podłączać i odłączać dyski,
to radzę zapoznać się z podręcznikiem, który otrzymałeś z dyskiem
czy sterownikiem! Jeśli coś pochrzanisz i nie będziesz wiedział jak
to złożyć spowrotem, to będziesz żałować!
Skoro już to napisałem, to reszta jest już prosta. Większość
płyt głównych z czasów obecnych ma wbudowane interfejsy EIDE.
Należy odłączyć dysk od Ultra33 i podłączyć go do EIDE. Jeśli są jakieś inne
urządzenia IDE, to należy albo podłączyć dysk na nie używanym
kanale, albo chwilo odłączyć urządzenie, które nie jest teraz
potrzebne. Potem: zainstaluj Linuksa, ściągnąć łatę, zainstalować ją na
jądro (następny punkt).
Teraz można już przełączyć dysk spowrotem do interfejsu Promise...
no prawie. Na wszelki wypadek należy zrobić dyskietkę startową
(cd /usr/src/linux ; make zdisk), którą będzie można użyć
do startu systemu jeśli LILO nie będzie działać. A żeby być jeszcze
bardziej pewnym można zrobić dwie i jedną odłożyć na bok.
Dobra, to teraz czas trochę pomyśleć. Jeśli
na interfejsie Promise jest tylko jeden dysk, to będzie to /dev/hde (a i
b to pierwszy kontroler IDE, c i d - drugi).
Ewentualne dodatkowo umieszczane tam napędy będą
przyjmować kolejne litery od e tak jak dyski IDE.
Teraz trzeba zmodyfikować plik /etc/fstab i podmienić
wpisy hda, hdb, ... na odpowiednie hde, hdf, .... Jeśli
zmieniona została lokalizacja (z master na slave) jakiegoś innego
urządzenia (CD-ROM, ZIP) lub jakieś wyjęte, które mają zostać
w komputerze, to także trzeba je dopisać do tego pliku.
W przypadku użycia LILO, trzeba także skonfigurować i je, aby używało
nowych plików urządzeń (omawianie konfiguracji LILO jest poza
zakresem tego dokumentu. Aby dowiedzieć się jak to się robi zajrzyj
do
LILO mini-HOWTO. W przeciwnym wypadku trzeba będzie użyć
dyskietki, która została zrobinoa wcześniej, którą i tak trzeba teraz
skonfigurować, aby widziała dysk na hde. Robi się to
poleceniem rdev. Wkładamy dyskietkę do stacji i wpisujemy ``rdev
/dev/fd0 /dev/hde1''. Oczywiście zakładam tutaj, że Twoja
główna partycja jest pierwszą na dysku pierwszym. Jeśli nie, to
użyj poprawnego numeru partycji!
Reboot. Teraz system powinien działać poprawnie.
Instalowanie łaty do Ultra33
Jądra w wersji 2.0.35 i nowsze mają wbudowaną obsługę Promise
Ultra33. Trzeba tylko ściągnąć takie jądro z
ftp.icm.edu.pl i je skompilować.
Instrukcji jak to zrobić należy szukać w
Kernel HOWTO.
Używanie dwóch kart Ultra33 w jednym komputerze
W tej chwili nie działa... Nie radzę próbować o ile oczywiście
nie masz ochoty na kompilacje jądra i kombinowanie z różnymi
konfiguracjami.
5.2 Promise Ultra66
Jest to mnie więcej to samo urządzenie co Ultra33, tyle że
obsługuje UDMA 4 66 MB/s. Niestety nie ma jeszcze obsługi w
jądrach 2.2.x
Obsługa jest zawarta w dostępnej łacie dla jąder 2.0.x i 2.2.x pod
adresem
ftp.icm.edu.pl oraz w jądrach rozwojowych 2.3.x od 2.3.3 w
górę.
Jednak zanim będzie można załatać jadro lub uaktualnić je, to
trzeba zastosować te same sztuczki co dla Promise Ultra33. Albo
można użyć dystkietki startowej
udostępnionej przez Promise.
5.3 Artop ATP850UF
Ta karta jest obsługiwana przez zunifikowany kod IDE. Instalacja
Linuksa na niej może być podobna do instalacji na Promise Ultra33.
5.4 Dodawanie plików urządzeń.
Trzeci i czwarty interfejs IDE (ide2 i ide3) używają plików
urządzeń /dev/hde* do /dev/hdh*. W przypadku starszych
jąder pliki te nie były tworzone automamtycznie i trzeba je dodać
ręcznie, aby dysk działał.
W źródłach któregoś z nowszych jąder, znajduje się skrypt
/usr/src/linux/scripts/MAKEDEV.ide, który wystarczy
uruchomić.
6. Interfejsy UDMA na płycie głównej
Używają one standardowych portów I/O IDE i są w pełni kompatybilne
z wolniejszymi transferami na niełatanym jądrze 2.0.x. Przez to nie
powinny sprawiać żadnych problemów podczas instalacji a instalacja
łaty to tylko polepszenie szybkości a nie wymagany krok. Trochę
obsługi UDMA jest w najnowszych jądrach 2.0.x a obsługa chipsetów
Intela znajduje się w jądrach 2.2.x.
6.1 Intel FX, HX, VX, TX, LX i BX
Jeszcze raz dziękuje Gadiemu za tę informację:
Obsługa <it/bus mastering DMA/ dla chipsetu TX jest w jądrach 2.0.31+
W starszych jądrach interfejs ten będzie używany w wolniejszym
trybie EIDE. W każdym razie interfejs ten zostanie automatycznie
wykryty i nie powinien sprawiać żadnych kłopotów.
Pełna obsługa UDMA 2 dla tych chipsetów jest zawarta w jądrach
2.2.x i zunifikowanej łacie IDE; zobacz
Zunifikowane IDE.
6.2 VIA VP2 i podobne chipsety
Interfejs ten także jest automatycznie wykrywany i może być używany
przez niełatane jądro. Ale skoro masz już taki interfejs, to warto
ściągnąć i zainstalować łatę, żeby mieć szybsze transfery i pozbyć
się dość denerwującego komunikatu "unkown PCI device".
Jedna łata jest dostępna pod adresem
www.ipass.net. Przeznaczona jest dla VIA VP2/97
znajdującego się na płytach głównych FIC PA-2007 i PA-2011. Ale
może też działać na podobnych chipsetach. Zgłaszano też, że łata ta
działa z VIA VP3; niekoniecznie musi być to prawdą w każdym
przypadku.
Należy zauważyć, że ta łata obsługuje tylko tryb Bus
Mastering, a nie pełną tryb UDMA, ale i tak lepsze to niż
zwykłe EIDE. Aby uruchomić tryb BMDMA należy postępować zgodnie ze
wskazówkami na stronie z łatą.
Jest jeszcze inna łata, która w pełni obsługuje UDMA -
www.pyreneesweb.com. Przeznaczona jest dla VIA VT82C586B i
powinna także działać z VP2, VP3, VPX, P6 i AGP Apollo. Aby ją
zainstalować należy postępować
zgodnie z zawartymi tam wskazówkami. Zalecane jest jednak zrobienie
kopii zapasowej najważniejszych danych ponieważ istnieje możliwość
wystąpienia problemów z niekompatybilnymi płytami głównymi. Jeśli
jednak łata zadziała, to będzie już działać bez problemów.
Chipset VP1 nie działa z tymi łatami, ale jest obsługiwany przez
łatę dla
zunifikowanego IDE.
6.3 TX Pro i inne płyty główne ,,Pro''
UDMA nie jest poprawnie obsługiwane przez te płyty. Nie są takie
same jak TX mobo i najwidoczniej źlę raportują informacje o
DMA - stąd problemy. Słyszałem, że ktoś nad tym pracuje więc pewnie
łata pojawi się w przyszłości.
6.4 HPT 366
Ten chipset jest na popularnych płytach Abit BP-6 oraz innych i
dotarcza UDMA 4 66 MB/s jako doatek do dwóch innych kanałow w trybie 2
33 MB/s. Obsługa jest poprzez
zunifikowany kod IDE, ale nie ma jej w żadnym z obecnych jąder. Tak więc
instalacja może być podobna do tej z kartą
Promise Ultra33.
[Od tłumacza: obsługa jest w jądrach 2.3.99+ oraz 2.4.x]
7. Zunifikowana łata IDE
Zunifikowana łata do IDE dostarcza obsługę wielu chipsetów i kart
rozszerzeń. Łaty takie są dostępne dla jąder, 2.0, 2.2 i 2.3. Jeśli
obecnie użytkowane jądro nie obsługuje posiadanego chipsetu, to
należy je załatać.
Łatami tymi opiekuje się
Andre Hedrick, można je ściągnąć z
najbliższej kopii serwera ftp.kernel.org.
UDMA jest obsługiwane w poniższych chipsetach i prawdopodobnie w
wielu innych, których nie znam:
Wszystkie chipsety Intela: FX, HX, VX, TX, LX
Wszystkie chipsety SiS (przetestowany tylko SiS5598, ale cała
rodzina tych chipsetów ma ten sam wbudowany interfejs 5513)
Chipsety VIA (przetestowany tylko 82C586B, ale tak jak wyżej
cała rodzina chipsetów ma ten sam interfejs). W interfejsach na VIA
obsługiwana jest specjalna diagnostyka
Promise i Artop PCI UDMA.
Aladdin V (ALi15x3)
HPT343 i HPT366 (zobacz
Abit BP-6)
Kod jest napisany tak, aby było go łatwo rozszerzyć o obsługę
kolejnego chipsetu.
Oto kilka uwag od Andre Balsa'y, autora wcześniejszej łaty:
Na dobrej płycie głównej z dyskiem IBM UDMA można osiągnąć prawie
maksymalny transfer: 10 Mb/s (zmierzone 'hdparm -t -T').
Chipset Intela TX ma pojedynczą kolejkę FIFO dla dysków i jest ona
dzielona przez dwa interfejsy IDE, tak więc używanie dwóch dysków UDMA
spowolni ich działanie.
Jednak, SiS5598 ma dwa oddzielne interfejsy, każdy z własną kolejką
FIFO. Teoretycznie można się zbliżyć do 66 Mb/s na płytach głównych
z chipem SiS5598 używając software'owego RAID0. SiS5571 ma chyba tę
samą strukturę interfejsu. Nie mam żadnych danych na temat VIA, więc
nie mogę nic na ten temat powiedzieć.
Sterownik IDE (U)DMA napisany przez Marka Lorda ma szczególnie krótki
czas konfiguracji (a stąd opóżnienia w transferach). Jest on idealny
do częstych transferów
małych paczek danych (takich jak serwery news) i może być lepszy od
technologii SCSI.
8. Włączanie i wyłączanie UDMA
Jądro z wkompilowaną obsługą UDMA włączy je automatycznie jeśli
wykryje napęd UDMA. W większości przypadków, kiedy obsługa taka się
nie włączy to albo jądro nie umie obsłużyć chipsetu (zdobądź łatę,
patrz wyżej) albo włączenie obsługi nie
jest uważane za bezpieczne.
Jednak czasami napęd umie obsługiwać UDMA, ale BIOS tego nie
podaje. W takich przypadkach należy włączyć obsługę ręcznie.
8.1 Parametry jądra podczas startu
W jądrach 2.1.113+ można włączyć obsługę DMA dla obu napędów
na podanym interfejsie IDE przy pomocy parametru jądra
ideX=dma, gdzie X jest numerem interfejsu (pierwszy to '0').
Jednak podanie tego parametru wcale nie musi uaktywnić UDMA.
Parametry do jądra można przekazać przez LILO, LOADLINa czy
większości popularnych programów ładujących system. Więcej
informacji można znaleźć w
Bootdisk HOWTO.
8.2 Używanie hdparm
Jest to program służący do ustawiania różnych parametrów dysku
twardego. Jedną z możliwości jest włączenie obsługi UDMA i pomiar
szybkości stałego przesyłu danych.
Bieżąca wersja hdparmu to 3.6 (w czasie pisania) [Od
tłumacza: w tej chwili jest wersja 3.9]]. Starsze,
niełatane wersje nie będą poprawnie raportowały ani ustawiały
parametrów związanych z UDMA, tak więc należy zdobyć aktualną
wersję. Źródło znajduje się pod adresem
ftp.icm.edu.pl.
Program po ściągnięciu należy skompilować mniej więcej tak:
tar zxvf /tmp/download/hdparm-3.6.tar.gz
cd hdparm-3.5
make
su root
(podaj hasło)
make install
cp /usr/local/sbin/hdparm /sbin/hdparm
exit
Aby włączyć DMA: hdparm -d1 /dev/hda
Aby wyłączyć DMA: hdparm -d0 /dev/hda
Aby zmierzyć szybkość dysku: hdparm -Tt /dev/hda
Aby zobaczyć jakie są ustawienia dysku: hdparm /dev/hda
Aby zobaczyć więcej danych dot. dysku niż kiedykolwiek
chciałeś: (np. które tryby UDMA są włączone) hdparm -i /dev/hda
Więcej informacji (np. jakich trybów UDMA użyć) można
znaleźć w stronie podręcznika systemowego (``man 8 hdparm'').
9. Problemy
9.1 ,,Czarna Lista'' UDMA
Napędy wymienione poniżej znajdują się na liście nie działających.
Nie wolno ich używać w trybie UDMA ponieważ może to
spowodować utratę danych. Aby tego uniknąć sterownik powinien
automatycznie wyłączyć obsługę DMA dla tych napędów.
Western Digital WDC AC11000H, AC22100H, AC32500H, AC33100H,
AC31600H - wszystkie wersje
Western Digital WDC AC32100H revision 24.09P07
Western Digital WDC AC23200L revision 21.10N21
9.2 Czy masz przetaktowane PCI?
Jeśli tak, to ostrożnie! Oto cytat z poprzedniej dokumentacji do
UDMA:
Nie wolno przetaktowywać szyny PCI. 37,5 MHz, to maksymalna
częstotliwość. Niektóre (prawdopodobnie obsługiwane) napędy UDMA nie
zadziałają nawet przy częstotliwości 37,5 MHz, ale 33 MHz powinno
działać.
W każdym bądź razie NIGDY _NIGDY_ ! nie wolno ustawiać szyny PCI na
41,5 MHz.
ZALECANYM bezpiecznym ustawieniem jest 33 MHz.
9.3 Czy BIOS na płycie głównej jest aktualny?
Oto kolejny cytat z dokumentacji do UDMA:
Tak naprawdę BIOS każdej płyty głównej przestawia napędy dyskowe na
tryb UDMA. Oczywiście trzeba mieć nadzieję, że taki BIOS
został zaprogramowany poprawnie...
Np. płyta główna ASUS SP-97V z oryginalnym BIOSem (rev. 1.03) będzie
działać niepoprawnie w trybach DMA 2 i UDMA ze zmodyfikowanym
sterownikiem linuksowym. Będzie natomiast działać poprawnie w trybie
PIO 4 oraz w Windows 95 we wszystkich trybach. Ściągnąłem najnowszy
BIOS (rev. 1.06) ze strony ASUSa i uaktualniłem na swojej płycie. Od
tego momentu działa idealnie (przy częstotliwości szyny 66 MHz).
Mówi nam to o fakcie, że BIOS ustawia w kontrolerze DMA pewne
specyficzne parametry (active pulse i recovery clock cycles) [od
tłumacza: jak mi ktoś zaproponuje kiedyś tłumaczenie, to przetłumaczę,
bo ja nie mam pojęcia o czym mowa...] Moja poprzednia wersja
BIOSu prawdopodobnie miała te ustawienia niepoprawne. Ponieważ
sterownik Windows 95 ustawia te wartości samemu (nie zależnie od
BIOSu) miałem problemy tylko ze sterownikiem Linuksa a pod Windows 95
wszystko działało poprawnie.
Tak więc jeszcze raz: sterownik UDMA w Linuksie polega na ustawieniach
BIOSu. Jeśli pojawiają się problemy należy sprawdzić czy mamy
najnowszą wersję BIOSu dla naszej płyty głównej.
9.4 Jeśli nadal nie działa
Jeśli żadna ze wskazówek nie okazała się pomocna na tyle, żeby
rozwiązać problemy z UDMA, najlepszym wyjście jest napisanie
na grupę pl.comp.os.linux.sprzet. W wiadomości należy zawrzeć
dokładny opis problemu: typ posiadanego interfejsu
UDMA, czy jest na płycie głównej czy na karcie rozszerzeń, czy
napęd jest w UDMA czy w zwykłym EIDE, dokładna konfiguracja
napędów, wersja dystrybucji i jądra oraz wszystko inne co wydaje
się być pomocne. Najprawdopodobniej znajdzie się tam ktoś pomocny.
9.5 Jeśli masz informacje na temat UDMA, których nie ma tutaj...
Wspaniale! Jeśli wiesz coś czego ja nie wiem, prześlij do mnie
informację na ten temat (
brion@pobox.com) i ukaże się ona w kolejnej wersji.
10. Od tłumacza.
Tłumaczenie to jest chronione prawami autorskimi © Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
Zmiany w tym dokumencie:
W punkcie o
IDE, EIDE i ATAPI dopisałem informację o dyskach
UDMA w tej chwili dostępnych na rynku.
W punkcie
o ,,ultra'' dopisałem informację o
transferach
Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne,
składniowe, techniczne to pisz do mnie:
B.Maruszewski@jtz.org.plNapewno znajdziesz tu jakieś niejasne i niepolskie konstrukcje.
Jeśli wpadniesz na lepszy pomysł daj mi znać.
Oficjalną stroną tłumaczeń HOWTO jest
http://www.jtz.org.pl/Aktualne wersje przetłumaczonych dokumentów znajdują się na
tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem
ftp.jtz.org.pl w katalogu /pub/Linux/JTZ/.
Przetłumaczone przeze mnie dokumenty znajdują się także na
mojej stronie WWW. Są tam też odwołania do Polskiej Strony
Tłumaczeniowej.
Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę
dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to
wyślij list o treści subscribe jtz Imię Nazwisko na adres
majordomo@ippt.gov.pl
Wyszukiwarka