Hinweise zu Linux und ICP Disk Array Controller
===============================================

Stand 20. Juli 2000

Folgende LINUX Distributionen wurden getestet:
Caldera
Corel Linux OS
Debian
DLD
LST   
RedHat
S.u.S.E.


1) Verfuegbare Treiber und Tools
2) Treiberupdate durch Einspielen der Treiberquellen
3) ICPCON
4) gdth Treiberparameter
5) Wissenswertes


1) Verfuegbare Treiber und Tools:
---------------------------------

gdth.tgz             ICP Treiberquellen fuer intel und alpha Systeme
icpcon.tgz           ICPCON fuer intel Systeme
icpcon_a.tgz         ICPCON fuer alpha Systeme
icpd???s.tgz         Remote Access Service fuer SuSE Linux (???=Version)
icpd???r.tgz         Remote Access Service fuer Redhat Linux (???=Version)


2) Treiberupdate durch Einspielen der Treiberquellen:
-----------------------------------------------------

a) Kopieren der Treiberquellen nach /usr/src/linux/drivers/scsi
   (bei einer DOS Diskette z. B. mit 'mcopy -b a:gdth.tgz').

b) Entpacken des Archivs mit 'tar xvfz gdth.tgz

c) Neuen Kernel uebersetzen
   (je nach Systemkonfiguration und Linux Distribution unterschiedlich, 
   evtl. vorher 'make config', 'make dep', 'make clean' notwendig)


3) ICPCON -  Monitoring Utility
-------------------------------

icpcon.tgz           (intel)
icpcon_a.tgz         (alpha)

tgz-Datei entpacken:  'tar xvfz icpcon.tgz'
ICPCON starten: './icpcon'

Fuer die Benutzung von ICPCON ist der gdth Treiber ab Version 1.21 oder hoeher
erforderlich. Sie koennen die Version des Treiber wie folgt ueberpruefen:

'grep Driver /proc/scsi/gdth/0' (bzw. /proc/scsi/gdth/1, /proc/scsi/gdth/2, usw.)


4) gdth Treiberparameter
------------------------

Bis zur Treiberversion 1.07 werden Treiberparameter direkt in
/usr/src/linux/drivers/scsi/gdth.c angegeben. Ab Treiber 1.10 kann fuer die
Uebergabe von Parametern an den Treiber das LILO Boot Prompt (gdth=...")
oder in /etc/lilo.conf das Kommando append (append = "gdth=...") genutzt werden.


Reservierung von SCSI Laufwerken:

Die Reservierung von SCSI Geraeten ist immer dann notwendig, wenn sogenannte
'Direct Access Devices' Linux direkt zur Verfuegung gestellt werden sollen, ohne
dass sie vorher vom ICP Controller als Hostlaufwerke konfiguriert wurden
(zB Syquest oder Iomega Laufwerke). 'Non Direct Access Devices' wie CD-ROM,
Streamer, DATs, usw. muessen NICHT reserviert werden. 
Achtung: Die Reservierung funktioniert nur mit nicht initialisierten 
SCSI Laufwerken.

Die Reservierung wird ab gdth Treiberversion 1.05 unterstuetzt.

Bis zur ICP Treiber Version 1.07 wird die Reservierung direkt in den Quellen des
Treibers durchgefuehrt. Dazu in '/usr/src/linux/drivers/scsi/gdth.c' nach dem
Eintrag 'gdth_reserve_str' suchen. In diesem Abschnitt befindet sich bereits ein
ausmaskierter Beispieleintrag. Diesen Eintrag so aendern, dass die Koordinaten
auf das zu reservierende SCSI Geraet zeigen (Adapter, Bus, ID und LUN angeben).
Datei abspeichern und Kernel neu uebersetzen.

Ab ICP Treiberversion 1.10 kann wie bereits erwaehnt die Uebergabe von
Treiberparametern mit dem LILO append Kommando erfolgen:

Auszug aus /etc/lilo.conf:

# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sda2
label = Linux
append = "gdth=reserve_list:1,0,6,0"
# Linux bootable partition config ends

Dieser gdth Treiberparameter reserviert das SCSI Laufwerk am ICP Controller 1
(zweiter ICP Controller), SCSI Bus 0 (Kanal A), ID 6, LUN 0 fuer das
Betriebssystem (raw service).

Nach jeder Aenderung in /etc/lilo.conf muss lilo einmalig aufgerufen werden.

Treiberparameter koennen auch am LILO Boot Prompt eingegeben werden
(z.B. gdth=reserve_list:1,0,6,0).


Weitere Treiberparameter:

irq1,irq2, usw.                  Nur fuer GDT3000/GDT3020 ICP EISA Controller und
                                 nur wenn deren BIOS deaktiviert wird (irq1,
                                 irq2, usw. entsprechen den IRQs der o. g. EISA
                                 Controller)
disable:Y                        deaktiviert den ICP Treiber
disable:N                        aktiviert den ICP Treiber
reserve_mode:0                   reserviert keine SCSI Geraete [*1]
reserve_mode:1                   reserviert alle nicht init. Wechselplatten [*1]
reserve_mode:2                   reserviert alle nicht init. Laufwerke [*1]
reserve_list:h,b,t,l,h,b,t,l,... reserviert Laufwerke an der entsprechenden
                                 Koordinate mit
                                 h=Hostadapter, b=SCSI Bus, t=Target ID, l=LUN
reverse_scan:Y                   umgekehrte Reihenfolge der PCI Controller
reverse_scan:N                   Reihenfolge der PCI Controller gemaess der
                                 Reihenfolge im BIOS
max_ids:x                        x = Anzahl der Target IDs pro SCSI Kanal
                                 (beschleunigt Bootvorgang)
rescan:Y                         rescan aller Kanaele / IDs
rescan:N                         nur SCSI Geraete nutzen, die bereits gefunden
                                 wurden [*1]

[*1] Die Treiberparameter reserve_mode und rescan:N benoetigen ICP Controller mit
FW 1.23.00/2.23.00 oder hoeher.

Die derzeitigen Default Einstellungen der Treiber sind wie folgt:

"gdth=disable:N,reserve_mode:1,reverse_scan:N,max_ids:127,rescan:N"

Wird der gdth Treiber als Modul geladen, koennen diese Parameter ebenfalls
uebergeben werden. Dabei muss allerdings ein spezieller Syntax verwendet werden.
IRQ Parameter muessen mit 'IRQ=' angegeben werden (z.B. IRQ=10). Bei mehreren
Parametern ist anstatt eines Kommas (',') ein Leerzeichen (' ') zu verwenden.
Alle ':' sind durch '=', alle 'Y' durch '1' und alle 'N' durch '0' zu ersetzen.

Default: "modprobe gdth disable=0 reserve_mode=1 reverse_scan=0 
 max_ids=127 rescan=0"


5) Wissenswertes:
-----------------

/proc-Support:

Lesen von /proc/scsi/gdth/0, /proc/scsi/gdth/1, .. :
Anzeige des Controllers/SCSI-Busses, Firmware-Version, Treiber-Version
(z.B. durch cat /proc/scsi/gdth/0)

Schreiben nach /proc/scsi/gdth/0, .. :
    gdth flush          Flushen aller Hostlaufwerke am Controller
    gdth flush drive    Flushen des Hostlw. mit Nummer drive
    gdth wbp_off        Write-Back abschalten permanent [*1]
    gdth wbp_on         Write-Back einschalten permanent [*1]
    gdth wb_off         Write-Back abschalten temporaer (ab FW 1.15/2.15)
    gdth wb_on          Write-Back einschalten temporaer (ab FW 1.15/2.15)

[*1] Diese Write-Back-Einstellung gilt fuer alle Hostlaufwerke des Controllers
     und ist auch nach einem Kaltstart oder Aus-/Einschalten des Systems noch
     wirksam !


- Ende der Datei -