De installatie van een CD-ROM station onder Linux bestaat uit de volgende stappen:
Het installeren van de hardware.
Het configureren en samenstellen van de Linux kernel.
Het aanmaken van de apparaatbestanden en het instellen van de boot time parameters.
Het booten van de Linux kernel.
Het mounten van de media.
Volg de instructies van de fabrikant op voor het installeren van de hardware of laat de verkoper de installatie uitvoeren. De details variëren afhankelijk van of je een interne of externe drive hebt en van het type interface dat wordt gebruikt. Er zijn geen speciale installatiebenodigdheden voor Linux. Wellicht dat voor een juiste werking de jumpers op de drive en/of interfacekaart moeten worden ingesteld; bij een aantal kerneldrivers worden documentatiebestanden geleverd waarin deze informatie is opgenomen.
Zoals wordt uitgelegd in het bestand ide-cd, moeten ATAPI CD-ROM'S worden gejumperd als "single" of "master", en niet als "slave" wanneer een enkele IDE-device is gekoppeld aan de interface (alhoewel deze beperking niet langer wordt afgedwongen door recente kernels).
Wanneer je in beginsel Linux vanaf CD-ROM installeert, dan zul je naar alle waarschijnlijkheid gebruik maken van een boot- en/of rootdisk waarin als onderdeel van een Linux distributie wordt voorzien. Zo mogelijk moet je een bootdisk kiezen met een kerneldriver voor je type CD-ROM station. Als je geen bootdisk kunt vinden met de benodigde CD-ROM driver, dan heb je verscheidene opties:
Boot direct vanaf CD-ROM (als dit door je computer en Linux CD wordt ondersteund)
Installeer via een netwerk
Boot DOS, en installeer de Linux bestanden naar je harddisk
Boot DOS, en maak een set diskettes aan om Linux te installeren
Ga op zoek naar iemand die een bootdisk met de benodigde CD-ROM driver voor je kan samenstellen.
Zodra Linux de eerste maal is geïnstalleerd, zullen de meeste gebruikers gewoonlijk om één van de volgende redenen een eigen kernel willen installeren:
om een CD-ROM station of andere hardware te ondersteunen
om te upgraden naar een nieuwere kernelrelease
om geheugenbronnen vrij te maken door het minimaliseren van de kernelomvang.
Uiteraard moet je ondersteuning voor het CD-ROM station opnemen wanneer je de kernel configureert.
Wanneer je een ATAPI CD-ROM station hebt, dan moet je de Enhanced IDE/MFM/RLL disk/cdrom/tape support en Include IDE/ATAPI CDROM support activeren.
Voor SCSI CD-ROM stations, activeer je de opties SCSI support en SCSI CDROM support. Activeer ook ondersteuning voor je SCSI hostadapter wanneer hierom wordt gevraagd, b.v. Adaptec AHA152X/2825 support.
Voor CD-ROM stations met een gepatenteerde interface, activeer je de juiste driver. Je kunt de eerder weergegeven tabel gebruiken om vast te stellen welke driver je voor het model moet gebruiken.
Op praktisch alle CD-ROM's wordt gebruik gemaakt van het ISO-9660 bestandssysteem, dus je moet ook ISO 9660 CDROM filesystem support activeren.
Alhoewel niet nodig voor de goede werking van CD-ROM's, wil je wellicht op dit moment ook de kernel sounddriver activeren en configureren als je een geluidskaart hebt die onder Linux wordt ondersteund. De Sound HOWTO kan hierbij een nuttige referentie zijn.
Vervolgens zou je de gebruikelijk procedure moeten volgen voor het bouwen en installeren van de kernel. Boot niet met de nieuwe kernel voordat je de apparaatbestanden hebt aangemaakt en je eventuele boottime parameters hebt ingesteld zoals in de volgende sectie is beschreven.
Het ISO-9660 bestandssysteem en bijna alle CD-ROM drivers kunnen als laadbare kernelmodules worden gebouwd. Dit biedt je de mogelijkheid de kerneldrivers te laden en uit het geheugen te verwijderen zonder dat je de kernel moet rebooten, waardoor je geheugen vrijhoudt. Ik raad je aan je CD-ROM installatie eerst draaiend te krijgen door gebruik te maken van meegecompileerde drivers. Hoe je modules kunt gebruiken, staat beschreven in de modules documentatie en de Kernel HOWTO.
Als een hier weergegeven type station niet door je kernel wordt ondersteund, dan heb je naar alle waarschijnlijkheid een upgrade nodig naar een nieuwere versie.
Het is mogelijk dat je een driver moet gebruiken die apart van de kernelsource wordt gedistribueerd. Gewoonlijk moet je dan de kernel patchen. Nogmaals, in de Kernel HOWTO staat uitgelegd hoe je dit doet.
Je kunt de kernel configureren met behulp van een tekstgeöriënteerd programma door gebruik te maken van "make config", een menugeöriënteerd kernelconfiguratieprogramma aangeroepen door "make menuconfig" en een op X11 gebaseerde grafische configuratie aangeroepen als "make xconfig". Deze configuratiemethoden bieden allen online hulp.
De kernel gebruikt ter identificatie van de te gebruiken device driver apparaatbestanden. Als je een standaard Linux distributie draait, dan zijn de noodzakelijke apparaatbestanden wellicht al aangemaakt tijdens de installatie. Onder Slackware Linux bijvoorbeeld, bestaat een menugeöriënteerde setuptool waarin de setup van de CD-ROM is opgenomen en de meeste systemen hebben een /dev/MAKEDEV script. Als je geen gebruikt maakt van deze methoden dan kun je de meer handmatige procedure gebruiken die in deze sectie wordt weergegeven. Zelfs als je een van deze methoden gebruikt, dan is het aan te bevelen dat je op z'n minst de apparaatbestanden verifieert aan de hand van de informatie in deze sectie.
Maak je gebruik van het nieuwe devfs bestandssysteem in de nieuwere 2.4 kernels, dan worden de apparaatbestanden dynamisch door de kernel aangemaakt in plaats van dat ze op disk voorkomen, en volgen ze een andere naamconventie. Bij de voorbeelden in dit document wordt ervan uitgegaan dat geen gebruik wordt gemaakt van devfs, en ze moeten wellicht dienovereenkomstig worden aangepast als je er wel gebruik van maakt.
Je maakt het apparaatbestand aan door de shellopdrachten uit te voeren die je type drive aangeven. Dit moet worden uitgevoerd als root gebruiker. Een aantal Linux distributies gebruikt wellicht iets andere CD-ROM devicenamen dan die hier is weergegeven.
Ik raad je ook aan een symbolische link aan te maken naar het CD-ROM device om het eenvoudiger te kunnen onthouden. Voor een IDE CD-ROM station bijvoorbeeld dat is aangesloten als het tweede apparaat op de secondaire interface, zou de link worden aangemaakt met:
# ln -s /dev/hdd /dev/cdrom |
Als je audio-CD's af wilt kunnen spelen, dan moet je de protectie op het apparaatbestand instellen (het echte bestand, niet de symbolisch link ernaar) om alle gebruikers ervan te kunnen laten lezen, b.v.
# chmod 664 /dev/hdd # ls -l /dev/hdd brw-rw-r-- 1 root disk 22, 64 Feb 4 1995 /dev/hdd |
Een aantal Linux distributies maakt gebruik van groeppermissies om de toegang tot devices zoals CD-ROM's te besturen. Een algemene conventie is om alleen leden van een groep genaamd cdrom toegang te verschaffen. In dit geval moet je de juiste gebruikers aan de groep toevoegen in plaats van de bestandspermissies van het apparaatbestand wijzigen.
Bij het booten van Linux proberen de devicedrivers vast te stellen of de geschikte devices aanwezig zijn, kenmerkend door specifieke adressen uit te proberen. Veel van de drivers proberen automatisch verscheidene adressen uit, maar vanwege de verschillen in de configuratie, mogelijke deviceconflicten en hardwarebeperkingen hebben de drivers soms hulp nodig bij het identificeren van de adressen en andere parameters. De meeste drivers ondersteunen een optie om op de opdrachtregel van de kernel deze informatie aan de devicedriver door te geven. Dit kan interactief worden geregeld, of wat gebruikelijker, via een configuratie in de bootloader. Met LILO bijvoorbeeld zou je een append opdracht zoals de volgende aan het bestand /etc/lilo.conf toevoegen:
append = "sbpcd=0x230,SoundBlaster" |
Zie de documentatie behorend bij LILO voor meer informatie.
In de volgende sectie bespreek ik onderwerpen specifiek voor individuele devicedrivers, waaronder apparaatbestanden, bootparameters en de mogelijkheden van de verschillende drivers. Je hoeft waarschijnlijk alleen dat deel te lezen dat van toepassing is op je type drive. De documentatiebestanden zijn gewoonlijk te vinden in de directory /usr/src/linux/Documentation/cdrom.
Voornaamste auteur: | Eberhard Moenkeberg (emoenke@gwdg.de) |
Multisessie support: | ja (maar niet alle drives) |
Multiple drive support: | ja |
Laadbare module support: | ja |
Lezen van audio frames: | ja (CR-562, CR-563, CD-200 only) |
Auto-probing: | ja |
Devicebestand: | /dev/sbpcd, major 25 |
Configuratiebestand: | sbpcd.h |
Kernel config optie: | Matsushita/Panasonic CDROM support |
Documentatiebestand: | sbpcd |
Deze driver accepteert een kernelopdrachtregel in de vorm:
sbpcd=<io-address>,<interface-type> |
waar de eerste parameter het basisadres van het device is (b.v. 0x230), en <interface-type> één van "SoundBlaster", "LaserMate", of "SPEA". Zie het bestand sbpcd.h voor aanwijzigingen welk type interface te gebruiken. Het gebruik van sbpcd=0 deactiveert auto-probing, de driver deactiverend.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/sbpcd b 25 0 |
Er worden vier drives per controller ondersteund. De volgende drie drives op de eerste controller moeten de devicenummers 1 tot en met 3 gebruiken. Maak devices met majornummers 26, 27, en 28 aan tot aan een maximum van 4 controllers, als je meer dan één controller hebt. (dit zijn 16 CD-ROM stations in totaal; hopelijk voor de meeste gebruikers genoeg :-).
Zie het bestand sbpcd voor meer informatie over deze driver.
Als je onlangs een CD-ROM station kocht, veronderstel dan niet dat het deze kerneldriver gebruikt als het verbonden is met een SoundBlaster kaart. De meeste CD-ROM stations die door Creative Labs worden verkocht, zijn nu EIDE/ATAPI drives.
Voornaamste auteur: | Ken Pizzini (ken@halcyon.com) |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/sonycd535, major 24 |
Configuratiebestand: | sonycd535.h |
Kernel config optie: | Sony CDU535 CDROM support |
Documentatiebestand: | sonycd535 |
Deze driver accepteert een kernelopdrachtregel in de vorm:
sonycd535=<io-address> |
waar <io-address> het basisadres is van de controller (b.v. 0x320). Als alternatief kun je het adres in het bestand sonycd535.h instellen en het compileren.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/sonycd535 b 24 0 |
Een aantal Linux distributies gebruikt /dev/sonycd voor dit device. Oudere versies van de driver gebruikten major devicenummer 21; zorg dat je apparaatbestand juist is.
Deze driver werd voorheen als een patch gedistribueerd, maar maakt nu onderdeel uit van de standaardkernel. Zie het bestand sonycd535 voor meer informatie over deze driver.
Voornaamste auteur: | Corey Minyard (minyard@-rch.cirr.com) |
Multisessie support: | ja |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | ja |
Auto-probing: | nee |
Devicebestand: | /dev/cdu31a, major 15 |
Configuratiebestand: | cdu31a.h |
Kernel config optie: | Sony CDU31A/CDU33A CDROM support |
Documentatiebestand: | cdu31a |
Deze driver accepteert een kernelopdrachtregel in de vorm:
cdu31a=<io-address>,<interrupt>,PAS |
Het eerste nummer is het I/O basisadres van de kaart (b.v. 0x340). De tweede is het te gebruiken interruptnummer (0 betekent het gebruik van polled i/o). De optionele derde parameter zou "PAS" moeten zijn als de drive is aangesloten op een Pro-Audio Spectrum 16 geluidskaart en moet anders leeg worden gelaten.
Als de driver als een module is geladen, dan gebruikt het een iets ander formaat. Wanneer de driver met behulp van de opdracht modprobe of insmod wordt geladen, dan worden de parameters opgegeven in de vorm:
cdu31a_port=<io-address> cdu31a_irq=<interrupt> |
Het basis io-adres is vereist terwijl het interruptnummer optioneel is.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/cdu31a b 15 0 |
Zie het bestand cdu31a voor meer informatie over deze driver.
Voornaamste auteur: | Werner Zimmermann (zimmerma@rz.fht-esslingen.de) |
Multisessie support: | ja |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/aztcd0, major 29 |
Configuratiebestand: | aztcd.h |
Kernel config optie: | Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support |
Documentatiebestand: | aztcd |
Deze driver accepteert een kernelopdrachtregel in de vorm:
aztcd=<io-address> |
waar de parameter het I/O basisadres is van de kaart (b.v. 0x340).
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/aztcd0 b 29 0 |
Deze driver is alleen bestemd voor de CDA268-01A. Andere modellen waaronder de CDA268-03I en CDA269-031SE zijn niet gepatenteerd en zouden gebruik moeten maken van de IDECD (ATAPI) kerneldriver.
Zie het bestand aztcd voor meer informatie over deze driver.
Voornaamste auteur: | Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de) |
Multisessie support: | nee |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/gscd0, major 16 |
Configuratiebestand: | gscd.h |
Kernel config optie: | Goldstar R420 CDROM support |
Documentatiebestand: | gscd |
Deze driver accepteert een kernelopdrachtregel in de vorm:
gscd=<io-address> |
het I/O basisadres van de kaart aangevend (b.v. 0x340).
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/gscd0 b 16 0 |
Zie het bestand gscd voor meer informatie over deze driver.
Voornaamste auteur: | Martin (martin@bdsi.com) |
Multisessie support: | nee |
Multiple drive support: | nee |
Laadbare module-support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/mcd, major 23 |
Configuratiebestand: | mcd.h |
Kernel config optie: | Standaard Mitsumi CDROM support |
Documentatiebestand: | mcd |
Dit is de oudere driver voor Mitsumi drivers welke een tijdje beschikbaar was. Wellicht dat je de nieuwere mcdx driver wilt proberen, die een aantal nieuwe features bevat, maar mogelijk minder stabiel is.
Deze driver accepteert een kernelopdrachtregel in de vorm:
mcd=<io-address>,<irq> |
het I/O basisadres van de kaart aangevend (b.v. 0x340) en het gebruikte IRQ nummer.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/mcd b 23 0 |
Zie het bestand mcd voor meer informatie over deze driver.
Voornaamste auteur: | Heiko Schlittermann |
Multisessie support: | ja |
Multiple drive support: | ja |
Laadbare module support: | ja |
Lezen van audio frames: | nee (niet ondersteund door hardware) |
Auto-probing: | nee |
Devicebestand: | /dev/mcdx0, major 20 |
Configuratiebestand: | mcdx.h |
Kernel config optie: | Experimentele Mitsumi support |
Documentatiebestand: | mcdx |
Dit is een nieuwere driver voor Mitsumi drivers. De oudere en mogelijk stabielere mcd driver is nog steeds beschikbaar.
Deze driver accepteert een kernelopdrachtregel in de vorm:
mcdx=<io-address>,<irq> |
het I/O basisadres van de kaart aangevend (b.v. 0x340) en het gebruikte IRQ nummer.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/mcdx0 b 20 0 |
Als je pas geleden een Mitsumi CD-ROM station kocht, veronderstel dan niet dat het deze kerneldriver zou moeten gebruiken. Nieuwe Mitsumi drives zijn nu EIDE/ATAPI compatibel en zouden in plaats daarvan de idecd kerneldriver moeten gebruiken.
Zie het bestand mcdx voor meer informatie over deze driver.
Voornaamste auteur: | David A. van Leeuwen (david@tm.tmo.nl) |
Multisessie support: | ja |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | ja |
Devicebestand: | /dev/cm206cd, major 32 |
Configuratiebestand: | cm206.h |
Kernel config optie: | Philips/LMS CM206 CDROM support |
Documentatiebestand: | cm206 |
De driver accepteert een kernelopdrachtregel in de vorm:
cm206=<io-address>,<interrupt> |
waar het eerste nummer het I/O basisadres is van de kaart (b.v. 0x340). De tweede is het interruptkanaal.
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/cm206cd b 32 0 |
Zie het bestand cm206 voor meer informatie over deze driver.
Voornaamste auteur: | Leo Spiekman (spiekman@dutette.et.tudelft.nl) |
Multisessie support: | ja |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/optcd0, major 17 |
Configuratiebestand: | optcd.h |
Kernel config optie: | Experimentele Optics Storage ... CDROM support |
Documentatiebestand: | optcd |
De driver accepteert een kernelopdrachtregel in de vorm
optcd=<io-address> |
om het I/O basisadres op te geven van de kaart (b.v. 0x340).
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/optcd0 b 17 0 |
Zie het bestand optcd voor meer informatie over deze driver.
Voornaamste auteur: | Vadim V. Model (vadim@rbrf.msk.su) |
Multisessie support: | nee |
Multiple drive support: | nee |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | nee |
Devicebestand: | /dev/sjcd, major 18 |
Configuratiebestand: | sjcd.h |
Kernel config optie: | Experimentele Sanyo H94A CDROM support |
Documentatiebestand: | sjcd |
De driver accepteert een kernelopdrachtregel in de vorm:
sjcd=<io-address>,<interrupt>,<dma> |
het te gebruiken basisadres, het interrupt en DMA kanaal aangevend (b.v. sjcd=0x340,10,5).
Het apparaatbestand kan worden aangemaakt met:
# mknod /dev/sjcd b 18 0 |
Zie het bestand sjcd voor meer informatie over deze driver.
Voornaamste auteur: | Grant R. Guenther (grant@torque.net) |
Multisessie support: | nee |
Multiple drive support: | ja |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | ja |
Devicebestand: | /dev/pcd0, major 46 |
Configuratiebestand: | bpcd.h |
Kernel config optie: | parallelle poort IDE device support |
Documentatiebestand: | paride.txt |
Dit is de driver voor diverse typen opslagdevices die zijn aangesloten op een parallelle poort. Normaal gesproken zal de driver het parallelle poort device automatisch detecteren. De documentatie beschrijft de parameters die kunnen worden gebruikt om de device parameters te specificeren als de auto-detectie niet werkt.
Het apparaatbestand voor de eerste drive kan worden aangemaakt met:
# mknod /dev/pcd0 b 46 0 |
Zie het bestand /usr/src/linux/Documentation/paride.xt voor meer informatie over deze driver. Deze driver vervangt de bpcd driver die in oudere kernels aanwezig was.
Voornaamste auteur: | David Giller |
Multisessie support: | ja (afhankelijk van de drive) |
Multiple drive support: | ja |
Laadbare module support: | ja |
Lezen van audio frames: | nee |
Auto-probing: | ja |
Devicebestand: | /dev/scd0, major 11 |
Configuratiebestand: | cdrom.h |
Kernel config optie: | SCSI CDROM support |
Documentatiebestand: | scsi.txt |
Er zijn kernelopdrachtregelopties specifiek voor elk type SCSI controller. Zie de SCSI HOWTO voor meer informatie.
Er worden meerdere drives ondersteund (tot aan het limiet van het maximum aantal devices op de SCSI-bus). Maak apparaatbestanden aan met majornummer 11 en minornummers beginnend bij nul:
# mknod /dev/scd0 b 11 0 # mknod /dev/scd1 b 11 1 |
Ondanks dat de kerneldriver zelf het lezen van digitale audio frames niet ondersteunt, heeft een aantal SCSI-drives die mogelijkheid wel en werken die onder het programma cdda2wav (welke gebruik maakt van een generic SCSI-kernelinterface).
Zie ook de bespreking van de IDE SCSI emulatie driver eerder in dit document.
Voornaamste auteur: | Scott Snyder (snyder@fnald0.fnal.gov) |
Multisessie support: | ja |
Multiple drive support: | ja |
Laadbare module support: | nee |
Lezen van audio frames: | ja (op ondersteunde drives) |
Auto-probing: | yes |
Devicebestand: | /dev/hd{a,b,c,d}, major 22 |
Configuratiebestand: | cdrom.h |
Kernel config optie: | Bevat ondersteuning voor IDE/ATAPI CDROM's |
Documentatiebestand: | ide-cd |
Dit is de driver voor ATAPI CD-ROM's. De driver accepteert een kernelopdrachtregel in de vorm
hdx=cyls,heads,sects,wpcom,irq of hdx=cdrom |
waar hdx één van [hda,hdb,hdc,hdd] kan zijn, of simpelweg hd, voor de "volgende" drive in de reeks. Alleen de eerste drie parameters zijn vereist (cyls,heads,sects). Bijvoorbeeld hdc=1050,32,64 hdd=cdrom.
Het kan lastig zijn de IDE-driver je CD-ROM te laten herkennen, vooral als je meer dan 2 of meer devices of meer dan één IDE controller hebt. Gewoonlijk hoef je alleen de juiste opdrachtregelopties aan LILO door te geven. In het bestand /usr/src/linux/Documentation/cdrom/ide-cd wordt dit uitgelegd. Lees dit zorgvuldig door.
Recente Linux kernels bieden betere ondersteuning voor meerdere IDE-devices. Als je problemen ondervindt bij een oudere kernel, kan een upgrade helpen.
Bij een aantal IDE controllers doen zich problemen voor welke de kerneldriver kan omzeilen. Wellicht dat je extra parameters moet doorgeven aan de driver om dit te activeren. Zie de documentatie voor details.
Je kunt nu het systeem opnieuw opstarten met de nieuwe kernel. Kijk uit naar een melding zoals het volgende, welke aangeeft dat de CD-ROM werd aangetroffen door de device driver (de melding zal variëren afhankelijk van het type drive):
hdd: TOSHIBA CD-ROM XM-7002B, ATAPI CD/DVD-ROM drive |
Als de opstartmeldingen te snel voorbij scrollen waardoor je ze niet kunt lezen, dan moet het mogelijk zijn ze op te halen met behulp van dmesg of tail /var/log/messages.
Als de drive niet werd aangetroffen, dan heeft een probleem plaatsgevonden. Zie de sectie over probleemoplossing.
Doe een dics in de drive en geef de opdracht mount als root om een CD-ROM te mounten (hierbij wordt verondersteld dat je een symbolische link naar je apparaatbestand hebt aangemaakt zoals eerder aanbevolen en dat een lege directory met de naam /mnt/cdrom voorkomt):
# mount -t iso9660 -r /dev/cdrom /mnt/cdrom |
De CD kan nu worden benaderd onder de directory /mnt/cdrom.
Er zijn andere opties voor de mount opdracht die je wellicht wenst te gebruiken; zie de mount(8) man page voor details.
Je kunt een regel toevoegen aan /etc/fstab om automatisch een CD-ROM te mounten wanneer Linux opstart of om parameters op te geven die moeten worden gebruikt wanneer het wordt gemount; zie de fstab(5) man page.
Probeer audio-CD's niet te mounten als je ze af wilt spelen.
Gebruik de opdracht umount als root om een CD-ROM te unmounten:
# umount /mnt/cdrom |
De disc kan alleen worden losgekoppeld van het bestandssysteem als er geen processen zijn die thans de drive benaderen (waaronder de standaarddirectory ingesteld op de gemounte drive). Je kunt de disc dan uitwerpen. De meeste discs zijn voorzien van een uitwerpknop; er bestaat ook nog een standalone eject programma waarmee onder de besturing van software CD-ROM's kunnen worden uitgeworpen.
Werp een disc niet uit als het is gemount (dit kan afhankelijk van het type drive wel of niet mogelijk zijn). Een aantal CD-ROM drivers kan een CD-ROM automatisch uitwerpen als het wordt losgekoppeld van het bestandssysteem en de CD-lade dichtdoen wanneer een disc wordt gemount (je kunt deze feature uitzetten bij het compileren van de kernel of met behulp van een softwarematige opdracht).
Het is mogelijk dat na het afspelen van een audio-CD je geen CD-ROM kunt mounten. Je moet een CD-audio "stop" opdracht versturen (met een CD-speler programma) voor je probeert te mounten. Dit probleem doet zich alleen voor bij de SBPCD-driver.
Recente kernels ondersteunen een op de kernel gebaseerde automounter die voorziet in het transparant mounten van verwijderbare media waaronder CD-ROM's. Je kunt de benodigde tools vinden op ftp://ftp.kernel.org/pub/linux/daemons/autofs/.
Als je nog steeds problemen ondervindt na het opvolgen van de instructies in deze HOWTO, dan zijn hier nog een aantal controles die je uit kunt voeren. De controles staan in oplopende volgorde van complexiteit. Als een controle mislukt, dan moet je het probleem eerst oplossen voordat je verdergaat naar de volgende fase.
Je kunt de datumstempel van de kernel controleren om te bezien of je die kernel draait die je compileerde met ondersteuning voor je CD-ROM. Je kunt dit doen met de opdracht uname:
% uname -a Linux moe 2.4.4 #1 Sat Apr 28 10:30:45 EDT 2001 i686 unknown |
of door het weergeven van het bestand /proc/version:
% cat /proc/version Linux version 2.4.4 (root@moe) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) #1 Sat Apr 28 10:30:45 EDT 2001 |
Als de datumstempel niet overeenkomt met de datum dat je de kernel compileerde, dan is een oude kernel actief. Dacht je eraan om je systeem te herstarten? Als je gebruik maakt van LILO, installeerde je het dan opnieuw (typisch door de uitvoering van /sbin/lilo)? Als je van diskette boot, heb je dan een nieuwe opstartdiskette aangemaakt en deze gebruikt om te booten?
Je kunt zien welke drivers zijn meegecompileerd door /proc/devices te bekijken:
% cat /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 ttyS 5 cua 7 vcs Block devices: 3 ide0 22 ide1 |
Zoek als eerste naar de devicedriver van je CD-ROM. Dit zijn allen block devices. In dit geval zien we dat de idecd driver met majornummer 22 aanwezig is.
Zorg ook dat de ondersteuning voor het ISO-9660 bestandssysteem werd meegecompileerd. Controleer dit door /proc/filesystems te bekijken:
% cat /proc/filesystems ext2 nodev proc nodev devpts vfat iso9660 |
Je kunt ook zien welke i/o poortadressen door een driver worden gebruikt. Deze informatie is te vinden in het bestand /proc/ioports:
howto % cat /proc/ioports ... 0230-0233 : sbpcd ... |
Als een van de drivers waarvan je dacht dat deze zou worden meegecompileerd, niet wordt weergegeven, dan is er iets verkeerd gegaan bij de kernelconfiguratie of het compileren van de kernel. Start het installatieproces opnieuw, beginnend met de configuratie en het compileren van de kernel.
Kijk na of het CD-ROM station werd gedetecteerd toen de kernel werd geboot. Je zou hiervan een melding moeten hebben gezien tijdens het booten. Als de meldingen van het scherm scrollde, dan kun je ze gewoonlijk herroepen met de opdracht dmesg:
% dmesg |
of
% tail /var/log/messages |
Als je drive niet werd aangetroffen dan is er iets mis. Zorg dat deze aan staat (en stroom krijgt) en alle kabels verbonden zijn. Controleer op de juiste instelling van de hardwarejumpers als deze zich op de drive bevinden (b.v. drive 0 als je slechts één drive heb). ATAPI CD-ROM stations moeten worden gejumperd als "single" of "master", en niet als "slave" wanneer slechts één IDE device is aangesloten op een interface. Als de drive onder DOS werkt dan kun je er redelijk zeker van zijn dat de hardware functioneert.
Veel kerneldrivers maken gebruik van auto-probing, maar een aantal doet dit ook niet, en in ieder geval is de probing niet altijd betrouwbaar. Gebruik de kernelopdrachtregeloptie weergegeven voor je type kerneldriver. Wellicht dat je verschillende waarden kunt proberen als je niet zeker bent van het i/o adres of één van de andere parameters. LILO kan zo worden geconfigureerd (en gewoonlijk is dit ook zo) dat je de parameters tijdens het booten met de hand kunt opgeven.
Een andere mogelijkheid is dat je de verkeerde kerneldriver voor je CD-ROM driver gebruikt. In sommige documentatie wordt naar gepatenteerde interfaces gerefereerd als IDE, wat een aantal onjuist kan doen geloven dat het ATAPI drives zijn.
Een andere mogelijkheid is dat je drive (of interfacekaart) één van de "compatibele" types is waarvoor initialisatie door de DOS-driver noodzakelijk is. Probeer in DOS te booten en laadt de door de leverancier geleverde DOS devicedriver. Vervolgens moet je middels een Control-Alt-Delete Linux booten.
Wanneer je drive niet in dit document is weergegeven, dan is het mogelijk dat er geen drivers voor onder Linux beschikbaar zijn. Je kunt dit controleren met een aantal referenties die aan het einde van dit document zijn weergegeven.
Probeer te lezen van het CD-ROM station. Het typen van de volgende opdracht zou ervoor moeten zorgen dat de led (als deze aanwezig is) op de drive oplicht en er geen fouten worden gemeld. Gebruik het apparaatbestand dat van toepassing is op je drive en zorg dat er zich een CD-ROM in de drive bevindt; gebruik Control-C om te stoppen.
# dd if=/dev/cdrom of=/dev/null bs=2048 ^C 124+0 records in 124+0 records out |
Als dit werkt dan communiceert de kernel met de drive en kun je verdergaan met stap 5.
Zo niet, dan is een mogelijke oorzaak het apparaatbestand. Zorg dat het apparaatbestand in de directory /dev het correcte major- en minornummer heeft zoals eerder aangegeven voor je type drive. Ga na of de permissies op het apparaatbestand lezen en schrijven toestaat.
Een mogelijkheid is een hardware probleem. Probeer zo mogelijk de drive te testen onder een ander besturingssysteem om vast te stellen of dit het geval zou kunnen zijn.
Wanneer je wel van de drive kunt lezen maar het niet kunt mounten, moet je eerst verifiëren dat je de ondersteuning voor het ISO-9660 bestandssysteem hebt gecompileerd door het inlezen van /proc/filesystems, zoals eerder werd beschreven.
Zorg dat je het station mount met de opties "-t iso9660" en "-r" en met een ISO-9660 CD-ROM in het station waarvan bekend is dat deze goed is (geen Audio CD). Je moet drives normaal gesproken als root mounten.
Zorg dat het mountpoint bestaat en dat het een lege directory is.
Zorg dat je de juiste regels in het bestand /etc/fstab hebt staan als je de CD-ROM tijdens de systeemstart automatisch mount.
Als je de syslog daemon draait, dan kan het zijn dat er foutmeldingen van de kernel aan het oog worden onttrokken. Probeer de opdracht "dmesg":
% dmesg SBPCD: sbpcd_open: no disk in drive |
Afhankelijk van hoe je systeem is geconfigureerd, kunnen er foutmeldingen zijn gelogd naar bestanden in /var/log,
Als het station wel goed werkt met CD-ROM's, maar niet voor het afspelen van audio-CD's, dan zijn hier een aantal mogeljke oplossingen.
Je hebt een toepassingsprogramma nodig om audio-CD's af te spelen. Een aantal toepassingen kan gebrekkig zijn of niet compatibel met je drive. Probeer een andere toepassing en/of probeer ze zelf te compileren. Een prima plek om naar software te zoeken is ftp://www.ibiblio.org/pub/Linux/apps/sound/cdrom/.
Een paar van de CD-ROM stations ondersteunt het afspelen van audio-CD's niet. Kijk in het documentatiebestand of de broncode of dit het geval is.
Ga na of de audio kan worden afgespeeld via de hoofdtelefooningang. Zo ja, dan heeft het probleem naar alle waarschijnlijkheid te maken met je geluidskaart. Gebruik een mixerprogramma om het invoerdevice en het volumeniveau in te stellen. Zorg dat je een audio-kabel hebt geïnstalleerd die is verbonden van het CD-ROM station naar de geluidskaart. Zorg dat de kerneldriver voor de geluidskaart is geïnstalleerd en werkt (zie de Sound HOWTO).
Hier zijn nog een aantal laatste uit te proberen suggesties als er zich nog steeds problemen voordoen:
lees nogmaals zorgvuldig deze HOWTO door
lees de referenties opgesomd aan het einde van dit document, vooral de relevante kernel bronbestanden
post een vraag naar één van de comp.os.linux of andere Usenet nieuwsgroepen
stuur een vraag naar de Linux mailing list
probeer de laatste Linux kernel
neem contact op met de leverancier van je computer
neem contact op met de fabrikant van de CD-ROM
stuur een mail naar de beheerder van de relevante kerneldriver (kijk in het bestand /usr/src/linux/MAINTAINERS)
stuur mij een mail
start emacs op en typ Esc-x doctor :-)