Zip-Laufwerk HOWTO Thomas King (king@t-king.de) v2.0, 17. März 1999 Installation und Konfiguration eines Iomega Zip-Laufwerkes. 1. Einleitung Dieses Dokument soll eine Anleitung zur Konfiguration und Nutzung des Iomega Zip-Laufwerkes unter Linux sein. Das Iomega Zip-Laufwerk ist mittlerweile sehr populär. Dies ist vor allem auf folgende Punkte zurückzuführen: · Die Wechselmedien (Zip-Disketten) sind nicht viel größer als normale 3,5" Disketten. · Die Speicherkapazität der Wechselmedien (Zip-Disketten) beträgt 96 Megabyte. · Das Laufwerk ist relativ günstig in der Anschaffung. · Durch die geringe Größe der Wechselmedien und des Laufwerkes ist es sehr gut zu transportieren. 1.1. Danksagung Besonders danken möchte ich an dieser Stelle folgenden Leuten: · Collin Mulliner - er verwaltete diese HOWTO bis zur Version 1.0 · Petra Merz - sie gab mir die Ruhe und Kraft diese HOWTO zu schreiben · alle, die mich mit Informationen versorgt haben 1.2. Copyright Diese Dokument ist urheberrechtlich geschützt. Das Copyright für die englische Zip Drive mini-HOWTO, auf der diese Dokument teilweise basiert, liegt bei Kyle Dansie (dansie@ibm.net). Das Copyright für die deutsche Version liegt bei Thomas King (king@t-king.de). Das Dokument darf gemäß der General Public License verbreitet werden. Insbesondere bedeutet dieses, daß der Text sowohl über elektronische wie auch physikalische Medien ohne die Zahlung von Lizenzgebühren verbreitet werden darf, solange dieser Copyright Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist das Deutsche Linux HOWTO Projekt hierüber zu informieren. 1.3. Neuste Version Die neuste Version dieser HOWTO findet man hier: http://www.t-king.de/linux/DE-Zip-Laufwerk-HOWTO.html 2. Das Zip-Laufwerk Es gibt mittlerweile 7 Versionen des Iomega Zip-Laufwerkes. Alle diese Versionen akzeptieren die gleichen Wechselmedien (Zip-Disketten). Das Wechselmedium hat 96 Zylinder mit 2048 Sektoren, von denen jeder 512 Bytes speichern kann. Dies ergibt eine gesamte Speicherkapazität von 96 Megabyte. Die externen Laufwerke gibt es in diesen Versionen: · Parallel Port · SCSI · Plus · USB Die internen Laufwerke gibt es in diesen Versionen: · SCSI · ATAPI · IDE Die internen Versionen des Laufwerks können in 3,5"- oder 5,25"-Laufwerksschächte eingebaut werden. Die externen Version werden in einem blauen Plastikgehäuse mit externer Stromversorgung geliefert. Alle Versionen des Zip-Laufwerkes haben einen Auswurfknopf für die Wechselmedien auf der Frontseite. Linux sperrt diesen Auswurfknopf, wenn das Medium »gemountet« ist. Wird der Auswurfknopf gedrückt, während das Medium »gemountet« ist, so wird es erst ausgeworfen, wenn das Medium »ungemountet« ist. 2.1. Parallel Port Version Die Parallel Port Version des Zip-Laufwerkes hat zwei DB25 Anschlüsse: der männliche Anschluß (DB25M) wird an den Parallelport des Computers angeschlossen, der andere (weiblich, DB25F) wird dazu benutzt, einen Drucker durchzuschleifen. Die aktuelle stabile Kernel-Version 2.0.36 unterstützt mittlerweile auch das simultane Benutzen eines Zip-Laufwerkes und eines Druckers am selben Parallelport. Der Treiber, der bei der Kernel-Version 2.0.36 dabei ist, unterstützt jetzt auch EPP-, ECP- und PS/2-Parallelports. 2.2. Externe SCSI Version Die externe SCSI Version des Zip-Laufwerkes hat zwei DB25F Anschlüsse und zwei Konfigurationsschalter. Mit einem der Schalter wählt man die SCSI-ID Adresse des Zip-Laufwerkes, wobei nur die IDs 5 und 6 zur Auswahl stehen. Der andere Schalter aktiviert den eingebauten Terminator, für den Fall, daß das Zip-Laufwerk das letzte SCSI-Gerät am Bus ist. Der 25 Pin SCSI-Anschluß ist ein Macintosh SCSI-Anschluß. Ein 25 auf 50 Pin Adapter ist im Handel leicht zu bekommen. Bei der Wahl der SCSI-ID Adresse sollte man sicher sein, daß kein anderes Gerät am SCSI-Bus diese ID-Adresse besitzt. Auch sollte man darauf achten, daß nur das letzte physikalische Gerät am SCSI-Bus die Terminierung aktiviert hat oder das ein externer Terminator angeschlossen ist. Wenn man ein internes SCSI-CD-ROM oder eine interne SCSI-Festplatte an dem gleichen SCSI-Adapter wie das externe Zip-Laufwerk angeschlossen hat, so muß man die Terminierung auf dem SCSI-Adapter deaktivieren. Jeweils das physikalisch letzte Gerät am SCSI-Bus muß die Terminierung eingeschaltet haben (extern wie intern). Nährere Information zu SCSI und Linux findet man unter der SCSI HOWTO. 2.3. Zip Zoom SCSI-Adapter Iomega verkauft einen SCSI-Adapter unter dem Namen Zip Zoom; dieser Adapter ist ein SCSI-Adapter, der auf dem Design von Adaptecs AHA1520 basiert. Er hat einen externen DB25F Anschluß (passend zu dem Anschluß des Zip-Laufwerkes). Der Adapter wird mit dem Treiber für den Adaptec AHA152x unterstützt. 2.4. Plus Version Die Plus Version des Zip-Laufwerkes ist eine Kombination aus SCSI- und Parallel Port-Version. Das Laufwerk hat ein SCSI- und ein Parallel Port-Anschluß (beide DB25). Das Laufwerk wählt über die Iomega AutoDetect Technologie den jeweiligen aktiven Anschluß aus. Die Terminierung geschieht automatisch. 2.5. USB Version Linux unterstützt im Moment noch keine USB Geräte. Deshalb kann man die USB Version unter Linux nicht betreiben. 2.6. Interne SCSI Version Die interne SCSI Version hat eine Standard 50 Pin SCSI-Schnittstelle und die gleichen Schalter wie die externe SCSI Version. Auch hier gilt es, das gleiche wie bei der externen SCSI Version zu beachten (SCSI-ID Adresse, Terminierung). 2.7. ATAPI Version Die ATAPI Version hat eine normale 40 Pin ATAPI-Schnittstelle und einen Jumper mit dem man die Master/Slave/Cableselect Konfiguration vornehmen kann. An einem E-IDE-Bus dürfen maximal zwei Geräte hängen, wobei jeweils eines dieser Geräte Master bzw. Slave ist. Wenn nur ein Gerät an einen E-IDE-Bus hängt, so muß es Master sein. 2.8. IDE Version Die IDE Version des Zip-Laufwerkes gibt es schon seit einiger Zeit nicht mehr auf dem Markt zu kaufen. Der Aufbau ist gleich wie bei der ATAPI Version. Der Nachteil dieser Version ist, das es wie eine IDE- Festplatte erkannt wird und man deshalb keine SCSI-zu-ATAPI Übersetztung machen kann, was bedeutet, das man die mtools nicht verwenden kann. 3. Kernelkonfiguration Um neue Hardware unter Linux betreiben zu können, ist es fast immer notwendig, einen neuen Kernel zu konfigurieren und kompilieren. Für weitergehende Informationen zur Konfiguration und Kompilierung des Kernel gibt es die Linux Kernel HOWTO. Besonders hilfreich ist die Dokumentation, die mit dem Kernel mitgeliefert wird; alle Dateien sind im Verzeichnis Documentation/ des Kernel Sources zu finden. Der erste Schritt zu einem neuen Kernel ist die Konfiguration. Hier wählt man die Kernelkomponenten aus, die man braucht. Als erstes wechselt man in das Verzeichnis /usr/src/linux. Es gibt verschiedene Wege, die Konfiguration zu ändern. Unter X-Window kann man make xconfig nutzten. Im Zeileneingabemodus kann man make config oder make menuconfig benutzten. Der einfachste Weg dürfte wohl xconfig sein. Damit die Konfigurationsänderungen wirksam werden, muß man den Kernel kompilieren. Dies macht man am besten so: make dep clean zImage modules modules_install zlilo Nach einem reboot sollten die Treiber geladen und das Zip-Laufwerk erkannt werden. 3.1. SCSI Version (intern, extern) Um das Iomega Zip-Laufwerk in der SCSI Version unter Linux benutzten zu können, muß der Kernel so konfiguriert werden, daß er SCSI- Laufwerke und SCSI-Adapter erkennt. Ist schon ein SCSI-Laufwerk unter Linux erkannt, so braucht der Kernel nicht mehr neu konfiguriert und kompiliert werden. Ansonsten muß man den Kernel wie folgend konfigurieren und danach kompilieren. Bei der Konfiguration muß man im Bereich SCSI-Support SCSI support = Y setzten. SCSI disk support = Y muß auch gesetzt werden. Im Bereich SCSI low-level driver muß man den angeschlossen SCSI-Adapter auswählen, sofern dieser nicht schon in der alten Konfiguration ausgewählt wurde. Nun kann man das Konfigurationstool verlassen. Man kann alles oder Teile der SCSI-Konfiguration als Module laden. Man muß beim Booten nur auf die richtige Reihenfolge achten: scsi.o, sd.o, SCSI-Adapter-Treiber 3.2. Zip Zoom SCSI-Adapter Damit der Zip Zoom SCSI-Adapter erkannt wird, muß man einen Boot- Befehl ähnlich aha152x=0x340,11,7,1 übergeben oder in die Datei /etc/lilo.conf in der append-Zeile eintragen. Der Bootbefehl übergibt dem Treiber die Portadresse und den Interrupt des SCSI-Adapters. Man muß darauf achten, daß die Jumper auf der Karte mit den Zahlen übereinstimmen. Auch empfiehlt sich hier, die BootPrompt HOWTO zu lesen. 3.3. Plus Version Die Plus Version des Zip-Laufwerkes nutzt nicht den PPA Treiber, sondern den IMM Treiber. Die Entwicklung des Treibers ist noch im Alpha-Stadium, was man auch an der aktuellen Versionsnummer 0.18 erkennen kann. Deshalb ist die Konfiguration des Kernels auch etwas schwieriger. Man muß den Kernel wie folgt konfigurieren und kompilieren. Bei der Konfiguration muß man im Bereich SCSI-Support SCSI support = Y setzten. SCSI disk support = Y muß auch gesetzt werden. Im Bereich Loadable module support muß man Enable loadable module support = Y setzten. Im Bereich Character devices muß man Parallel printer support = M setzten. M steht hier für Module. Man muß an dieser Stelle keinen SCSI low-level Treiber auswählen. Diesen werden wir an späterer Stelle selber kompilieren. Damit man die neuste Version des IMM Treibers hat, sollte man diesen von http://www.torque.net/~campell/imm.tar.tar herunterladen. Mit tar xvfz imm.tar.tar kann man den Treiber entpacken; dieses geschieht am besten im Verze­ ichnis /usr/src. Mit dem Befehl make kompiliert man nun den Treiber und erhält das Modul imm.o. Diese Datei kopiert man mit cp imm.o /lib/modules/$(uname -r)/scsi in das Modulverzeichnis, auf das der Kernel zugreift. Wenn das Modul lp geladen ist (kann man mit lsmod herausfinden), so kann man das Modul mit dem Befehl rmmod lp »entladen«. Mit dem Befehl insmod imm wird dann das Modul imm geladen. Nun sollte alles funktionieren. Wenn das Zip-Laufwerk nicht eingeschaltet oder nicht mit dem Computer verbunden ist, so bekommt man die Meldung init_module: Device or resource busy und das Modul IMM wird nicht geladen. Wenn das Zip-Laufwerk eingeschaltet und mit dem Computer verbunden ist, aber keine Zip-Diskette im Laufwerk ist, so bekommt man die Meldung, das die Partitionstabelle nicht gelesen werden kann. Dies macht aber nichts, da die Partitionstabelle automatisch gelesen wird, wenn man eine Diskette einlegt. Wenn eine Diskette im Laufwerk ist, so bekommt man einige Informationen angezeigt. 3.4. Parallel Port Version Um das Iomega Zip-Laufwerk in der Parallel Port Version unter Linux benutzten zu können, muß der Kernel so konfiguriert werde, daß er SCSI-Laufwerke und Parallel Port als Laufwerksanschluß erkennt. Bei der Konfiguration muß man im Bereich SCSI-Support SCSI-Support = Y setzten. SCSI disk support = Y muß auch gesetzt werden. Im Bereich SCSI low-level driver muß man IOMEGA Parallel Port Zip drive SCSI support = M setzten. M steht hier für Modul, d.h. der Treiber wird erst bei Bedarf als Modul in den Speicher geladen und aktiviert. Im Bereich Character Devices muß man Parallel Printer support = Y setzten. Man muß die einzelnen Treiber an irgendeiner Stelle laden. Bei den meisten Linux-Distrubitionen muß man einfach einige Zeilen in den Startskripten ändern. Wenn man automatisches Laden von Kernelmodulen aktiviert (in der Kernelkonfiguration) hat, sollte alles von alleine gehen. 3.5. ATAPI und IDE Version Um das Iomega Zip-Laufwerk in der ATAPI bzw. IDE Version unter Linux benutzten zu können, muß der Kernel so konfiguriert werden, daß er ATAPI- bzw. IDE-laufwerke erkennt. Bei der Konfiguration muß man im Bereich Floppy, IDE, and other block devices Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support = Y setzten. Include IDE/ATAPI FLOPPY support = Y muß auch gesetzt werden. 4. Benutzung des Zip-Laufwerkes Nachdem der Kernel mit den notwendigen Treiber ausgestattet ist, sollte der Kernel beim Booten die Laufwerke und ggf. den Adapter erkennen. Bei der folgenden Diskussion gehe ich davon aus, daß man die Module geladen hat oder daß die Modules automatisch geladen werden. In den meisten Bereichen verhalten sich die Parallel Port- und SCSI- Version gleich. Die Parallel Port-Version ist aber etwas langsamer. 4.1. Identifizierung des Laufwerkes beim Booten Beim Booten von Linux wird eine Vielzahl von Informationen ausgegeben, bspw. über den Adapter, das Laufwerk und die Diskette in Laufwerk. Wenn man beim Booten keine Diskette im Laufwerk hat, werden einige Informationen nicht angezeigt. Wo und welche Informationen angezeigt werden, hängt davon ab, wie man sein System konfiguriert hat. Normalerweise werden die Informationen auf der System-Konsole angezeigt. Einige Informationen werden in /var/log/messages abgespeichert. Die Kernelmeldungen kann man mit dem Befehl dmesg anzeigen. Hier ein paar Beispiel was ein Kernel beim Booten anzeigt: 4.1.1. Parallel Port Version/SCSI Version ppa: Version 1.28s Probing port 03bc Probing port 0378 SPP port present EPP test failed on Read/Write ppa: 0x0378 SPP Probing port 0278 scsi4 : Iomega parport ZIP drive scsi : 1 host. Vendor: IOMEGA Model: ZIP 100 Rev: D.08 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi5, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda1 Die erste Zeile zeigt Informationen über die Initialisierung des Low- Level Treibers für den SCSI Adapter, in diesem Fall der PPA Treiber. Die zwei folgenden Zeilen zeigen, daß nach dem Zip-Laufwerk bzw. nach dem Parallel-Port, an dem das Zip-Laufwerk angeschlossen ist, gesucht wird. Es folgt eine Liste mit allen SCSI-Geräten, die auf dem SCSI- Bus gefunden wurden. Zeile 12 gibt Information über den Gerätenamen, der diesem SCSI-Gerät zugewiesen wurde, in diesem Fall /dev/sda. Jetzt werden noch alle Partitionen des Geräts (Zip-Diskette) angezeigt (hier nur /dev/sda1). 4.1.2. ATAPI Version hdc: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive Partition check: hdc: 98304kB, 196608 blocks, 512 sector size hdc: 98304kB, 96/64/32 CHS, 4096 kBps, 512 sector size, 2941 rpm hdc: hdc4 Die erste Zeile zeigt, daß das Zip-Laufwerk an hdc hängt (Master am zweiten IDE-Bus). Jetzt werden noch alle Partitionen des Geräts (Zip- Diskette) angezeigt (hier nur /dev/hdc4). Wenn man eine neue Zip-Diskette direkt von Iomega verwendet, zeigt der Partition check immer /dev/xxx4. Die Kernelausgaben können Hinweise darauf geben, ob etwas falsch konfiguriert wurde; deshalb lohnt es sich immer, diese genau anzuschauen. 4.2. fdisk, mke2fs, mount, usw. Nachdem das Zip-Laufwerk vom Kernel erkannt und die Treiber geladen wurden, kann man mit den normalen Linux Laufwerksbefehlen Daten bearbeiten. Mit fdisk kann man die Partitionstabelle verändern. Mit dem Befehl mke2fs kann man die Zip-Diskette mit dem ext2-Dateisystem formatieren. Der Befehl mount hängt eine formatierte Partition der Zip-Diskette in die Verzeichnisstruktur ein. Am besten studiert man sehr genau die Manual Pages zu den einzelnen Programmen. Da teilweise die Parameter von Version zu Version unterschiedliche Belegungen haben, sollte man sehr vorsichtig die einzelnen Programme handhaben. Es besteht die Gefahr eines Datenverlust, der nicht mehr rückgängig gemacht werden kann. Ich werde zwei Szenarien beschreiben. 4.2.1. Eine DOS formatierte Zip-Diskette Wenn man eine Zip-Diskette mit einer DOS-Dateistruktur hat, die von Iomega erstellt wurde, so ergibt ein Partitionscan, daß die Diskette eine Partition hat (/dev/xxx4). Man muß ein Verzeichnis anlegen, in das die Partition gemountet werden soll; wir nehmen hier einfach mal /mnt/zip. Das Verzeichnis erstellt man mit folgendem Befehl: mkdir /mnt/zip Nun muß man die Partition der Zip-Diskette in das Verzeichnis mounten: mount -t vfat /dev/hdc4 /mnt/zip Man kann auch msdos anstatt vfat verwenden. vfat kann im Gegensatz zu msdos mit langen Dateinamen umgehen. Damit die Dateisystem auch ver­ wendet werden können, müssen sie im Kernel als Modul oder fest einkom­ piliert sein. Wähernd die Diskette »gemountet« ist, kann man sie nicht mit Druck auf den Auswurfsknopf aus dem Zip-Laufwerk herausholen. Wenn man mit der Arbeit an der Zip-Diskette fertig ist, muß man sie »unmounten« damit sie sich aus dem Laufwerk holen läßt. Dies geschieht mit folgendem Befehl: umount /mnt/zip 4.2.2. Zip-Diskette mit ext2 formatieren Wenn man die Daten auf einer Zip-Diskette löschen und ein ext2fs- Dateisystem anlegen möchte, muß man folgende Programme aufrufen: fdisk /dev/hdc Mit »d« löscht man eine bestehende Partition. Mit dem Befehl »n« erzeugt man eine neue Partition. Der ersten Partition kann man die Nummer »1« geben. Mit »w« schreibt man dann die Partitionstabelle auf die Diskette. Mit »q« beendet man fdisk. Mit dem Befehl mke2fs /dev/hdc1 formatiert man dann die Partition. Mit dem Befehl mount -t ext2 /dev/hdc1 /mnt/zip wird dann die Zip-Diskette mit dem ext2-Dateisystems in das Verzeich­ nis /mnt/zip gemountet. 4.3. ZipTool Zip-Disketten kann man auch mit einem Schreibeschutz versehen. Dieser Schreibschutz wird über eine Software gesteuert. Unter Linux gibt es auch ein Programm, das dieses Funktion bietet. Man kann das Programm von hier http://www.cnct.com/~bwillmot herunterladen. 4.4. Performance Die unterschiedlichen Schnittstellen der Zip-Laufwerke haben großen Einfluß auf die Geschwindigkeit der Laufwerkes. So ist natürlich eine ATAPI-Version einer Parallel-Port Version (mit einem alten PPA- Treiber) in Sachen Geschwindigkeit bei weitem überlegen. Mit einem neueren PPA-Treiber ist der Unterschied schon nicht mehr so groß. Deshalb sollte man immer die neuste Version der Treiber verwenden. Generell läßt sich sagen, daß Transferraten von ca. 1,4 MB/s - 700 kB/s realistisch sind. 5. FAQ (Frequently asked questions) Wird EPP/ECP im PPA unterstützt? Ab der Version 1.41 ist die EPP-Unterstütztung implementiert. Kann man Linux vom Zip-Laufwerk booten? Hierbei kommt es darauf, welche Schnittstelle das Zip-Laufwerk benützt. Wenn man einen SCSI-Adapter mit eigenem BIOS verwendet, bei dem man das Booten von SCSI-ID 5 oder 6 einstellen kann, so ist es mit der SCSI-Version möglich. Wenn man ein Motherboard-BIOS hat, das Booten von einem ATAPI-Zip-Laufwerk ermöglicht, ist auch dies möglich. Booten von Zip-Laufwerken über den Parallel-Port ist nicht möglich. Warum verwendet Iomega die Partitionsnummer 4? Dies ist eine sehr beliebte Frage. Aber eigentlich gibt es dafür keine logische Erklärung. Wie kann die Zip-Diskette beim Booten »gemountet« werden? Man muß eine Zeile in der Datei /etc/fstab eintragen. Verwendet man immer Disketten mit einem DOS-Dateisystem, so muß die Zeile folgendermaßen aussehen: /dev/hdc4 /mnt/zip vfat defaults 0 0 Einige Linux-Distributionen lassen fsck über alle Partitionen laufen, die in der Datei /etc/fstab stehen. Dies kann zu Problemen führen, wenn keine Diskette im Laufwerk ist. Hier muß man ggf. die Startskripte von Hand anpassen. 6. Weitere Informationsquellen Installieren von Linux über ein Zip-Laufwerk · http://metalab.unc.edu/LDP/HOWTO/mini/Install-From-ZIP.html Informationen über LILO · http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html · http://www.tu-harburg.de/dlhp/HOWTO/mini/DE-LILO-HOWTO.html Informationen über BootPrompts · http://metalab.unc.edu/LDP/HOWTO/BootPrompt-HOWTO.html · http://www.tu-harburg.de/dlhp/HOWTO/DE-BootPrompt-HOWTO.html Installation von Linux auf ein Zip-Laufwerk und der Betreib von Linux von einem Zip-Laufwerk · http://metalab.unc.edu/LDP/HOWTO/ZIP-Install.html Linux Kernel HOWTO · http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html · http://www.tu-harburg.de/dlhp/HOWTO/DE-Kernel-HOWTO.html Iomega Homepage · http://www.iomega.com/ · http://www.iomega.de/