Die Installation eines CD-ROM Laufwerkes unter Linux erfolgt in diesen Schritten:
Die nächsten Abschnitte behandeln jeden Schritt im Detail.
Man folge den Anweisungen des Herstellers, um die Hardware zu installieren, oder läßt 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.
Wenn man Linux von einer CD-ROM installiert, wirst man wahrscheinlich eine Boot- und/oder Root-Diskette verwenden, die mit der Linux Distribution geliefert wird. Wenn möglich, sollte man eine Boot-Diskette mit dem Kernel Treiber für sein CD-ROM Laufwerk auswählen. Wenn man keine Boot Diskette mit dem nötigen CD-ROM Treiber finden kann, hat man mehrere Möglichkeiten:
Im Linux Installation HOWTO stehen mehr Informationen, wie man Linux installiert. Wenn man Linux auf CD-ROM gekauft hat, hat man 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, sollte man 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 man ein ATAPI CD-ROM Laufwerk hat, muß man 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 schaltet man diese Optionen ein:
SCSI support (CONFIG_SCSI) [Y/n/m/?]
SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
Außerdem muß man die Unterstützung für den SCSI Adapter einschalten, wenn man danach gefragt wird, 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. Man kann die Liste weiter oben verwenden, um den richtigen Treiber für sein Modell zu bestimmen.
Praktisch alle CD-ROMs verwenden das ISO-9660 Dateisystem, also muß man 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öchte man 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 sollte man die übliche Prozedur durchführen, um den Kernel zu übersetzen und zu installieren. Den neuen Kernel nicht booten, bis man nicht die Gerätedateien angelegt und die Boot Parameter wie im nächsten Absatz beschrieben eingerichtet hat.
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 man zuerst die einkompilierten Treiber verwendet. Wie man Module verwendet, wird im Linux Kernel HOWTO beschrieben.
Wenn ein hier aufgeführter Laufwerkstyp nicht vom Kernel unterstützt wird, muß man wahrscheinlich eine neuere Kernel Version verwenden.
Es ist möglich, daß man einen Treiber verwenden muß, der separat von den Kernelquellen verteilt wird. Normalerweise muß man dazu den Kernel patchen. Das Linux Kernel HOWTO beschreibt wieder, wie das funktioniert.
Man beachte, 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.
Der Kernel verwendet Gerätedateien, um herauszufinden, welchen Treiber
er verwenden muß. Wenn man eine Standard Linux Distribution verwendet,
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 man nicht diese Methoden verwendet,
kann man die eher manuelle Prozedur verwenden, die in diesem Abschnitt
aufgeführt wird. Selbst wenn man eine dieser Methoden verwendet, wird
empfohlen, das man wenigstens die Gerätedateien gegen die Informationen
in diesem Abschnitt prüft.
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. Man beachte, 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 man Audio-CDs abspielen möchte, muß man 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. Man braucht
wahrscheinlich nur den Abschnitt über seinen Laufwerkstyp zu lesen. Die
Dokumentationen findet man üblicherweise im Verzeichnis
/usr/src/linux/Documentation/cdrom
.
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 :-).
Siehe auch in der Datei sbpcd
für weitere Informationen über
diesen Treiber.
Wenn man erst letztens ein CD-ROM Laufwerk gekauft hat, sollte man nicht davon ausgehen, daß es, wenn es an eine SoundBlaster Karte angeschlossen wird, diesen Kernel Treiber verwendet. Die meisten CD-ROM Laufwerke von Creative Labs verwenden heute EIDE/ATAPI.
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; man stelle sicher, daß die
Gerätedatei richtig ist.
Dieser Treiber wurde ursprünglich als Patch ausgeliefert, ist aber
mittlerweile Bestandteil des Standard Kernels. Siehe auch in der Datei
sonycd535
für weitere Informationen über diesen 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
Siehe auch in der Datei cdu31a
für weitere Informationen über
diesen Treiber.
Siehe auch die Webseite von Jeffrey Oxenreder (
zureal@infinet.com
), die
viele der üblichen Probleme mit diesen Laufwerken behandelt. Die Seite
findet man unter
http://lemures.shinma.symix.com/~zureal/cdu31a.html
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
Man beachte, 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.
Siehe auch in der Datei aztcd
für weitere Informationen über
diesen 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
Siehe auch in der Datei gscd
und auf der WWW Site
http://linux.rz.fh-hannover.de/~raupach/
für weitere Informationen über diesen 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öchte man 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
Siehe auch in der Datei mcd
für weitere Informationen über
diesen 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
Solltest man in letzter Zeit ein Mitsumi Laufwerk erworben haben, sollte man nicht davon ausgehen, daß es diesen Kerneltreiber verwendet. Die neuen Mitsumi Laufwerke sind jetzt EIDE/ATAPI kompatibel und sollten den idecd Kernel Treiber verwenden.
Siehe auch in der Datei mcdx
für weitere Informationen über
diesen 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
Siehe auch in der Datei cm206
für weitere Informationen über
diesen 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
Siehe auch in der Datei optcd
für weitere Informationen über
diesen 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
Siehe auch in der Datei sjcd
für weitere Informationen über
diesen 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
Siehe auch in der Datei /usr/src/linux/Documentation/paride.txt
für weitere Informationen über diesen Treiber. Beachte, das dieser
Treiber den bpcd ersetzt, der in älteren Kerneln verwendet wurde.
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. Siehe 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.
Siehe auch die Diskussion des IDE SCSI Emulations Treibers weiter oben in diesem Dokument.
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. Man lese sie genau durch.
Neuere Linux Kernel haben eine verbesserte Unterstützung für mehrere IDE Geräte. Falls man Probleme mit älteren Kerneln hat, 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. Siehe in der Dokumentation für Details.
Jetzt kann man den neuen Kernel booten. Man achte 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, kann man sie
mit dmesg
oder
$ tail /var/log/messages
zurück auf den Bildschirm holen.
Wenn das Laufwerk nicht gefunden wird, ist ein Problem aufgetreten; siehe Abschnitt Problembehebung.
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 man
vielleicht verwenden möchte; siehe 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; siehe in der Manual Page zu
fstab
für weitere Details.
Man beachte, 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.
Man beachte, 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. Mman kann dieses Feature beim Übersetzen des Kernels ausschalten, oder einen Software Befehl verwenden.
Es ist möglich, das man nach dem Abspielen einer Audio CD keine CD-ROM mehr mounten kann. Dann muß man das Audio Kommando »stop« mit einem Audio CD Abpieler senden, bevor man versucht, 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/
Wenn man immer noch Probleme hat, nachdem man den Instruktionen in diesem HOWTO gefolgt ist, 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, sollte man das Problem lösen, bevor man zum nächsten Schritt übergeht.
Man kann den Datumsstempel des Kernels prüfen, um zu sehen, ob man den
Kernel mit CD-ROM Unterstützung benutzt. Dazu kann man den Befehl
uname
verwenden:
$ uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown
Oder man gibt 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 man den Kernel übersetzt hat, dann läuft gerade ein alter Kernel. Hast du neu gebootet? Wenn man LILO verwendest, hast Du ihn neu installiert? Dieses geschieht normalerweise durch die Eingabe von:
# lilo
Falls Du von Diskette bootest, hast Du eine neue Bootdiskette erstellt und zum Booten verwendet?
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 sollte man sicherstellen, daß die Unterstützung für das
ISO-9660 Dateisystem einkompiliert ist, indem man die Datei
/proc/filesystems
ausgibt:
$ 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 startet man den Installationsprozeß von vorne, indem man mit der Konfiguration und Kompilierung des Kernels beginnt.
Man sollte sicherstellen, daß der Kernel beim Booten die CD-ROM
Laufwerke erkannt hat. Beim Hochfahren sollte man eine Mitteilung
sehen. Wenn die Mitteilungen über den Bildschirmrand gescrollt sind,
kann man sie mit dem Befehl dmesg
zurückholen:
$ dmesg
oder
$ tail /var/log/messages
Wenn das Laufwerk nicht gefunden wurde, ist etwas schiefgegangen. Man stelle sicher, daß es Strom hat und alle Kabel richtig angeschlossen sind. Wenn das Laufwerk Jumper besitzt, um die Adressen einzustellen, sollte man prüfen, daß sie richtig gesetzt sind (d.h. Laufwerk 0, wenn man nur eines besitzt). 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, kann man 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. Man kann LILO so einrichten (was er normalerweise auch ist), daß man beim Booten die Parameter manuell eintragen kann.
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, daß 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.
Man versuche 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. Man verwende diejenige Gerätedatei, die für sein CD-ROM Laufwerk da ist, und stelle sicher, daß eine CD-ROM eingelegt ist; verwende 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 man kann mit Schritt 5 weitermachen.
Wenn nicht, ist der Grund vermutlich die Gerätedatei. Man stelle
sicher, daß die Gerätedatei im Verzeichnis /dev
die richtige
Major und Minor Nummer hat. Prüfe, ob die Zugriffsrechte der
Gerätedatei Lese- und Schreibzugriff erlauben.
Eine unwahrscheinliche Möglichkeit ist ein Hardware Problem. Teste das Laufwerk unter anderen Betriebssystemen, um festzustellen, ob dies das Problem ist.
Wenn man Daten vom Laufwerk lesen kann, es aber nicht mounten kann,
prüft man zuerst, ob Unterstützung für das ISO-9660 Dateisystem
einkompiliert ist, indem man die Datei /proc/filesystems
wie
oben beschrieben überprüft.
Man stelle sicher, das man das Laufwerk mit den Optionen »-t iso9660«
und »-r« mountet, und eine CD, von der man weiß, daß sie ein gültiges
ISO-9660 Dateisystem besitzt (und keine Audio-CD ist), im Laufwerk
liegt. Normalerweise mountet man Dateisysteme als Benutzer
root
.
Stelle 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, stelle
sicher, das 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. Versuche es mit dem Befehl dmesg
:
$ dmesg
SBPCD: sbpcd_open: no disk in drive
Abhängig davon, wie dein System konfiguriert ist, werden
Fehlermeldungen auch in einer Datei unter /var/log
mitprotokolliert.
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. Versuche andere Anwendungen und/oder versuche 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. Lies die Dokumentationsdatei oder den Quellcode um zu prüfen, ob dies der Fall ist.
Prüfe, ob die Audio CD über den Kopfhörer abgespielt werden kann. Falls ja, hängt das Problem wahrscheinlich mit der Soundkarte zusammen. Verwende ein Mixer Programm, um das Eingabegerät und die Lautstärke zu setzen. Stelle sicher, daß ein Audio Kabel zwischen CD-ROM Laufwerk und Soundkarte installiert ist. Stelle sicher, daß der Kernel Treiber installiert ist und funktioniert (siehe im Sound HOWTO).
Wenn man immer noch Probleme hat, sind hier einige letzte Vorschläge, was man versuchen kann:
de.comp.os.unix.linux
Newsgruppen/usr/src/linux/MAINTAINERS
)Esc-x doctor
:-)