Ci sono delle interfacce UDMA su schede PCI che possono essere usate per aggiungere il supporto per l'UDMA a un computer esistente senza sostituire la scheda madre o per aggiungere il supporto per altri quattro dischi a una macchina che ha tutte le interfacce a bordo occupate. Possono essere trovate anche preinstallate in alcuni computer, specialmente sulle macchine Gateway 2000 e Dell.
Molte di esse non erano supportate dai vecchi kernel stabili (2.0.x), ma dovrebbero funzionare con un kernel 2.2.x - le distribuzioni Red Hat 6.0 e SuSE 6.1 sono basate sui kernel 2.2.x, come lo sono le più recenti versioni di molte altre distribuzioni. Tuttavia alcune delle schede più recenti (per esempio la Promise Ultra66) potrebbero non funzionare anche con gli attuali kernel 2.2.x, se voi ne avete una e non potete prendere una distribuzione tra le più recenti allora dovete applicare una patch al kernel, oppure aggiornarlo ad una versione più recente. Se avete bisogno di installare Linux su un disco rigido collegato ad una di queste interfacce, dovrete ricorrere ad alcuni strani stratagemmi.
Questa è una scheda PCI che ha su di essa due canali UDMA e supporta un totale di quattro dischi. Potete vedere descrizioni particolareggiate e prezzi su http://www.promise.com.
Questa scheda è montata a bordo nei più recenti sistemi pentium II modello Gateway 2000.
I kernel 2.0.35 e successivi e tutti i kernel 2.2.x supportano l'Ultra33, quindi non dovreste avere problemi installando una distribuzione basata su questi kernel. Tuttavia i kernel stabili più vecchi (2.0.34 e precedenti) non lo supportano, e poiché molte distribuzioni più vecchie di Linux includono questi vecchi kernel, potreste incontrare piccole difficoltà nell'installare Linux se non volete o non potete usare una versione più recente (per esempio se avete reso standard una particolare distribuzione all'interno della vostra organizzazione).
Installare Linux con l'Ultra33
Sebbene vi sia una patch per l'interfaccia Ultra33, non è molto semplice applicare una patch e ricompilare il vostro kernel se non avete mai installato Linux prima d'ora! Così qui c'è un rimedio che vi permette di installarlo. Grazie a Gady Oxman per le seguenti informazioni date su come impostare l'interfaccia:
Ecco un trucchetto che vi consentirà di effettuare l'installazione.
Se possiamo avere accesso alla console con il disco di installazione,
possiamo anche usare "cat /proc/pci" per visualizzare le impostazioni
dell'interfaccia Promise:
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)
e passare "ide2=a,b+2 ide3=c,d+2" come parametri al kernel dalla riga
di comando.
Notate che i numeri non sono gli stessi a seconda di quello che volete avere.
Proprio come esempio, i parametri da usare per il set di numeri riportato sopra
possono essere: "ide2=0xe000,0xd806 ide3=0xd400,0xd006
".
Se voi state usando solo il primo canale sull'Ultra33 (per esempio se avete un
solo disco, o due che sono uno master e l'altro slave sullo stesso canale), allora
non avrete bisogno di specificare ide3
.
Red Hat 5.1: Fate il boot con il dischetto di avvio e premete invio al prompt quando vi viene suggerito. Verrà caricato il kernel, poi vi domanderà la lingua, il tipo di tastiera e il metodo di installazione. Forse vi verrà chiesto da quale supporto effettuare l'installazione; non ha importanza ora cosa vi chiede finché potete arrivare al passo successivo. In seguito dovreste vedere una schermata intitolata "Select Installation Path"; premete ALT+F2 per ottenere un prompt dei comandi.
Avviate "cat /proc/pci
", scrivete i numeri come indicato
sopra, e riavviate dal dischetto di avvio. Ora, digitate "linux ide2=
(questo quando date i numeri come mostrato sopra) ide3=
(altri numeri) ".
Dovreste ora essere in grado di installarlo sul vostro disco rigido senza difficoltà, tuttavia non sarà probabilmente possibile installare LILO; in alternativa preparate un floppy d'avvio e avviatelo con gli stessi parametri fino a quando potrete mettere una patch a LILO e al kernel.
Red Hat 5.0 e Slackware 3.4: Queste sono simili, ma con il trucco
che il programma d'installazione ignora /dev/hde-h
(i dischi sulla
ide2
e sulla ide3
).
Allo scopo di installarlo su o da uno di questi dischi è necessario non tenere
conto di uno o di entrambi i canali delle interfacce a bordo. Tuttavia controllate di non
aver tenuto conto di un dispositivo di cui avete bisogno per installare; per esempio
se state installando da un lettore CD-ROM su /dev/hdd
(ide1
- interfaccia
a bordo) su un disco rigido su /dev/hde
(ide2
- l'Ultra33), dovrete
escludere la non necessaria ide0
a favore della ide2
e lasciare intatta la ide1
.
Supponendo i numeri sopra potreste voler avviare con "ide0=0xe000,0xd806
".
Red Hat 5.0 vi darà un prompt della shell se usate la possibilità del
disco di ripristino, e la Slackware include una shell nel regolare processo di installazione.
Tuttavia Red Hat 5.0 è difficile da riavviare dopo l'installazione; se avete
problemi, potete provare scaricando un disco di avvio per la Slackware da
ftp://ftp.cdrom.com/pub/linux/slackware-3.5/bootdsks.144/
e usarlo per fare il boot.
Con altre distribuzioni, dovrete un po' improvvisare ma il processo dovrebbe essere lo stesso indicato sopra.
IMPORTANTE:
Senza la patch (discussa nella sezione
<@@ref>genericUDMA-Generic),
il kernel necessita di questi parametri di boot per accedere al vostro
disco rigido! Inoltre è molto importante che quando configurate LILO,sia
sul disco rigido sia sul floppy d'avvio, date esattamente gli stessi parametri
che avete dato mentre stavate installando. Altrimenti il vostro sistema non si
avvierà! Sarebbe possibile darli a LILO quando avviate (cioè, premere
Shift, digitare in "linux ide2=
....." ogni volta che avviate),
ma solo se avete conservato i numeri! Si raccomanda di applicare la patch al kernel
il più presto possibile così non avrete più da preoccuparvi;
una volta che state avviando con il kernel "rattoppato" potrete sbarazzarvi
dei parametri di boot.
Inoltre, per quel che mi consta non c'è modo di far passare i parametri di boot
a un normale floppy di avvio (fatto con "make zdisk
"), dovete
usare LILO o un altro loader (come LOADLIN) che vi permetta di passare i parametri di boot.
Tuttavia, i kernel "non rattoppati" ed i programmi di installazione attualmente incontrano spesso delle difficoltà usando la ide2 e la ide3, anche se i dischi vengono correttamente rilevati. Così se non potete prendere Linux per installarlo usando le tecniche descritte sopra, provate a specificare ide0 o ide1, anziché ide2 o ide3 (grazie a Martin Gaitan per questa tecnica).
Questo essenzialmente sostituisce l'interfaccia a bordo con la Promise Ultra33 per quel che riguarda il kernel e potete seguire le istruzioni della prossima sezione come se vi foste fisicamente spostati li.
Notate che, se per l'installazione state usando un lettore CD-ROM IDE connesso alla vostra interfaccia a bordo, vi dovrete assicurare di non interferire con l'interfaccia collegata al CD altrimenti l'installazione non potrebbe andare a buon fine!
Se il CD è hda o hdb, usate ide1 per il vostro disco rigido e se esso è hdc o hdd allora usate ide0.
Installare Linux con l'Ultra33
Se non riuscite a far funzionare il rimedio software potete provare un approccio molto più brutale! Di seguito riporto un metodo alternativo di cui è virtualmente garantito il funzionamento, ma richiede che voi apriate il vostro computer e che vi diate da fare in esso. NB: se non avete familiarità con i processi di connessione dei dischi IDE, leggete i manuali che vi sono stati dati con il computer, con il vostro disco rigido e/o con la vostra Promise Ultra33 prima di provare a fare questo! Se scollegate qualcosa e non sapete più come rimetterlo a posto, sono spiacente ma potreste aver finito! Quanto detto è tutto realmente proprio semplice. Molte schede madri oggi hanno un'interfaccia EIDE incorporata. Disconnettete il vostro disco rigido dalla Ultra33 e connettetelo all'interfaccia a bordo. Se avete altri dispositivi IDE quali CD Rom, unità a nastro o disco Zip, sulla vostra interfaccia a bordo, è più semplice se aggiungete il disco rigido su un canale non usato (il secondario invece che il primario) o temporaneamente spostate un dispositivo di cui non avete bisogno immediatamente (come uno Zip o un'unità a nastro). Installate Linux. Scaricate e applicate la patch per la Promise Udma. (Vedere la prossima sezione).
Ora siete pronti per riportare indietro il disco sulla Promise... quasi.
Per essere sicuri, fate un'immagine di boot del kernel su un floppy.
(cd /usr/src/linux ; make zdisk
), che sarà in grado di
riavviare il vostro sistema. Eventualmente, per essere veramente sicuri,
fatene due e per ora mettetene via uno.
Okay, ora è il tempo di pensare un poco... se avete solo un disco rigido
e esso sta funzionando sulla Promise Ultra33, allora è più
probabile che esso sia /dev/hde
(a
e b
sono per le
interfacce a bordo primarie, c
e d
per le interfacce a bordo secondarie).
Se state mettendo su essa un altro disco allora lo slave del primo canale
sarà /dev/hdf
, il master del secondo canale sarà
/dev/hdg
, e lo slave del secondo sarà /dev/hdh
.
Modificate /etc/fstab
, e cambiate tutte le partizioni dei dischi
rigidi che state spostando dai "dischi" a bordo (/dev/hda
,
hdb
, etc) alle loro posizioni sulla Promise (/dev/hde
, hdf
,
etc). Se avete da disporre un qualsiasi dispositivo (come un CD Rom o un disco Zip)
che volete lasciare sull'interfaccia a bordo, allora cambiateli pure alla loro nuova
posizione. Per esempio, se il vostro CD Rom originariamente era master sul canale
primario, (/dev/hda
), ma mettete li il vostro disco rigido e avete soppiantato
il CD come slave (/dev/hdb
) o sul canale secondario (/dev/hdc
),
e ora volete rimetterlo indietro dov'era, allora cambiatelo in /dev/hda
.
Se state utilizzando LILO, riconfiguratelo per usare la nuova posizione del
disco (la configurazione di LILO esula dallo scopo di questo, documento, se non
sapete come fare leggete il
LILO mini-HOWTO), altrimenti probabilmente non sarà in grado
di avviarsi a meno che non usiate il floppy di avvio che avete fatto, che vorrete anche
configurare per fare il boot dalla nuova partizione.
Tutto ciò viene fatto usando il comando rdev
. Inserite il floppy nel drive
e digitate "rdev /dev/fd0 /dev/hde1
". Naturalmente si assume
che la vostra partizione di root sia la prima sul primo disco UDMA. Se non è
così (per esempio la mia è /dev/hde7
), allora usate
l'appropriato numero di partizione.
Riavviate. Il vostro sistema ora dovrebbe funzionare bene.
Applicare le patch per l'Ultra33
I kernel 2.0.35 e successivi supportano la Promise Ultra33 in maniera nativa, scaricate un aggiornamento dalla vostra distribuzione Linux o da http://www.kernel.org. Per le istruzioni su come compilare il kernel, leggete il Kernel HOWTO.
Usare 2 schede Ultra33 in una macchina
Attualmente queste non funzionano bene, non fatelo subito, a meno che non vi stiate gingillando con il kernel per cercare di fare qualcosa per farle funzionare.
Questa è essenzialmente uguale alla Ultra33 con il supporto per il nuovo UDMA mode 4 con velocità di trasferimento di 66 Mb/sec. Sfortunatamente essa non è ancora supportata dai kernel 2.2.x. C'è una patch per i kernel 2.0.x e 2.2.x disponibile su http://www.kernel.org/pub/linux/kernel/people/hedrick, e il supporto è incluso nella serie di kernel 2.3.x in via di sviluppo, almeno dal 2.3.3. Tuttavia per arrivare ad applicare patch o aggiornare il kernel dovrete tirare gli stessi sporchi trucchi usati per l'Ultra33 nella sezione sopra, oppure usare un disco con un immagine di boot fornito dalla Promise
Questa scheda è supportata dall'Udma generic. L'installazione di Linux su un sistema con una di esse come interfaccia per il disco su cui effettuare l'installazione può essere simile al metodo usato per la Promise Ultra33.
Le interfacce IDE terziarie e quaternarie (ide2 e ide3) usano file di dispositivo della
forma /dev/hde*
sino a /dev/hdh*
. Sui vecchi kernel questi
dispositivi non erano creati automaticamente, così avevate bisogno di
aggiungerli manualmente per far sì che funzionassero correttamente.
Questo può essere facilmente fatto se avete installato una copia aggiornata
dei sorgenti del kernel di Linux, semplicemente avviate
/usr/src/linux/scripts/MAKEDEV.ide
che creerà tutti i file di dispositivo
importanti.