home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
M.u.C.S. Disc 2000
/
MUCS2000.iso
/
anwend
/
gemar306
/
xfs
/
readme.1st
< prev
next >
Wrap
Text File
|
1997-01-21
|
14KB
|
390 lines
GEMAR-XFS-Treiber - Restore per Desktop (c) Steffen Engel '95
Version 3.00 vom 24.11.95
MiNT kann aufgrund von MultiTOS bald als System für jedermann angesehen
werden. Daher ist es sehr interessant, einen Treiber einzubinden, der
Streamer-Bänder als logisches Laufwerk anmeldet.
Diesem Zweck dient GEMAR.XFS
Einerseits können Bänder von GEMAR als Laufwerk eingeblendet werden, so da₧
Dateien direkt über das Desktop kopiert werden können, andererseits wird ein
Device-Treiber installiert, mit dem Sie direkt auf den Streamer zugreifen
können (u:\dev\mt).
Der Device-Driver dient dazu, da₧ ALLE Programme auf den Streamer zugreifen
können, denn dieses Device entspricht im Zugriff einer Datei.
LIEFERUMFANG:
Der Treiber ist nur für registrierte GEMAR-Benutzer erhältlich und kostet
DM 30,-
VORAUSSETZUNGEN
Sie benötigen selbstverständlich einen Streamer, sowie MiNT, MultiTOS
oder MagiC.
Für die Verwendung des XFS MUSS der Streamer Rückwärts-Spacing beherrschen.
Im Allgemeinen können das heutzutage alle Streamer, aber ältere Geräte
unterstützen dies nicht immer (zB Tandberg TDC 3620 mit Firmware 3.0)
INSTALLATION
-MiNT:
Kopieren sie SCSIDRV.PRG in Ihren Autoordner, bzw. installieren sie CBHD
als Festplattentreiber.
Kopieren Sie GEMAR.XFS in Ihr MiNT/MultiTOS-Verzeichnis (C:\MINT\ oder
C:\MULTITOS\)
Kopieren Sie die Datei GEMARXFS.PAR in eines der Verzeichnisse C:\MINT\,
C:\MULTITOS\, C:\SYS\ oder C:\
Passen Sie die Datei GEMARXFS.PAR an Ihre Bedürfnisse an (siehe unter
'PARAMETER')
Kopieren Sie TAPE.TTP in ein Verzeichnis, in dem es von Ihrer Shell
gefunden wird.
Kopieren Sie GEMARCNF.CPX in Ihr CPX-Verzeichnis.
Bei dem nächsten Booten mit MiNT/MultiTOS ist der Treiber installiert.
-MagiC:
Kopieren sie SCSIDRV.PRG in Ihren Autoordner, bzw. installieren sie CBHD
als Festplattentreiber.
Für MagiC >= 4.0 sollten sie den neuen MagiC-Loader MAGXBOOT in ihren
Autoordner legen und SCSI.RAM in das Wurzelverzeichnis ihres
Bootlaufwerkes.
Kopieren Sie GEMARXFS.PRG in den Autoordner (hinter SCSIDRV.PRG) oder als
GEMARXFS.XFS in \GEMSYS\MAGIC\XTENSION\ (nur wenn SCSI.RAM, bzw. CBHD
installiert)
Kopieren Sie die Datei GEMARXFS.PAR in das Wurzelverzeichnis ihres
bootlaufwerkes.
Passen Sie die Datei GEMARXFS.PAR an Ihre Bedürfnisse an (siehe unter
'PARAMETER')
Kopieren Sie TAPE.TTP in ein Verzeichnis, in dem es von Ihrer Shell
gefunden wird.
Kopieren Sie GEMARCNF.CPX in Ihr CPX-Verzeichnis.
Bei dem nächsten Booten mit MagiC ist der Treiber installiert.
Der Treiber kann auch nachträglich von Hand gestartet werden.
VERWENDUNG DES XFS
Das Einbinden eines GEMAR-Backups als logisches Laufwerk können Sie
entweder über das CPX oder über TAPE.TTP steuern.
Zur Verwendung von TAPE.TTP sollten Sie die beiliegende Manual-Page lesen.
Ein GEMAR-Backup wird als Laufwerk eingeblendet, indem im CPX-Modul der
Button 'XFS laden' angewählt wird. Nach dem Einlesen des Index vom Band
steht der Inhalt des Bandes in dem in der Parameterdatei angegebenen
Laufwerk zur Verfügung.
Von diesem Laufwerk aus können Sie Dateien kopieren, Programme starten und
alles andere, was mit einer Festplattenpartition auch geht.
Was jedoch nicht funktioniert, ist Dateien auf das Laufwerk zu kopieren.
***************************** ACHTUNG!! **********************************
Entnehmen Sie auf keine Fall das Band, ohne es vorher über das CPX
oder TAPE.TTP entladen zu haben!
VERWENDUNG DES DEVICE
Laden Sie das Band über TAPE.TTP, oder über das CPX-Modul mit 'DEV laden'.
Danach können Sie mit ALLEN Programmen auf das Band zugreifen.
Beachten Sie, da₧ es nicht möglich abwechselnd Daten zu lesen und zu
schreiben. Dies ist mit SCSI-Streamern nicht möglich und liegt in der
Natur eines Streamers.
Entweder man schreibt vom Anfang des Bandes aus (dabei wird das Band
gelöscht!!), oder sie spulen das Band an das Ende, bevor Sie auf das Band
schreiben.
Somit können Sie zum Beispiel zum Austausch von Daten mit anderen Systemen
(OS9, Unix, Minx, Linux...) Bänder mit einem TAR schreiben/lesen.
Dazu geben Sie als Archiv einfach u:\dev\mt an.
Beispiele
tar -c u:\dev\mt c:\
Sichern aller Dateien von Laufwerk C: auf das Band
tar -t u:\dev\mt
Inhaltsverzeichnis des TAR-Archives auf dem Band anzeigen.
Genauso kann natürlich cpio verwendet werden, oder man sichert einfach aus
einem Editor heraus eine Datei als U:\dev\mt.
***************************** ACHTUNG!! **********************************
Entnehmen Sie auf keine Fall das Band, ohne es vorher über das CPX
oder TAPE.TTP entladen zu haben!
PARAMETER
Die Parameterdatei enthält alle nötigen Informationen für die Ansprache des
Streamers und die Einbindung des Treibers.
-DEVICE = drv
Der Laufwerksbuchstabe, unter dem das XFS installiert wird.
-XFSNAME = name
Mit neueren Versionen von MiNT (>= 1.08) kann das Gerät unter einem
Namen in U:\ angelegt werden. Wenn ein MiNT >= 1.08 aktiv und XFSNAME
angegeben sind, wird das Gerät auf diese Weise angemeldet, ansonsten
als das in DEVICE angegebene Laufwerk.
Der Ordner erscheint nur dann in Laufwerk U:, wenn ein Band als XFS
geladen ist.
ACHTUNG: Bitte beachten Sie die Informationen zu EINSCHRÄNKUNGEN
-BUFFER = num
Grö₧e des Puffers in kByte, der zur Pufferung von Lesezugriffen auf
u:\dev\mt verwendet wird, wenn die Pufferung eingeschaltet ist.
Au₧erdem die Puffergrö₧e für Schreibzugriffe auf u:\dev\mt (kann nicht
abgeschaltet werden)
-BUFFERED = ON
Die Pufferung von u:\dev\mt beim Lesen. Als Default ist die Pufferung
abgeschaltet, kann aber mittels TAPE.TTP jederzeit eingeschaltet
werden.
-PREMSGTIME = num
-POSTMSGTIME = num
Die von GEMAR als 'Wait vor SCSI' und 'Wait nach SCSI' bekannten Werte
(in ticks)
-DATATIMEOUT = num
-LOADTIME = num
-REWINDTIME = num
-SPACETIME = num
Die von GEMAR als 'Data-Timeout', 'Load-Timeout', 'Rewind-Timeout' und
'Space-Timeout' bekannten Werte (in Sekunden)
-BLOCKSIZE = num
Die Blockgrö₧e des Streamers
-UNIT = DMA|ALIA|SCSI
Der Port, an dem der Streamer angeschlossen ist
-SCSIID = num
Die SCSI-Id des Streamers. Wird bei DMA ignoriert
-QFA = NONE|SEEK|LOCATE
Fähigkeiten des Streamer zu Quick-File-Access.
-CMD = LOAD|UNIT_READY|MODE_SELECT|PREVENT_REMOVAL
Zu verwendende Kommandos des Streamers.
Geben Sie einfach die Parameter an, die Sie auch in GEMAR verwenden.
Sollen mehrere Kommandos gesetzt werden, so können Sie die Zeile
mehrfach schreiben, z.B.
CMD = LOAD
CMD = MODE_SELECT
CMD = PREVENT_REMOVAL
-KEYFILE = path\name
Die Lage des Keyfiles von GEMAR auf Ihrer Festplatte. Diese Datei wird
beim Laden eines XFS benötigt, um zu erkennen, ob der vordere Index
gültig ist.
INTERNA
Falls virtuelles oder alternatives (FAST) RAM vorhanden ist, installiert
GEMAR.XFS eine XFRB-Struktur:
struct {
int version; /* Version des XFRB-cookies, $0100 = 1.00 */
char *xflock; /* extended flock, Semaphore */
char *buffer; /* Adresse eines Puffers im ST-RAM, mindestens 64K */
long size; /* Puffergrö₧e */
} XFRB;
Der XFRB stellt Gerätetreibern (z.B. für Streamer), insbesondere für die
ACSI-Schnittstelle, eine Alternative zum _FRB des BIOS zur Verfügung und
verhindert, da₧ es zu Kollisionen kommt, falls ein Festplattentreiber (z.B.
bei Systemen mit virtuellem Speicher) zur gleichen Zeit den _FRB ansprechen
will, wie der Gerätetreiber. Synchronisiert werden die Zugriffe über xflock.
Ist die Semaphore gesetzt, darf also nur das Programm den XFRB benutzen, das
die Semaphore gesetzt hat.
Fals die Struktur bereits von einem anderen Programm angelegt ist, wird sie
vom Treiber benutzt. GEMAR benutzt ebenfalls diesen Puffer, wenn er vorhanden
ist.
EINSCHRÄNKUNGEN
Die unregistrierte Version kann im XFS-Betrieb nur 15 Dateien bearbeiten
(15 mal Fopen).
Danach wird ein Zugriff mit EACCDN abgebrochen.
Es ist nicht möglich auf dem Band Daten zu verändern, oder Daten auf das
Band zu kopieren. Dies liegt an der Technik von Streamern.
Bei Streamern, die am Bandende auf Request Sense nicht BLANK CHECK, VADD
und fehlende Blöcke in den Infobytes melden, kann der Treiber bei Reads
von u:\dev\mt evtl. das Bandende nicht sauber erkennen.
Dies kann unter Umständen zu ewigem Lesen verdonnern (zB TAR auf einem
Band ohne Abschlu₧-Header)
Zur Zeit kann nur das erste Backup auf dem Band bearbeitet werden.
Verschlüsselte Backups (Password) können nicht benutzt werden.
Bänder, die mit GEMAR < 2.0 geschrieben wurden, können nicht gelesen
werden.
In MiNT 1.08 und 1.09 sind zwei Fehler, die leider gro₧e Schwierigkeiten mit
XFS-Treibern machen, die nicht auf der Festplatte liegen.
Daher mu₧ man entweder MiNT 1.04 verwenden, oder die folgenden Patches in
MiNT machen:
****************************************************************************
MiNT 1.08:
Korrektur von FILESYS.C durchführen:
In Prozedur disk_changed:
*************************** FILESYS.C *******************************
TRACE(("calling mediach(%d)",d));
r = (int)mediach(d);
TRACE(("mediach(%d) == %d", d, r));
if (r < 0) return r;
if (r == 1) { /* drive _may_ have changed */
r = rwabs(0, tmpbuf, 1, 0, d, 0L); /* check the BIOS */
if (r != E_CHNG) { /* nope, no change */
TRACE(("rwabs returned %d", r));
return (r < 0) ? r : 0;
}
r = 2; /* drive was definitely changed */
}
*********************************************************************
Dabei hat Eric leider eins nicht bedacht:
-mediach ruft den Festplattentreiber auf (callext1 auf hdv_mediach)
Dieser kennt natürlich nur Festplattenlaufwerke und keine XFS-Treiber
die nicht auf der Platte aufsetzen (CD-ROM, RAMFS, Streamer).
Daher antwortet der Treiber mit EUNDEV und MiNT meldet das Laufwerk als
fehlerhaft.
Daher folgende Änderung:
************************* FILESYS.C *********************************
TRACE(("calling mediach(%d)",d));
r = (int)mediach(d);
TRACE(("mediach(%d) == %d", d, r));
/* r = EUNDEV:
* maybe the drive is not based on Harddisk, so the HDdriver says
* EUNDEV.
* Ask the Filesystem for Mediachange.
* SE 16.08.93
*/
if (r == EUNDEV)
{
TRACE(("request XFS for media change"));
fs = drives[d]; /* get filesystem associated with drive */
if (fs)
if ((*fs->dskchng)(d)) { /* does the fs agree that it changed? */
drives[d] = 0;
changedrv(d); /* yes -- do the change */
return 1;
}
else return 0;
}
if (r < 0) return r;
*********************************************************************
***************************************************************************
FS_UNMOUNT kann nicht funktionieren, da in UNIFS.C in uni_fscntl der
Filecookie nicht auf eine UNIFILE-Struktur zeigt, sondern auf eine
Struktur des XFS.
Daher folgende Änderung, bis Eric sich dazu äu₧ert:
UNIFS.C in uni_fscntl:
********************************************************************
} else if (cmd == FS_UNMOUNT) { /* remove a file system's directory */
struct fs_descr *d = (struct fs_descr*)arg;
FILESYS *fs;
UNIFILE *u;
/* first check that directory exists */
r = uni_lookup(dir, name, &fc);
if (r != 0) return EFILNF; /* name does not exist */
if (!d) return EFILNF;
if (!d->file_system) return EFILNF;
if (d->file_system != fc.fs)
return EFILNF; /* not the right name! */
/* fc->index does not point to a UNIFILE struct, as i can see
* in uni_lookup.
* So I'll get u via search of u_root.
* With this modification FS_UNMOUNT works fine with my XFS.
* SE 30.08.93
*/
for (u = u_root; u && u->fs != d->file_system; u = u->next)
{
}
/* u = (UNIFILE*)fc.index; Korrigiert: SE 30.08.93 */
#endif
***************************************************************************
HISTORY
-1.0 vom 15.10.93:
erstes öffentliches Release
-1.01 vom 27.10.93
-Wie es kommen mu₧te: ein kleiner Bug führte dazu, da₧ der SCSI-Port des
Falcon nicht angesprochen werden konnte.
-1.10 vom 05.03.94
-Installation von XFRB 1.01
-Interne Änderungen an den SCSI-Libs.
-Wie auch in GEMAR keine Unterscheidung mehr zwischen Falcon und
TT-SCSI. Im Parameterfile kann jetzt einfach 'SCSI' verwendet
werden.
-3.00 vom 24.11.95
-BugFix für neuere MiNT-Lib
-alles, was in GEMAR auch passiert ist.
-Versionsnummer zu GEMAR parallelisiert
-3.00 vom 30.11.95
-Korrektur bei der Suche nach GEMARXFS.REG
-3.01 vom 1.12.95
-neue SCSI-Routinen im Archiv (BugFix Falcon)
-Korrektur beim Laden der Registerdatei. Magic-Pfad war falsch
geschrieben
Steffen Engel, 24.11.95