Inhalt

4. Installation

Die Installation eines CD-ROM Laufwerkes unter Linux erfolgt in diesen Schritten:

  1. Installation der Hardware
  2. Konfigurieren und Übersetzen des Linux Kernels
  3. Gerätedateien anlegen und Boot Parameter setzen
  4. den neuen Linux Kernel booten
  5. die Medien mounten

Die nächsten Abschnitte behandeln jeden Schritt im Detail.

4.1 Installation der Hardware

Folgen Sie den Anweisungen des Herstellers, um die Hardware zu installieren, oder lassen Sie den Händler die Installation durchführen. Die Details variieren, je nach dem, ob es sich um ein internes oder externes Laufwerk handelt, und welche Schnittstelle verwendet wird. Es gibt unter Linux keine speziellen Voraussetzungen zur Installation. Man muß eventuell Jumper am CD-ROM Laufwerk oder dem Controller setzen, um das Gerät zum Laufen zu bekommen; manche der Kernel Treiber haben Dokumentationsdateien, in denen man diese Informationen findet.

Wie in der Datei ide-cd erklärt wird, sollten ATAPI CD-ROMs auf »Single« oder »Master« gejumpert werden, und nicht auf »Slave«, wenn nur ein IDE Gerät an der Schnittstelle hängt, obwohl diese Einschränkung bei neueren Kerneln nicht mehr zwangsläufig ist.

4.2 Konfigurieren und Übersetzen des Kernels

Wenn Sie Linux von einer CD-ROM installieren, werden Sie wahrscheinlich eine Boot- und/oder Root-Diskette verwenden, die mit der Linux Distribution geliefert wird. Wenn möglich, sollten Sie eine Boot-Diskette mit dem Kernel Treiber für sein CD-ROM Laufwerk auswählen. Wenn Sie keine Boot Diskette mit dem nötigen CD-ROM Treiber finden können, haben Sie mehrere Möglichkeiten:

  1. Direkt von der CD-ROM booten, wenn das vom Rechner und der Linux CD unterstützt wird.
  2. Installation über ein Netzwerk
  3. DOS booten und die Linux Dateien auf die Festplatte kopieren.
  4. DOS booten und einen Satz Disketten erstellen, mit denen Linux installiert werden kann.
  5. Jemanden finden, der Ihnen die Boot Diskette mit den nötigen Treibern erzeugen kann.

Im Linux Installation HOWTO stehen mehr Informationen, wie man Linux installiert. Wenn Sie Linux auf CD-ROM gekauft haben, haben Sie vermutlich auch eine Installationsanleitung erhalten; oft in Form eines Booklet in der CD-Hülle und/oder als Dateien auf der CD.

Wenn Linux erst einmal installiert ist, werden die meisten Benutzer ihren eigenen Kernel erzeugen wollen,

Für Details, wie man einen Kernel erzeugt, sollten Sie das Linux Kernel HOWTO konsultieren. Ich werde hier einige Punkte ansprechen, die für CD-ROM Laufwerke spezifisch sind.

Offensichtlich muß man Unterstützung für sein CD-ROM Laufwerk einkompilieren, wenn man make config macht.

Wenn Sie ein ATAPI CD-ROM Laufwerk haben, müssen Sie mit yes auf folgende Fragen antworten:

Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]

Für SCSI CD-ROM Laufwerke schalten Sie diese Optionen ein:

SCSI support (CONFIG_SCSI) [Y/n/m/?]
SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]

Außerdem müssen Sie die Unterstützung für den SCSI Adapter einschalten, wenn Sie danach gefragt werden, z.B.

Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [Y/n/m/?]

Für CD-ROM Laufwerke mit proprietäre Schnittstellen muß man den entsprechenden Treiber auswählen. Sie können die Liste weiter oben verwenden, um den richtigen Treiber für Ihr Modell zu bestimmen.

Praktisch alle CD-ROMs verwenden das ISO-9660 Dateisystem, also müssen Sie folgendes auswählen:

ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]

Obwohl sie für den Betrieb von CD-ROMs nicht benötigt wird, möchten Sie eventuell die Unterstützung für die Soundkarte durch den Kernel einschalten und konfigurieren. Das Sound HOWTO kann hier als Referenz nützlich sein.

Danach sollten Sie die übliche Prozedur durchführen, um den Kernel zu übersetzen und zu installieren. Booten Sie den neuen Kernel nicht, bis Sie nicht die Gerätedateien angelegt und die Boot Parameter wie im nächsten Absatz beschrieben eingerichtet haben.

Das ISO-9669 Dateisystem und ziemlich alle CD-ROM Treiber können als ladbare Kernel Module übersetzt werden. Dieses Schema erlaubt es, die Kernel Treiber zu laden und zu entladen, ohne den Kernel neu zu booten, was Speicher spart. Ich würde empfehlen, die CD-ROM Installation zum Laufen zu bekommen, indem Sie zuerst die einkompilierten Treiber verwenden. Wie man Module verwendet, wird im Linux Kernel HOWTO beschrieben.

Wenn ein hier aufgeführter Laufwerkstyp nicht vom Kernel unterstützt wird, müssen Sie wahrscheinlich eine neuere Kernel Version verwenden.

Es ist möglich, daß Sie einen Treiber verwenden müssen, der separat von den Kernelquellen verteilt wird. Normalerweise muß dazu der Kernel gepatcht werden. Das Linux Kernel HOWTO beschreibt wieder, wie das funktioniert.

Beachten Sie, daß es ein Menü-basiertes Kernel Konfigurationsprogramm gibt, das man mit make menuconfig startet, und ein X11-basiertes, das mit make xconfig gestartet wird. Alle drei Konfigurationsmethoden bieten eine Online Hilfe.

4.3 Gerätedateien anlegen und Boot Parameter setzen

Der Kernel verwendet Gerätedateien, um herauszufinden, welchen Treiber er verwenden muß. Wenn Sie eine Standard Linux Distribution verwenden, werden die nötigen Dateien eventuell bei der Installation angelegt. Unter Slackware Linux gibt es beispielsweise ein Menü-basiertes Setup Tool, das CD-ROM Konfiguration bietet, und die meisten Systeme haben ein /dev/MAKEDEV Skript. Wenn Sie nicht diese Methoden verwenden, können Sie die eher manuelle Prozedur verwenden, die in diesem Abschnitt aufgeführt wird. Selbst wenn Sie eine dieser Methoden verwenden, wird empfohlen, daß Sie wenigstens die Gerätedateien gegen die Informationen in diesem Abschnitt prüfen.

Die Gerätedateien werden angelegt, indem man die für den Laufwerkstypen angegebenen Shell Kommandos ausführt. Dies sollte als Benutzer root ausgeführt werden. Beachten Sie, daß einige Linux-Distributionen leicht unterschiedliche Namen für CD-ROM Gerätedateien verwenden, als die hier angegebenen.

Es wird empfohlen, einen symbolischen Link auf das CD-ROM Gerät anzulegen, damit man sich den Namen leichter merken kann. Zum Beispiel würde man für ein IDE CD-ROM Laufwerk, daß das zweite Gerät am zweiten Controller ist, folgendermaßen einen Link anlegen:

# ln -s /dev/hdd /dev/cdrom

Wenn Sie Audio-CDs abspielen möchten, müssen Sie die Zugriffsrechte auf die Gerätedatei (die wirkliche Datei, nicht den Link) so setzen, daß alle Benutzer davon lesen können, d.h.

# chmod 664 /dev/hdd
# ls -l /dev/hdd
brw-rw-r--   1 root     disk      22,  64 Feb  4  1995 /dev/hdd

Wenn Linux gebootet wird, versuchen die Gerätetreiber herauszufinden, ob das entsprechende Gerät vorhanden ist, typischerweise indem sie spezifische Adressen testen. Viele der Treiber versuchen von selbst mehrere Adressen, benötigen aber wegen Unterschieden in der Konfiguration, möglichen Geräte Konflikten und Hardwarebeschränkungen Hilfe beim Identifizieren der Adresse und anderer Parameter. Die meisten Treiber unterstützen eine Option auf der Kernel Kommandozeile, die die Informationen an den Treiber weiterreicht. Das kann interaktiv geschehen, oder, was üblicher ist, durch den Bootloader konfiguriert werden. Mit LILO würde man zum Beispiel folgendes Kommando an die Datei /etc/lilo.conf anfügen:

append = "sbpcd=0x230,SoundBlaster"

Siehe in der LILO Dokumentation für mehr Informationen.

Im nächsten Abschnitt werde ich spezifische Punkte der individuellen Gerätetreiber diskutieren, einschließlich Gerätedateien, Boot Parameter und die Fähigkeiten der verschiedenen Treiber. Sie brauchen wahrscheinlich nur den Abschnitt über Ihren Laufwerkstyp zu lesen. Die Dokumentationen finden Sie üblicherweise im Verzeichnis /usr/src/linux/Documentation/cdrom.

Sbpcd Treiber

                        Autor: Eberhard Moenkeberg (emoenke@gwdg.de)
   Multisession Unterstützung: ja (nicht alle Laufwerke)
 Multiple drive Unterstützung: ja
Loadable module Unterstützung: ja
           Audio frames lesen: ja (nur CR-562, CR-563, CD-200)
                 Auto-probing: ja
                  Gerätedatei: /dev/sbpcd, major 25
          Konfigurationsdatei: sbpcd.h
         Kernel config Option: Matsushita/Panasonic CDROM support?
                Dokumentation: sbpcd

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

sbpcd=<IO-Adresse>,<Interface-Typ>

wobei der erste Parameter die Basis Adresse des Gerätes ist (z.B. 0x230), und <Interface-Typ> ist SoundBlaster, LaserMate oder SPEA. Siehe auch in der Datei sbpcd.h für Hinweise, welcher Schnittstellentyp zu verwenden ist. sbpcd=0 schaltet auto-probing aus und damit auch den Treiber.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/sbpcd b 25 0

Bis zu vier Laufwerke pro Controller werden unterstützt. Die nächsten drei Laufwerke am ersten Controller würden eine Minor Device Nummer von 1 bis 3 verwenden. Wenn man mehr als einen Controller hat, sollte man Gerätedateien mit den Major Nummern 26, 27, 28 und 29 anlegen, mit maximal 4 Controllern; das macht dann zusammen 16 CD-ROM Laufwerke; hoffentlich genug für die meisten Anwender :-).

Sehen Sie auch in der Datei sbpcd für weitere Informationen über diesen Treiber.

Wenn Sie erst letztens ein CD-ROM Laufwerk gekauft haben, sollten Sie nicht davon ausgehen, daß es diesen Kernel Treiber verwendet, wenn es an eine SoundBlaster Karte angeschlossen wird. Die meisten CD-ROM Laufwerke von Creative Labs verwenden heute EIDE/ATAPI.

Sonycdu535 Treiber

                        Autor: Ken Pizzini (ken@halcyon.com)
   Multisession Unterstützung: nein
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/sonycd535, major 24
          Konfigurationsdatei: sonycd545.h
         Kernel config Option: Sony CDU535 CDROM support?
                Dokumentation: sonycd545

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

sonycd535=<IO-Adresse>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x320). Alternativ kann man die Adresse in der Datei sonycd535.h setzen und fest einkompilieren.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/sonycd535 b 24 0

Manche Linux Distributionen verwenden die Gerätedatei /dev/sonycd für dieses Gerät. Ältere Versionen des Treibers verwenden die Major Device Nummer 21; stellen Sie sicher, daß die Gerätedatei die richtige ist.

Dieser Treiber wurde ursprünglich als Patch ausgeliefert, ist aber mittlerweile Bestandteil des Standard Kernels. Sehen Sie auch in der Datei sonycd535 für weitere Informationen über diesen Treiber.

Cdu31a Treiber

                        Autor: Corey Minyard (minyard@-rch.cirr.com)
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: ja
                 Auto-probing: nein
                  Gerätedatei: /dev/cdu31a, major 15
          Konfigurationsdatei: cdu31a.h
         Kernel config Option: Sony CDU31A/CDU33A CDROM support?
                Dokumentation: cdu31a

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

cdu31a=<IO-Adresse>,<Interrupt>,PAS

Der erste Parameter ist die Basis Adresse des Gerätes (z.B. 0x340). Der zweite ist der Interrupt, der verwendet werden soll; 0 bedeutet verwende polled I/O. Der optionale dritte Parameter sollte PAS sein, wenn das Laufwerk an eine Pro-Audio Spectrum 16 Soundkarte angeschlossen ist, und sollte sonst leer sein.

Wenn der Treiber als Modul geladen wird, verwendet er ein leicht unterschiedliches Format. Wenn der Treiber mit den Kommandos modprobe oder insmod geladen wird, haben die Parameter die Form:

cdu31a_port=<IO-Adresse> cdu31a_irq=<Interrupt>

Die Basis Adresse wird benötigt, der Interrupt ist optional.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/cdu31a b 15 0
Sehen Sie auch in der Datei cdu31a für weitere Informationen über diesen Treiber.

Sehen Sie auch die Webseite von Jeffrey Oxenreder (zureal@infinet.com), die viele der üblichen Probleme mit diesen Laufwerken behandelt. Die Seite findet sich unter

http://lemures.shinma.symix.com/~zureal/cdu31a.html

Aztcd Treiber

                        Autor: Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/aztcd0, major 29
          Konfigurationsdatei: aztcd.h
         Kernel config Option: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM
                               support?
                Dokumentation: aztcd

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

aztcd=<IO-Adresse>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340).

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/aztcd0 b 29 0

Beachten Sie, daß dieser Treiber nur für das CDA268-01A ist. Andere Modelle wie das CDA268-03I und CDA269-031SE sind nicht proprietär und sollten den IDECD (ATAPI) Treiber des Kernels verwenden.

Sehen Sie auch in der Datei aztcd für weitere Informationen über diesen Treiber.

Gscd Treiber

                        Autor: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
   Multisession Unterstützung: nein
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/gscd0, major 16
          Konfigurationsdatei: gscd.h
         Kernel config Option: Goldstar R420 CDROM support?
                Dokumentation: gscd

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

gscd=<IO-Adresse>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340).

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/gscd0 b 16 0

Sehen Sie auch in der Datei gscd und auf der WWW Site

http://linux.rz.fh-hannover.de/~raupach/
für weitere Informationen über diesen Treiber.

Mcd Treiber

                        Autor: Martin  (martin@bdsi.com)
   Multisession Unterstützung: nein
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/mcd, major 23
          Konfigurationsdatei: mcd.h
         Kernel config Option: Standard Mitsumi CDROM support?
                Dokumentation: mcd

Dies ist der ältere Mitsumi Treiber, der seit einiger Zeit verfügbar ist. Vielleicht möchten Sie lieber den neueren mcdx Treiber verwenden, der einige neue Features besitzt, aber möglicherweise nicht so stabil ist.

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

mcd=<IO-Adresse>,<Interrupt>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340) und der zweite Parameter ist der verwendete Interrupt.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/mcd b 23 0

Sehen Sie auch in der Datei mcd für weitere Informationen über diesen Treiber.

Mcdx Treiber

                        Autor: Heiko Schlittermann
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: ja
Loadable module Unterstützung: ja
           Audio frames lesen: nein (von der Hardware nicht unterstützt)
                 Auto-probing: nein
                  Gerätedatei: /dev/mcdx0, major 20
          Konfigurationsdatei: mcdx.h
         Kernel config Option: Experimental Mitsumi CDROM support?
                Dokumentation: mcdx

Dies ist der neuere Treiber für Mitsumi Laufwerke. Der ältere und wahrscheinlich stabilere Treiber mcd ist weiterhin verfügbar.

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

mcdx=<IO-Adresse>,<Interrupt>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340) und der zweite Parameter ist der verwendete Interrupt.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/mcdx0 b 20 0

Sollten Sie in letzter Zeit ein Mitsumi Laufwerk erworben haben, sollten Sie nicht davon ausgehen, daß es diesen Kerneltreiber verwendet. Die neuen Mitsumi Laufwerke sind jetzt EIDE/ATAPI kompatibel und sollten den idecd Kernel Treiber verwenden.

Sehen Sie auch in der Datei mcdx für weitere Informationen über diesen Treiber.

Cm206 Treiber

                        Autor: David A. van Leeuwen (david@tm.tno.)
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: ja
                  Gerätedatei: /dev/cm206cd, major 32
          Konfigurationsdatei: cm206.h
         Kernel config Option: Philips/LMS CM206 CDROM support?
                Dokumentation: cm206

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

cm206=<IO-Adresse>,<Interrupt>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340) und der zweite Parameter ist der verwendete Interrupt.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/cm206cd b 32 0

Sehen Sie auch in der Datei cm206 für weitere Informationen über diesen Treiber.

Optcd Treiber

                        Autor: Leo Spiekman (spiekman@dutette.et.tudelft.nl)
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/optcd0, major 17
          Konfigurationsdatei: optcd.h
         Kernel config Option: Experimental Optics Storage ... CDROM support?
                Dokumentation: optcd

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

optcd=<IO-Adresse>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist (z.B. 0x340).

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/optcd0 b 17 0

Sehen Sie auch in der Datei optcd für weitere Informationen über diesen Treiber.

Sjcd Treiber

                        Autor: Vadim V. Model (vadim@rbrf.msk.su)
   Multisession Unterstützung: nein
 Multiple drive Unterstützung: nein
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: nein
                  Gerätedatei: /dev/sjcd, major 18
          Konfigurationsdatei: sjcd.h
         Kernel config Option: Experimental Sanyo H94A CDROM support?
                Dokumentation: sjcd

Dieser Treiber akzeptiert eine Kernel Kommandozeile in der Form

sjcd=<IO-Adresse>,<Interrupt>,<DMA>

wobei <IO-Adresse> die Basis Adresse des Gerätes ist, der zweite Parameter ist der verwendete Interrupt und der dritte gibt den DMA Kanal an (z.B. sjcd=0x340,10,5).

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/sjcd b 18 0

Sehen Sie auch in der Datei sjcd für weitere Informationen über diesen Treiber.

Paride Treiber

                        Autor: Grant R. Guenther (grant@torque.net)
   Multisession Unterstützung: nein
 Multiple drive Unterstützung: ja
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: ja
                  Gerätedatei: /dev/pcd0, major 46
          Konfigurationsdatei: bpcd.h
         Kernel config Option: Parallel Port IDE device support?
                Dokumentation: paride.txt

Dies ist der Treiber für die unterschiedlichen Arten von Geräten, die an die parallele Schnittstelle angeschlossen werden. Normalerweise erkennt der Treiber das Parallelport Gerät von selbst. Die Dokumentation beschreibt die Parameter, die verwendet werden können, wenn die Erkennung fehlschlägt.

Die Gerätedatei kann folgendermaßen angelegt werden:

# mknod /dev/pcd0 b 46 0

Sehen Sie auch in der Datei /usr/src/linux/Documentation/paride.txt für weitere Informationen über diesen Treiber. Beachten Sie, das dieser Treiber den bpcd ersetzt, der in älteren Kerneln verwendet wurde.

SCSI Treiber

                        Autor: David Giller
   Multisession Unterstützung: ja (hängt vom Laufwerk ab)
 Multiple drive Unterstützung: ja
Loadable module Unterstützung: ja
           Audio frames lesen: nein
                 Auto-probing: ja
                  Gerätedatei: /dev/scd0, major 11
          Konfigurationsdatei: cdrom.h
         Kernel config Option: SCSI CDROM support?
                Dokumentation: scsi.txt

Es gibt Kernel Kommandozeilen Optionen, die spezifisch für jeden SCSI Controller sind. Sehen Sie im SCSI HOWTO für weitere Informationen.

Mehrere Laufwerke werden unterstützt (bis zur maximalen Anzahl Geräte am SCSI Bus). Die Gerätedateien werden mit der Major Nummer 11 und den Minor Nummern von Null an aufsteigend angelegt:

# mknod /dev/scd0 b 11 0
# mknod /dev/scd1 b 11 1

Während es der Kernel Treiber selbst nicht unterstützt, Audio Frames digital auszulesen, haben manche SCSI Laufwerke diese Fähigkeit und arbeiten mit dem Programm cdda2wav zusammen, das die generische SCSI Schnittstelle des Kernels verwendet.

Sehen Sie auch die Diskussion des IDE SCSI Emulations Treibers weiter oben in diesem Dokument.

IDECD Treiber

                        Autor: Scott Snyder (snyder@fnald0.fnal.gov)
   Multisession Unterstützung: ja
 Multiple drive Unterstützung: ja
Loadable module Unterstützung: nein
           Audio frames lesen: ja (bei unterstützten Laufwerken)
                 Auto-probing: ja
                  Gerätedatei: /dev/hd{a,b,c,d}, major 22
          Konfigurationsdatei: cdrom.h
         Kernel config Option: Include support for IDE/ATAPI CDROMs?
                Dokumentation: ide-cd

Dies ist der Treiber für ATAPI CD-ROMs. Der Treiber akzeptiert eine Kernel Kommandozeile in der Form

hdx=cyls,heads,sects,wpcom,irq
oder
hdx=cdrom

wobei hdx ein Wert aus {hda,hdb,hdc,hdd} sein kann, oder einfach hd für das »nächste« Laufwerk in der Folge. Nur die ersten drei Parameter werden benötigt (cyls,heads,sects). Beispiel:

hdc=1050,32,64 hdd=cdrom

Den IDE Treiber dazu zu bekommen, daß er das CD-ROM Laufwerk erkennt, kann unter Umständen etwas verzwickt sein, vor allem wenn man mehr als 2 Geräte oder mehr als einen IDE Controller hat. Normalerweise muß man nur die richtige Kommandozeile durch LILO überreichen. Die Datei /usr/src/linux/Documentation/cdrom/ide-cd erklärt, wie man das macht. Lesen Sie sie genau durch.

Neuere Linux Kernel haben eine verbesserte Unterstützung für mehrere IDE Geräte. Falls Sie Probleme mit älteren Kerneln haben, hilft vielleicht eine neuere Version.

Manche IDE Controller haben Hardware Probleme, die der Kernel Treiber umgehen kann. Gegebenenfalls muß man dafür weitere Parameter an den Treiber übergeben. Sehen Sie in der Dokumentation für Details.

4.4 Den neuen Linux Kernel booten

Jetzt kann man den neuen Kernel booten. Achten Sie auf eine Mitteilung, wie die folgende, daß das CD-ROM Laufwerk vom Treiber gefunden wurde; diese Mitteilung sieht abhängig vom Laufwerkstyp unterschiedlich aus.

hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive

Wenn die Meldungen beim Booten zu schnell vorbei scrollen, können Sie sie mit dmesg oder

$ tail /var/log/messages

zurück auf den Bildschirm holen.

Wenn das Laufwerk nicht gefunden wird, ist ein Problem aufgetreten; Sehen Sie Abschnitt Problembehebung.

4.5 Die Medien mounten, unmounten und auswerfen

Um eine CD-ROM zu mounten, muß man die Disc in das Laufwerk einlegen und als root den mount Befehl ausführen. Wenn z.B. ein symbolischer Link auf das CD-ROM Laufwerk angelegt wurde, und ein leeres Verzeichnis /mnt/cdrom existiert, sieht der Befehl so aus:

# mount -t iso9660 -r /dev/cdrom /mnt/cdrom

Nun kann über das Verzeichnis /mnt/cdrom auf die CD zugegriffen werden.

Es gibt noch andere Parameter für das mount Kommando, die Sie vielleicht verwenden möchten; Sehen Sie in der Manual Page für mount(8) für Details.

Man kann einen Eintrag in der Datei /etc/fstab anlegen, um die CD-ROM beim Booten von Linux automatisch zu mounten, oder um Parameter anzugeben, wenn die CD gemountet wird; Sehen Sie in der Manual Page zu fstab für weitere Details.

Beachten Sie, daß man zum Abspielen von Audio CDs die Disc nicht mounten sollte.

Um eine CD-ROM zu unmounten, verwendet man das umount Kommando als Benutzer root:

# umount /mnt/cdrom

Die Disc kann man nur dann unmounten, wenn kein Prozeß auf das Laufwerk zugreift. Wenn ein Prozeß ein Verzeichnis auf der CD-ROM als aktuelles Arbeitsverzeichnis benutzt, gilt dieses bereits als Zugriff. Man kann die Disc jetzt auswerfen lassen. Die meisten Laufwerke haben einen Auswurfknopf; es gibt auch das Programm eject, das CD-ROMs softwaregesteuert auswirft.

Beachten Sie, daß man eine CD nicht auswerfen sollte, solange sie gemountet ist. Wobei dieses bei den meisten Laufwerken sowieso nicht möglich ist, da diese den Auswurfknopf sperren, wenn eine CD-ROM gemountet ist. Manche CD-ROM Treiber werfen die CD automatisch aus, wenn man sie unmountet, und ziehen den CD-Schlitten ein, wenn die CD-ROM gemountet wird. Man kann dieses Feature beim Übersetzen des Kernels ausschalten, oder einen Software-Befehl verwenden.

Es ist möglich, daß Sie nach dem Abspielen einer Audio CD keine CD-ROM mehr mounten können. Dann müssen Sie das Audio Kommando »stop« mit einem Audio CD Abpieler senden, bevor Sie versuchen, die CD-ROM zu mounten. Dieses Problem scheint nur beim SBPCD Treiber aufzutreten.

Neuere Kernel unterstützen den kernelbasierten Automounter, der transparentes Mounten von Wechselmedien, also auch von CD-ROMs, ermöglicht. Man findet die benötigten Tools unter

ftp.kernel.org:/pub/linux/daemons/autofs/

4.6 Problembehebung

Wenn Sie immer noch Probleme haben, nachdem Sie den Instruktionen in diesem HOWTO gefolgt sind, stehen hier einige Dinge zum Überprüfen. Die Überprüfungen sind in aufsteigender Reihenfolge der Komplexität aufgeführt. Wenn eine Überprüfung fehlschlägt, sollten Sie das Problem lösen, bevor Sie zum nächsten Schritt übergehen.

Schritt 1: Sicherstellen, daß man den übersetzten Kernel verwendet

Man kann den Datumsstempel des Kernels prüfen, um zu sehen, ob man den Kernel mit CD-ROM Unterstützung benutzt. Dazu können Sie den Befehl uname verwenden:

$ uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown

Oder Sie geben die Datei /proc/version aus:

$ cat /proc/version
Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1
Tue Mar 23 11:23:21 ~EST 1999

Wenn dieses Datum nicht mit dem Datum übereinstimmt, an dem Sie den Kernel übersetzt haben, dann läuft gerade ein alter Kernel. Haben Sie neu gebootet? Wenn Sie LILO verwenden, haben Sie ihn neu installiert? Dieses geschieht normalerweise durch die Eingabe von:

# lilo

Falls Sie von Diskette booten, haben Sie eine neue Bootdiskette erstellt und zum Booten verwendet?

Schritt 2: Einbindung der richtigen Kernel Treiber sicherstellen

Man kann sehen, welche Treiber einkompiliert sind, indem man sich die Datei /proc/devices ansieht:

$ cat /proc/devices
Character devices:
 1 mem
 2 pty
 3 ttyp
 4 ttyS
 5 cua
 7 vcs
 
Block devices:
 3 ide0
 22 ide1

Zuerst sollte man nach dem CD-ROM Treiber sehen. Nachdem alle blockorientierte Geräte sind, können wir im Beispiel oben sehen, daß der idecd Treiber mit der Major Nummer 22 vorhanden ist.

Weiterhin sollten Sie sicherstellen, daß die Unterstützung für das ISO-9660 Dateisystem einkompiliert ist, indem Sie die Datei /proc/filesystems ausgiben:

$ cat /proc/filesystems
        ext2
nodev   proc
nodev   devpts
        vfat
        iso9660

Man kann sich unter /proc/ioports auch die I/O Port Adressen, die ein Treiber verwendet, ansehen:

$ cat /proc/ioports
 ...
0230-0233 : sbpcd
 ...

Wenn einer der Treiber, von denen man glaubt, man habe sie einkompiliert, nicht auftaucht, dann ist ein Fehler bei der Konfiguration oder beim Übersetzen aufgetreten. In diesem Fall starten Sie den Installationsprozeß von vorne, indem Sie mit der Konfiguration und Kompilierung des Kernels beginnen.

Schritt 3: Hat der Kernel das Gerät beim Booten erkannt?

Man sollte sicherstellen, daß der Kernel beim Booten die CD-ROM Laufwerke erkannt hat. Beim Hochfahren sollten Sie eine entsprechende Mitteilung sehen. Wenn die Mitteilungen über den Bildschirmrand gescrollt sind, können Sie sie mit dem Befehl dmesg zurückholen:

$ dmesg

oder

$ tail /var/log/messages

Wenn das Laufwerk nicht gefunden wurde, ist etwas schiefgegangen. Stellen Sie sicher, daß es Strom hat und alle Kabel richtig angeschlossen sind. Wenn das Laufwerk Jumper besitzt, um die Adressen einzustellen, sollten sie prüfen, daß sie richtig gesetzt sind (d.h. Laufwerk 0, wenn Sie nur eines besitzen). ATAPI CD-ROMs müssen auf »Single« oder »Master« gejumpert werden, und nicht auf »Slave«, wenn nur ein Laufwerk vorhanden ist. Wenn das Laufwerk unter DOS funktioniert, können Sie ziemlich sicher davon ausgehen, daß die Hardware in Ordnung ist.

Viele Kernel Treiber verwenden auto-probing, manche aber nicht, und auf jeden Fall ist die Erkennung nicht immer zuverlässig. Man kann die angegebenen Kernel Kommandozeilen Optionen für den jeweiligen Treiber dafür verwenden. Wenn man sich bei der I/O Adresse, oder anderen Parametern nicht sicher ist, kann man verschiedene Werte ausprobieren. Sie können LILO so einrichten (was er normalerweise auch ist), daß die Parameter beim Booten manuell übergeben werden können.

Eine andere Möglichkeit ist, daß man den falschen Kernel Treiber für das CD-ROM Laufwerk verwendet hat. Einige Dokumentationen bezeichnen die proprietäre Schnittstelle als IDE, so daß man glaubt, dass es sich um ein ATAPI Laufwerk handelt.

Eine weitere Möglichkeit ist, daß das Laufwerk (oder die Schnittstelle) ein »kompatibler« Typ ist, der vom DOS Treiber initialisiert werden muß. Man versuche DOS zu booten, den Treiber des Herstellers zu laden und führt anschließend einen Warmstart durch Control-Alt-Delete.

Wenn das Laufwerk nicht im Dokument aufgeführt ist, ist es möglich, daß es für Linux keinen Treiber gibt. Man kann das mit den am Ende des Dokumentes aufgeführten Referenzen überprüfen.

Schritt 4: Kann man Daten vom Laufwerk lesen?

Versuchen Sie Daten vom CD-ROM Laufwerk zu lesen. Wenn man das folgende Kommando eingibt, sollte die LED am Laufwerk - falls vorhanden - aufleuchten, und keine Fehlermeldung erscheinen. Verwenden Sie diejenige Gerätedatei, die für Ihr CD-ROM Laufwerk da ist, und stellen sicher, daß eine CD-ROM eingelegt ist; verwenden Sie Control-C zum Beenden.

# dd if=/dev/cdrom of=/dev/null bs=2048
^C
124+0 records in
124+0 records out

Wenn das funktioniert, kommuniziert der Kernel mit dem Laufwerk, und Sie können mit Schritt 5 weitermachen.

Wenn nicht, ist der Grund vermutlich die Gerätedatei. Stellen Sie sicher, daß die Gerätedatei im Verzeichnis /dev die richtige Major und Minor Nummer hat. Prüfen Sie, ob die Zugriffsrechte der Gerätedatei Lese- und Schreibzugriff erlauben.

Eine unwahrscheinliche Möglichkeit ist ein Hardware Problem. Testen Sie das Laufwerk unter anderen Betriebssystemen, um festzustellen, ob dies das Problem ist.

Schritt 5: Kann das Laufwerk gemountet werden?

Wenn man Daten vom Laufwerk lesen kann, es aber nicht mounten kann, prüfen Sie zuerst, ob Unterstützung für das ISO-9660 Dateisystem einkompiliert ist, indem Sie die Datei /proc/filesystems wie oben beschrieben überprüfen.

Stellen Sie sicher, daß Sie das Laufwerk mit den Optionen »-t iso9660« und »-r« gemountet, und eine CD im Laufwerk liegt, von der Sie wissen, daß sie ein gültiges ISO-9660 Dateisystem besitzt (und keine Audio-CD ist). Normalerweise mountet man Dateisysteme als Benutzer root.

Stellen Sie sicher, daß das Verzeichnis, auf das das CD-ROM Laufwerk gemountet wird, existiert und leer ist.

Wenn das CD-ROM Laufwerk automatisch beim Booten gemountet wird, stellen Sie sicher, daß die Einträge in der Datei /etc/fstab richtig sind.

Wenn der syslog Dämon läuft, sieht man vielleicht die Fehlermeldungen des Kernels nicht. Versuchen Sie es mit dem Befehl dmesg:

$ dmesg
SBPCD: sbpcd_open: no disk in drive

Abhängig davon, wie Ihr System konfiguriert ist, werden Fehlermeldungen auch in einer Datei unter /var/log mitprotokolliert.

Audio Probleme beheben

Sollte das Laufwerk mit CD-ROMs nicht aber mit Audio CDs funktionieren, stehen hier einige mögliche Lösungen.

Man benötigt ein Anwendungsprogramm, um Audio CDs abspielen zu können. Einige Anwendungen sind vielleicht fehlerhaft, oder sind nicht zum verwendeten Laufwerk kompatibel. Versuchen sie andere Anwendungen und/oder versuchen sie sie selbst zu übersetzen. Eine gute Stelle zum Suchen nach Programmen ist:

metalab.unc.edu:/pub/Linux/apps/sound/cdrom/

Einige wenige CD-ROM Treiber unterstützen das Abspielen von Audio CDs nicht. Lesen Sie die Dokumentationsdatei oder den Quellcode um zu prüfen, ob dies der Fall ist.

Prüfen Sie, ob die Audio CD über den Kopfhörer abgespielt werden kann. Falls ja, hängt das Problem wahrscheinlich mit der Soundkarte zusammen. Verwenden Sie ein Mixer Programm, um das Eingabegerät und die Lautstärke zu setzen. Stellen Sie sicher, daß ein Audio Kabel zwischen CD-ROM Laufwerk und Soundkarte installiert ist. Stellen Sie sicher, daß der Kernel Treiber installiert ist und funktioniert (Sehen Sie im Sound HOWTO).

Wenn alles andere fehlschlägt

Wenn man immer noch Probleme hat, sind hier einige letzte Vorschläge, was man versuchen kann:


Inhalt