Jak na >32GB disky

Petr Soucek petr na ryston.cz
Pátek Listopad 26 20:59:06 CET 1999


Zdravim,

v poslednich dvou tydnech jsem se zabyval instalaci 37GB IDE disku IBM
do linuxovych serveru s motherboardem GA-586HX (Chipset 430HX, IDE
PIIX3) a GA-686LX (Chipset 440LX, IDE PIIX4) a protoze to neni uplne
trivialni zalezitost, chtel bych se podelit o zkusenosti.

Nejdrive je nutne zakazat ATA66 pomoci utility k harddisku.

BIOS: Alespon Award BIOS 4.51PG do minuleho mesice podporoval jen disky
do 32G, vetisi disky nejenze odmita detekovat, ale ani nenabootuje, kdyz
je tam nastaven vubec nejaky disk. Jedinym resenim je nenastavit zadny
disk. Pak je ale problem v tom, ze IDE kontroler neni nastaven do
spravneho modu.

Upgrade BIOSu pro vetsinu motherboardu neni k dispozici.

V pripade kernelu 2.3.28 (ten jsem zkousel) je vse OK, protoze ten jiz
podporuje jak velke disky, tak nastaveni IDE PIIX chipsetu (piix.c).
Nastavuji geometrii typu 72680/16/63 (pro 37GB disk)

Se stabilni radou 2.2 je to horsi - do jadra 2.2.13 narazi na problem
poctu cylindru >65536 a ve vyse zminenem pripade se detekuje disk o
velikosti pouze 3.6 GB (72680-65536 cylindru). Teprve jadra od
2.2.14pre1 podporuji disky >32GB diky tomu, ze pouziji geometrii s 255
hlavickami, tj. 4320/255/63.

Druhy problem spociva v tom, ze se ale diky nenastavenemu IDE radici
bude rychlost prenosu merena hdparm pohybovat jen okolo 2,6 (PIIX3) nebo
3 (PIIX4) MB/s.

Resenim by bylo backportovat piix.c do jadra 2.2, jenomze k tomu se na
linux-kernel nikdo nema, a ja do toho nevidim.

Nouzovym resenim je pomoci setpci z pci-utils nastavit spravne chipset.
Tady se dostavame na tenky led. Popisu konfiguraci pro disk master na
sekundarnim ide rozhrani a bez slave:
Pro PIIX3 (82371SB) staci
setpci -s 0:7.1 42.w=a307
Po teto uprave se zvedne rychlost prenosu na 8 - 9 MB/s, tedy na stejnou
rychlost, jako maji vsechny IDE disky v MW DMA2.

Pro PIIX4 (82371AB) lze udelat totez a dojde k onomu trojnasobnemu
zrychleni. PIIX4 ale podporuje i UDMA a pokud ho chceme nsatavit, je to
nutne udelat pomoci:
hdparm -X66 -k -K /dev/hdc  (nastaveni disku)
setpci -s 00:07.1 48.w=0007
setpci -s 00:07.1 4a.w=0222
(hodnoty pro hda, hdb a hdc UDMA33, zadny hdd)
Po tomto nastaveni ukazuje hdparm 19.5 MB/s.

Prislusne prikazy pak staci dat do rc.local.

Pokud mate konfiguraci jinou nez ja (asi ano), tak doporucuji ke
zjisteni spravnych hodnot k naprogramovani IDE radice pouzit nasledujici
postup:
1) napropojkovat disk na 32GB (disky IBM takove nastaveni maji)
2) nastavit disk v BIOSu a nabootovat Linux
3) lspci -vvvxxx -s 0:7.1 > good.txt vypsat spravnou konfiguraci
4) napropojkovat disk zpet na >32GB
5) zrusit nastaveni disku v BIOSu a nabootovat linux
6) lspci -vvvxxx -s 0:7.1 > bad.txt
7) diff bad.txt good.txt ukaze to, co je treba nastavit.

Reference:
ftp://metalab.unc.edu/pub/Linux/system/hardware/hdparm-3.6.tar.gz
ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/pciutils-2.1.tar.gz
linux/drivers/blockdriver/piix.c v jadru 2.3.xx
ftp://download.intel.com/design/pcisets/datashts/29055002.pdf
(katalogovy list PIIX3 = 82371SB s popisem registru)
ftp://download.intel.com/design/pcisets/datashts/29056201.pdf
(katalogovy list PIIX4 = 82371AB s popisem registru)

Vsechny pokusy doporucuji provadet na nenamountovanem disku a co
nejcasteji opakovat sync - spatnym nastavenim lze dosahnout snadno
absolutniho vytuhnuti systemu, kdy pomuze jen reset.

Rozepsal jsem se tak o tom proto, ze IBM 37G disky uz stoji jen malo
pres 10000Kc a jejich uspesne rozchozeni neni trivialni.

Pokud mate nekdo nejaky tip, jak to udelat jednoduseji nebo lepe, dejte
mi vedet.

Petr Soucek


Další informace o konferenci Linux