Ultra-DMA mini HOWTO
Autor: Brion Vibber, brion@pobox.com
v3.0, 9 Listopada 1999
WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkiiBB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll..
v1.0, 2 Marca 2001
Celem tego dokumentu jest wyjaśnienie sposobu użytkowania dysków
UltraDMA/UltraATA/Ultra33/Ultra66 w Linuksie. Najnowsza wersja ory
ginału znajduje się pod adresem http://pobox.com/~brion/linux/Ultra-
DMA.html. Dokument ten napisany został w standardzie ISO-8859-2.
______________________________________________________________________
Spis treści
1. Wprowadzenie.
1.1 Zastrzeżenie
1.2 Wyrazy uznania
1.3 Prawa autorskie
2. Co to jest Ultra-DMA i dlaczego tego chcę?
2.1 IDE, EIDE, ATAPI
2.2 Bus Master DMA
2.3 Ultra-DMA/Ultra-ATA/Ultra33/...
2.4 Właściwie to jak ,,ultra'' to jest?
2.5 Jak się ma UDMA do SCSI?
3. Używanie dysku UDMA z interfejsem EIDE.
4. Używanie dysku UDMA z interfejsem UDMA
5. Interfejsy UDMA PCI nie zintegrowane z płytą główną
5.1 Promise Ultra33
5.2 Promise Ultra66
5.3 Artop ATP850UF
5.4 Dodawanie plików urządzeń.
6. Interfejsy UDMA na płycie głównej
6.1 Intel FX, HX, VX, TX, LX i BX
6.2 VIA VP2 i podobne chipsety
6.3 TX Pro i inne płyty główne ,,Pro''
6.4 HPT 366
7. Zunifikowana łata IDE
8. Włączanie i wyłączanie UDMA
8.1 Parametry jądra podczas startu
8.2 Używanie hdparm
9. Problemy
9.1 ,,Czarna Lista'' UDMA
9.2 Czy masz przetaktowane PCI?
9.3 Czy BIOS na płycie głównej jest aktualny?
9.4 Jeśli nadal nie działa
9.5 Jeśli masz informacje na temat UDMA, których nie ma tutaj...
10. Od tłumacza.
______________________________________________________________________
11.. WWpprroowwaaddzzeenniiee..
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.
11..11.. ZZaassttrrzzeeżżeenniiee
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 NNAALLEEŻŻYY
ZZRROOBBIIĆĆ KKOOPPIIĘĘ ZZAAPPAASSOOWWĄĄ DDAANNYYCCHH,, KKTTÓÓRRYYCCHH NNIIEE CCHHCCEEMMYY SSTTRRAACCIIĆĆ. Jeśli
jeszcze nie robisz tego regularnie, to dla własnego dobra - zacznij.
11..22.. WWyyrraazzyy uuzznnaanniiaa
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ń _h_d_e_, _h_d_h
Andrei Pitis - łata dla LILO
Brion Vibber - ten dokument
11..33.. PPrraawwaa aauuttoorrsskkiiee
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ę.
22.. CCoo ttoo jjeesstt UUllttrraa--DDMMAA ii ddllaacczzeeggoo tteeggoo cchhccęę??
Oto krótki przegląd technologii opartych na IDE:
22..11.. IIDDEE,, EEIIDDEE,, AATTAAPPII
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)].
22..22.. BBuuss MMaasstteerr DDMMAA
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.
22..33.. UUllttrraa--DDMMAA//UUllttrraa--AATTAA//UUllttrraa3333//......
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.
22..44.. WWłłaaśścciiwwiiee ttoo jjaakk ,,,,uullttrraa'''' ttoo jjeesstt??
Zanim zaczniemy, pozwolę sobie wyjaśnić drobne nieporozumienie. Te
transfery 33 MB/s i 66 MB/s to transfery maksymalne (bbuurrsstt ttrraannssffeerr
rraattee) 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 ssuussttaaiinneedd ttrraannssffeerr rraattee, 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).
22..55.. JJaakk ssiięę mmaa UUDDMMAA ddoo SSCCSSII??
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.
33.. UUżżyywwaanniiee ddyysskkuu UUDDMMAA zz iinntteerrffeejjsseemm EEIIDDEE..
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.
44.. UUżżyywwaanniiee ddyysskkuu UUDDMMAA zz iinntteerrffeejjsseemm UUDDMMAA
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.
55.. IInntteerrffeejjssyy UUDDMMAA PPCCII nniiee zziinntteeggrroowwaannee zz ppłłyyttąą ggłłóówwnnąą
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ć.
55..11.. PPrroommiissee UUllttrraa3333
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.
IInnssttaallaaccjjaa LLiinnuukkssaa zz oobbssłłuuggąą UUllttrraa3333
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.
RReedd HHaatt 55..11::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= _(_t_u_t_a_j _t_e
_n_u_m_e_r_k_i _s_p_i_s_a_n_e _w_c_z_e_ś_n_i_e_j _j_a_k _n_a _p_r_z_y_k_ł_a_d_z_i_e _w_y_ż_e_j_) ide3=_(_i _k_o_l_e_j_n_e
_n_u_m_e_r_k_i_)''. 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.
RReedd HHaatt 55..00 i SSllaacckkwwaarree 33..44: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.
_W_A_Ż_N_E_: Bez łaty (omawianej w punkcie ``Zunifikowane IDE'') jjąąddrroo
ppoottrrzzeebbuujjee parametrów startowych, aby dostać się do dysku! Z tego
powodu bardzo ważnym jest podczas konfiguracji LILO (na dysku lub
dyskietce), aby podać ddookkłłaaddnniiee ttee ssaammee ppaarraammeettrryy 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, TTRRZZEEBBAA 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.
IInnssttaallaaccjjaa LLiinnuukkssaa oommiijjaajjąąccaa UUllttrraa3333
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. UUWWAAGGAA:: 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.
IInnssttaalloowwaanniiee łłaattyy ddoo UUllttrraa3333
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.
UUżżyywwaanniiee ddwwóócchh kkaarrtt UUllttrraa3333 ww jjeeddnnyymm kkoommppuutteerrzzee
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.
55..22.. PPrroommiissee UUllttrraa6666
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
.
55..33.. AArrttoopp AATTPP885500UUFF
Ta karta jest obsługiwana przez zunifikowany kod IDE. Instalacja
Linuksa na niej może być podobna do instalacji na Promise Ultra33.
55..44.. DDooddaawwaanniiee pplliikkóóww uurrzząąddzzeeńń..
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ć.
66.. IInntteerrffeejjssyy UUDDMMAA nnaa ppłłyycciiee ggłłóówwnneejj
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.
66..11.. IInntteell FFXX,, HHXX,, VVXX,, TTXX,, LLXX ii BBXX
Jeszcze raz dziękuje Gadiemu za tę informację:
Obsługa , 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.
88.. WWłłąącczzaanniiee ii wwyyłłąącczzaanniiee UUDDMMAA
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.
88..11.. PPaarraammeettrryy jjąąddrraa ppooddcczzaass ssttaarrttuu
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.
88..22.. UUżżyywwaanniiee hhddppaarrmm
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
AAbbyy wwłłąącczzyyćć DDMMAA:: hdparm -d1 /dev/hda
AAbbyy wwyyłłąącczzyyćć DDMMAA:: hdparm -d0 /dev/hda
AAbbyy zzmmiieerrzzyyćć sszzyybbkkoośśćć ddyysskkuu:: hdparm -Tt /dev/hda
AAbbyy zzoobbaacczzyyćć jjaakkiiee ssąą uussttaawwiieenniiaa ddyysskkuu:: hdparm /dev/hda
AAbbyy zzoobbaacczzyyćć wwiięęcceejj ddaannyycchh ddoott.. ddyysskkuu nniiżż kkiieeddyykkoollwwiieekk cchhcciiaałłeeśś:: (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'').
99.. PPrroobblleemmyy
99..11.. ,,,,CCzzaarrnnaa LLiissttaa'''' UUDDMMAA
Napędy wymienione poniżej znajdują się na liście nie działających.
NNiiee wwoollnnoo 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
99..22.. CCzzyy mmaasszz pprrzzeettaakkttoowwaannee PPCCII??
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.
99..33.. CCzzyy BBIIOOSS nnaa ppłłyycciiee ggłłóówwnneejj jjeesstt aakkttuuaallnnyy??
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.
99..44.. JJeeśśllii nnaaddaall nniiee ddzziiaałłaa
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ę
_p_l_._c_o_m_p_._o_s_._l_i_n_u_x_._s_p_r_z_e_t. 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.
99..55.. JJeeśśllii mmaasszz iinnffoorrmmaaccjjee nnaa tteemmaatt UUDDMMAA,, kkttóórryycchh nniiee mmaa ttuuttaajj......
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.
1100.. OOdd ttłłuummaacczzaa..
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.pl
Napewno 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