L'installazione di un CD-ROM sotto Linux si compone dei seguenti passi:
La prossima sezione coprirà ognuno di questi punti in dettaglio.
Segui le istruzioni del produttore per installare l'hardware o fallo fare al tuo rivenditore. I dettagli varieranno a seconda che il drive sia esterno o interno ed in base del tipo dell'interfaccia utilizzata. Non ci sono requisiti di installazione particolari per Linux. Potrai aver bisogno di regolare i jumper (ponticelli) sul drive o sulla scheda d'interfaccia per un corretto funzionamento; alcuni driver del kernel includono file di documentazione che forniscono queste informazioni.
Come spiegato nel file ide-cd, i CD-ROM ATAPI dovrebbero essere impostati come "single" o "master", e non "slave" quando c'è solo un dispositivo attaccato all'interfaccia (sebbene questa restrizione non sia più posta dai più recenti kernel).
Se stai installando da zero Linux da CD-ROM probabilmente starai usando un disco di boot e/o root fornito come parte della distribuzione Linux. Se possibile, dovresti usare un disco di boot con i driver del kernel propri del tuo drive CD-ROM. Se non puoi trovare un disco di boot con i driver CD-ROM necessari, hai parecchie strade per risolvere il problema:
Il Linux Installation HOWTO contiene ulteriori informazioni sull'installazione di Linux. Se hai acquistato Linux su CD-ROM, probabilmente troverai allegate delle istruzioni di installazione (quel piccolo libretto nella custodia del CD, o qualche file sul CD stesso).
Una volta che Linux è stato installato, la maggior parte degli utenti vorranno compilare il loro kernel personalizzato, di solito per uno di questi motivi:
Dovresti dare un'occhiata al Linux Kernel HOWTO per avere maggiori dettagli sulla compilazione del kernel. Menzionerò solo alcuni particolari specifici per i drive CD-ROM.
Ovviamente, avrai bisogno di attivare il supporto per il tuo drive CD-ROM quando lanci un "make config".
Se hai un drive CD-ROM ATAPI, dovrai rispondere yes
(sì) alle domande:
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/?]
Per drive CD-ROM SCSI, abilita queste opzioni:
SCSI support (CONFIG_SCSI) [Y/n/m/?]
SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
Abilita anche il supporto per il tuo adattatore SCSI quando te ne viene data la possibilità, ad esempio:
Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [Y/n/m/?]
Per drive CD-ROM con interfaccia proprietaria, abilita il driver appropriato. Puoi usare la tabella di prima per determinare il driver da usare per il tuo modello.
Virtualmente tutti i CD-ROM usano il file system ISO-9660, perciò devi anche abilitare:
ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]
Sebbene non sia richiesto per far funzionare il CD-ROM, se hai una scheda audio supportata da Linux a questo punto potresti anche voler abilitare e configurare il driver del kernel per il supporto audio. Il Sound HOWTO può essere un riferimento valido.
Devi quindi seguire la procedura normale per compilare il kernel ed installarlo. Non fare il boot del nuovo kernel finché non crei tutti i file di dispositivo richiesti e non imposti i parametri di boot come descritto nella prossima sezione.
Il filesystem ISO-9660 e quasi tutti i driver CD-ROM possono essere compilati come moduli del kernel caricabili. Questa modalità permette ai driver del kernel di essere caricati e scaricati senza riavviare il kernel, liberando memoria. Raccomando di avviare l'installazione del CD-ROM dapprima usando driver compilati all'interno del kernel. Nella documentazione dei moduli e nel Kernel HOWTO puoi trovare descritto come usare i moduli.
Se un drive elencato non è supportato dal tuo kernel, probabilmente avrai bisogno di aggiornare quest'ultimo ad una nuova versione.
È possibile che ti serva usare un driver che è distribuito separatamente dai sorgenti del kernel. Di nuovo, il Kernel HOWTO spiega come farlo.
Nota che c'è una modalità di configurazione del kernel basata su menù, invocata da "make menuconfig" e una configurazione grafica basata su X11 invocata da "make xconfig". Tutt'e tre i metodi di configurazione offrono l'aiuto in linea.
Il kernel usa i file di dispositivo (device file) per identificare quale driver di dispositivo (device driver) usare. Se stai avviando una distribuzione Linux standard, puoi aver già creato i file necessari durante l'installazione. Nella Slackware, per esempio, c'è uno strumento di setup
basato su menù che comprende l'impostazione del CD-ROM, e la maggior parte dei sistemi hanno uno script /dev/MAKEDEV. Se non usi uno di questi metodi, raccomando almeno di verificare i file di dispositivo rispetto alle informazioni di questa sezione.
Puoi creare i file di dispositivo avviando i comandi di shell indicati per il tuo tipo di drive. Questo dovrebbe essere fatto come utente root
. Nota che alcune distribuzioni Linux possono usare nomi di dispositivi CD-ROM leggermente diversi da quelli elencati qui.
È raccomandabile anche che tu crei un link simbolico al dispositivo CD-ROM per renderlo più facile da ricordare. Per esempio, per un drive CD-ROM IDE che è il dispositivo secondario sull'interfaccia secondaria, il link potrebbe essere creato usando
# ln -s /dev/hdd /dev/cdrom
Se vuoi riprodurre CD audio, dovrai impostare la protezione sul file di dispositivo (il file vero, non il link simbolico ad esso) per permettere a tutti gli utenti di leggerlo, ad es.
# chmod 664 /dev/hdd
# ls -l /dev/hdd
brw-rw-r-- 1 root disk 22, 64 Feb 4 1995 /dev/hdd
Quando avvii linux, i driver di dispositivo tentano di determinare se sono presenti i dispositivi appropriati, tipicamente provando indirizzi specifici. Molti dei driver provano automaticamente su molti indirizzi, ma a causa delle differenze nella configurazione, di possibili conflitti, o di limitazioni hardware, alcune volte necessitano di aiuto per identificare gli indirizzi ed altri parametri. La maggior parte supporta una opzione nella riga di comando del kernel per ottenere queste informazioni. Questo può essere fatto interattivamente, o, più comunemente, configurato nel tuo boot loader. Con LILO, per esempio, dovresti aggiungere un comando append
come il seguente al tuo file /etc/lilo.conf:
append = "sbpcd=0x230,SoundBlaster"
Controlla la documentazione di LILO per maggiori informazioni.
Nella prossima sezione discuterò argomenti specifici per particolari driver di dispositivo, inclusi file di dispositivo, parametri di boot, e le caratteristiche supportate da quei driver. Probabilmente ti servirà solo leggere la sezione specifica al tuo particolare tipo di drive. I file di documentazione sono di solito rintracciabili nella directory /usr/src/linux/Documentation/cdrom.
Principale autore: Eberhard Moenkeberg (emoenke@gwdg.de) Supporto Multi-sessione: sì (ma non tutti i drive) Supporto per drive multipli: sì Supporto per moduli caricabili: sì Legge i frame audio: sì (ma solo CR-562, CR-563 e CD-200) Auto-probing: yes File di dispositivo: /dev/sbpcd, numero primario 25 File di configurazione: sbpcd.h Opzioni di configurazione nel Kernel: Matsushita/Panasonic CDROM support? File della documentazione: sbpcd
Questo driver accetta una linea di comando del kernel nella forma:
sbpcd=<indirizzo io>,<tipo di interfaccia>
Dove il primo parametro è l'indirizzo base del dispositivo (ad es. 0x230), ed il secondo è uno tra "SoundBlaster", "LaserMate", o "SPEA". Leggi il file sbpcd.h per suggerimenti su che tipo di interfaccia utilizzare. L'uso di sbpcd=0
disabilita la prova automatica (auto-probing), disabilitando il driver.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/sbpcd b 25 0
Sono supportati fino a quattro drive per controller. I successivi tre driver sul primo controller useranno il numero secondario di dispositivo da 1 a 3. Se hai più di un controller, aggiungi dispositivi con numero primario 26, 27 e 28, fino ad un massimo di quattro controller (questo fa 16 drive in totale; si spera siano abbastanza per la maggior parte degli utenti :-).
Leggi il file sbpcd per maggiori informazioni su questo driver.
Se hai acquistato un drive CD-ROM di recente, non credere che se è connesso ad una SoundBlaster debba per forza usare questo driver. La maggior parte dei CD-ROM venduti dalla Creative Labs sono ora EIDE/ATAPI.
Principale autore: Ken Pizzini (ken@halcyon.com) Supporto Multi-sessione: no Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/sonycd535, numero primario 24 File di configurazione: sonycd535.h Opzioni di configurazione nel Kernel: Sony CDU535 CDROM support? File della documentazione: sonycd535
Questo driver accetta una linea di comando del kernel nella forma:
sonycd535=<indirizzo io>
dove il parametro è l'indirizzo base del controller (ad es. 0x320). In alternativa puoi impostare l'indirizzo nel file sonycd535.h e compilarlo al suo interno.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/sonycd535 b 24 0
Alcune distribuzioni Linux usano /dev/sonycd per questi dispositivi. Versioni più vecchie del driver usavano come numero primario 21; assicurati che il tuo file di dispositivo sia corretto.
Questo driver era dapprima distribuito come una patch, ma ora è parte del kernel standard. Leggi il file sonycd535 per maggiori informazioni su questo driver.
Principale autore: Corey Minyard (minyard@-rch.cirr.com) Supporto Multi-sessione: sì Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: sì Auto-probing: no File di dispositivo: /dev/cdu31a, numero primario 15 File di configurazione: cdu31a.h Opzioni di configurazione nel Kernel: Sony CDU31A/CDU33A CDROM support? File della documentazione: cdu31a
Questo driver accetta una linea di comando del kernel nella forma:
cdu31a=<indirizzo io>,<interrupt>,PAS
Il primo numero è l'indirizzo I/O base della scheda (ad es. 0x340). Il secondo è il numero di interrupt da usare (0 significa usare un I/O gestito in polling). Il terzo parametro opzionale è "PAS" se il drive è connesso ad una scheda audio Pro Audio Spectrum 16, altrimenti va tralasciato.
Se il driver è caricato come modulo, usa un formato lievemente diverso. Quando carichi il driver usando i comandi modprobe o insmod, i parametri prendono la forma:
cdu31a_port=<indirizzo io> cdu31a_irq=<interrupt>
L'indirizzo I/O è richiesto, mentre il numero di interrupt è opzionale.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/cdu31a b 15 0
Leggi il file cdu31a per maggiori informazioni su questo driver.
Leggi anche la pagina web scritta da Jeffrey Oxenreider ( zureal@infinet.com) che copre molti problemi comuni con questi drive. Può essere trovata a http://lemures.shinma.symix.com/~zureal/cdu31a.html.
Principale autore: Werner Zimmermann (zimmerma@rz.fht-esslingen.de) Supporto Multi-sessione: sì Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/aztcd0, numero primario 29 File di configurazione: aztcd.h Opzioni di configurazione nel Kernel: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support? File della documentazione: aztcd
Questo driver accetta una linea di comando del kernel nella forma:
aztcd=<indirizzo io>
dove il parametro è l'indirizzo I/O base della scheda (ad es. 0x340).
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/aztcd0 b 29 0
Nota che questo driver è solo per il CDA268-01A. Altri modelli, compresi il CDA268-03I ed il CDA269-031SE non sono proprietari e usano il driver IDECD (ATAPI) del kernel.
Vedi il file aztcd per maggiori informazioni su questo driver.
Principale autore: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de) Supporto Multi-sessione: no Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/gscd0, numero primario 16 File di configurazione: gscd.h Opzioni di configurazione nel Kernel: Goldstar R420 CDROM support? File della documentazione: gscd
Questo driver accetta una linea di comando del kernel nella forma:
gscd=<indirizzo io>
specificando l'indirizzo I/O base della scheda (ad es. 0x340).
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/gscd0 b 16 0
Leggi il file gscd ed il sito web http://linux.rz.fh-hannover.de/~raupach/ per maggiori informazioni su questo driver.
Principale autore: Martin (martin@bdsi.com) Supporto Multi-sessione: no Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/mcd, numero primario 23 File di configurazione: mcd.h Opzioni di configurazione nel Kernel: Standard Mitsumi CDROM support? File della documentazione: mcd
Questo è il driver più vecchio di quelli Mitsumi; è stato disponibile per un certo tempo. Potresti provare il più nuovo driver mcdx
, che ha alcune caratteristiche in più ma potrebbe essere meno stabile.
Questo driver accetta una linea di comando del kernel nella forma:
mcd=<indirizzo io>,<irq>
specificando l'indirizzo I/O base della sceda (ad es. 0x340) e il numero di richiesta IRQ usato.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/mcd b 23 0
Vedi il file mcd per maggiori informazioni su questo driver.
Principale autore: Heiko Schlittermann Supporto Multi-sessione: sì Supporto per drive multipli: sì Supporto per moduli caricabili: sì Legge i frame audio: no (non supportato dall'hardware) Auto-probing: no File di dispositivo: /dev/mcdx0, numero primario 20 File di configurazione: mcdx.h Opzioni di configurazione nel Kernel: Experimental Mitsumi support? File della documentazione: mcdx
Questo è un driver nuovo per i drive Mitsumi. Il più vecchio e forse più stabile driver mcd
è ancora disponibile.
Questo driver accetta una linea di comando del kernel nella forma:
mcdx=<indirizzo io>,<irq>
specificando l'indirizzo base I/O della scheda (ad es. 0x340) e il numero di richiesta IRQ usato.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/mcdx0 b 20 0
Se hai di recente acquistato un drive CD-ROM Mitsumi, non dare per scontato che usi questi driver. I nuovi driver Mitsumi sono ora compatibili EIDE/ATAPI e usano il driver idecd del kernel.
Vedi il file mcdx per maggiori informazioni su questo driver.
Principale autore: David A. van Leeuwen (david@tm.tno.) Supporto Multi-sessione: sì Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: sì File di dispositivo: /dev/cm206cd, numero primario 32 File di configurazione: cm206.h Opzioni di configurazione nel Kernel: Philips/LMS CM206 CDROM support? File della documentazione: cm206
Questo driver accetta una linea di comando del kernel nella forma:
cm206=<indirizzo io>,<interrupt>
ove il primo numero è l'indirizzo base I/O della scheda (per es. 0x340). Il secondo è il canale d'interrupt.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/cm206cd b 32 0
Consulta il file cm206 per maggiori informazioni su questo driver.
Principale autore: Leo Spiekman (spiekman@dutette.et.tudelft.nl) Supporto Multi-sessione: sì Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/optcd0, numero primario 17 File di configurazione: optcd.h Opzioni di configurazione nel Kernel: Experimental Optics Storage ... CDROM support? File della documentazione: optcd
Questo driver accetta una linea di comando del kernel nella forma:
optcd=<indirizzo io>
per fornire l'indirizzo I/O base della scheda (ad es. 0x340).
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/optcd0 b 17 0
Vedi il file optcd per maggiori informazioni su questo driver.
Principale autore: Vadim V. Model (vadim@rbrf.msk.su) Supporto Multi-sessione: no Supporto per drive multipli: no Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: no File di dispositivo: /dev/sjcd, numero primario 18 File di configurazione: sjcd.h Opzioni di configurazione nel Kernel: Experimental Sanyo H94A CDROM support? File della documentazione: sjcd
Questo driver accetta una linea di comando del kernel nella forma:
sjcd=<indirizzo io>,<interrupt>,<DMA>
indicando l'indirizzo base, l'interrupt ed il canale DMA da usare (ad es. sjcd=0x340,10,5).
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/sjcd b 18 0
Consulta il file sjcd per maggiori informazioni su questo driver.
Principale autore: Grant R. Guenther (grant@torque.net) Supporto Multi-sessione: no Supporto per drive multipli: sì Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: sì File di dispositivo: /dev/pcd0, numero primario 46 File di configurazione: bpcd.h Opzioni di configurazione nel Kernel: Parallel port IDE device support? File della documentazione: paride.txt
Questo è un driver per vari tipi di dispositivi di memorizzazione che si collegano alla porta parallela. Normalmente il driver riconoscerà automaticamente il dispositivo per porta parallela. La documentazione descrive i parametri da usare nel caso il riconoscimento automatico fallisca.
Il file di dispositivo può essere creato utilizzando:
# mknod /dev/pcd0 b 46 0
Vedi il file /usr/src/linux/Documentation/paride.txt per maggiori informazioni su questo driver. Nota che questo sostituisce il vecchio driver bpcd che era presente nei vecchi kernel.
Principale autore: David Giller Supporto Multi-sessione: sì (dipende dal drive) Supporto per drive multipli: sì Supporto per moduli caricabili: sì Legge i frame audio: no Auto-probing: sì File di dispositivo: /dev/scd0, numero primario 11 File di configurazione: cdrom.h Opzioni di configurazione nel Kernel: SCSI CDROM support? File della documentazione: scsi.txt
Ci sono opzioni da riga di comando del kernel specifiche per ogni tipo di controller SCSI. Vedi lo SCSI HOWTO per maggiori informazioni.
Sono supportati drive multipli (fino al limite del numero massimo di dispositivi sul bus SCSI). Crea i file di dispositivo con il numero primario impostato a 11 ed il secondario a partire da zero:
# mknod /dev/scd0 b 11 0
# mknod /dev/scd1 b 11 1
Mentre il driver del kernel in sè e per sè non supporta la lettura di audio digitale, alcuni drive SCSI ne hanno la possibilità e funzioneranno con programmi come cdda2wav (che usano l'interfaccia generica SCSI del kernel).
Vedi anche la disamina dell'emulatore SCSI per IDE più sopra in questo documento.
Principale autore: Scott Snyder (snyder@fnald0.fnal.gov) Supporto Multi-sessione: sì Supporto per drive multipli: sì Supporto per moduli caricabili: no Legge i frame audio: sì (sui drive che supportino tale funzione) Auto-probing: sì File di dispositivo: /dev/hd{a,b,c,d}, numero primario 22 File di configurazione: cdrom.h Opzioni di configurazione nel Kernel: Include support for IDE/ATAPI CDROMs? File della documentazione: ide-cdgscd
Questo è il driver per i CD-ROM ATAPI. Accetta una linea di comando del kernel nella forma:
hdx=cyls,heads,sects,wpcom,irq
o
hdx=cdrom
dove hdx
può essere uno tra {hda,hdb,hdc,hdd}, o semplicemente hd, per il drive "successivo" nella sequenza. Solo i primi tre parametri sono richiesti (cyls,heads,sects). Per esempio, hdc=1050,32,64 hdd=cdrom
.
Convincere il driver IDE a riconoscere il tuo CD-ROM può essere difficoltoso, specialmente se hai più di due dispositivi su più di un controller. Di solito tutto ciò che serve è passare le giuste opzioni da riga di comando usando LILO. Il file /usr/src/linux/Documentation/cdrom/ide-cd spiega come fare. Leggilo con attenzione.
I kernel di Linux più recenti hanno un migliore supporto per dispositivi IDE multipli. Se hai problemi con un vecchio kernel, aggiornarlo può aiutare.
Alcuni controller IDE hanno problemi hardware che il driver del kernel può aggirare. Puoi aver bisogno di passare parametri addizionali al driver per abilitare queste modalità. Vedi la documentazione per dettagli maggiori.
Adesso puoi riavviare col nuovo kernel. Controlla i messaggi di boot cercandone uno come il seguente, che indica che il CD-ROM è stato trovato dal driver (il messaggio varierà a seconda del tipo di drive):
hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
Se i messaggi passano troppo veloci per essere letti, puoi riguardarli usando dmesg
o tail /var/log/messages
.
Se il drive non è trovato, c'è un problema. Consulta la sezione sulla risoluzione di problemi.
Per montare (mount) un CD-ROM, inserite un disco nel drive, e avviate il comando mount
come root
(l'esempio seguente dà per scontato che tu abbia creato un link simbolico al file di dispositivo come descritto prima e che esista una directory vuota /mnt/cdrom):
# mount -t iso9660 -r /dev/cdrom /mnt/cdrom
Si può ora accedere al CD nella cartella /mnt/cdrom.
Ci sono altre opzioni per il comando mount che puoi aver bisogno di usare; vedi la pagina man mount(8)
per maggiori dettagli.
Puoi aggiungere una voce a /etc/fstab per montare automaticamente un CD-ROM al boot o per specificare i parametri da usare quando viene montato; consulta la pagina man fstab(5)
.
Nota che per riprodurre CD audio non devi montarli.
Per smontare (unmount) un CD-ROM, usa il comando umount
come root
:
# umount /mnt/cdrom
Il disco può essere smontato solo se nessun processo sta attualmente accedendo al drive (incluso se hanno le loro directory di default settate sul drive stesso). Puoi quindi espellere il disco. La maggior parte dei drive hanno un bottone di espulsione; c'è anche un programma eject che permette di espellere il CD-ROM via software.
Nota che non dovresti espellere un disco mentre è montato (questo può essere possibile o no a seconda del tipo di drive). Alcuni CD-ROM possono automaticamente espellere un CD-ROM quando viene smontato e caricare il carrello quando viene montato (puoi disabilitare questa funzione compilando il kernel o usando un comando software).
È possibile che dopo aver riprodotto un CD audio tu non sia più in grado di montare un CD-ROM. Devi allora mandare un comando CD audio "STOP" (usando un programma per la riproduzione di CD) prima di riprovare a montare. Questo problema sembra solo accadere col driver SBPCD.
I kernel più recenti supportano un automounter basato sul kernel che fornisce un montaggio trasparente all'utente di media rimovibili, inclusi i CD-ROM. Puoi trovare gli strumenti che servono su ftp://ftp.kernel.org/pub/linux/daemons/autofs/.
Se ancora incontri problemi dopo aver seguito le istruzioni nell'HOWTO, qui ci sono alcune cose che puoi controllare. I controlli sono elencati in ordine crescente di complessità. Se un controllo non dà esito positivo, risolvi il problema prima di passare al successivo.
Controlla la data del kernel per vedere se stai avviando quello che hai compilato col supporto per CD-ROM. Puoi farlo col comando uname
:
% uname -a
Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown
o visualizzando il file /proc/version:
% 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
Se la data non corrisponde a quando hai compilato il kernel, stai avviandone uno vecchio. Ti sei ricordato di riavviare? Se usi LILO, l'hai reinstallato (tipicamente lanciando/sbin/lilo)? Se stai facendo il boot da floppy, ne hai creato uno nuovo e lo stai usando?
Puoi verificare quali driver sono compilati nel kernel consultando /proc/devices:
% cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyS
5 cua
7 vcs
Block devices:
3 ide0
22 ide1
Per prima cosa cerca il tuo driver di dispositivo CD-ROM. Quelli qui sopra sono tutti dispositivi a blocchi, in questo caso possiamo vedere che il driver idecd
con numero primario 22 era presente.
Assicurati pure che il supporto per il filesystem ISO-9660 sia compilato, guardando in /proc/filesystems:
% cat /proc/filesystems
ext2
nodev proc
nodev devpts
vfat
iso9660
Puoi anche vedere che indirizzi di porta i/o sono utilizzati da un driver con il file /proc/ioports:
howto % cat /proc/ioports
...
0230-0233 : sbpcd
...
Se qualcuno dei driver che pensavi di aver compilato nel kernel non sono visualizzati, allora qualcosa è andato storto al momento di configurare o compilare il kernel. Ricomincia il processo di installazione, cominciando dalla configurazione e compilazione del kernel.
Assicurati che il dispositivo CD-ROM sia stato trovato quando il kernel si è avviato. Se i messaggi sono passati troppo velocemente, puoi di solito richiamarli usando il comando dmesg
:
% dmesg
o
% tail /var/log/messages
Se il driver non è stato trovato allora qualcosa è andato storto. Assicurati che l'alimentazione sia collegata e che tutti i cavi siano inseriti correttamente. Se il tuo drive ha jumper hardware per l'indirizzamento, controlla che siano impostati correttamente (per es. come drive 0 se hai un solo drive). I CD-ROM ATAPI devono essere impostati come "single" o "master" e non come "slave" quando un solo dispositivo è collegato ad una interfaccia. Se il drive funziona sotto DOS allora puoi essere relativamente certo che l'hardware sia impostato correttamente.
Molti driver del kernel usano l'auto-probing, ma alcuni no, e in ogni caso la prova automatica non è sempre attendibile. Puoi aver bisogno di provare numerosi differenti valori se non sei sicuro dell'indirizzo di I/O o degli altri parametri. LILO può essere (e di solito lo è) configurato per permetterti di inserire i parametri manualmente al boot.
Un'altra possibilità è che tu abbia usato il driver del kernel sbagliato per il tuo drive CD-ROM. Certa documentazione può riferirsi a interfacce proprietarie come IDE, portando alcuni a credere, sbagliando, di essere in possesso di drive ATAPI.
Un'altra possibilità è che il tuo drive (o scheda di interfaccia) sia uno dei tipi 'compatibili' che richiedono inizializzazione dal driver DOS. Prova ad avviare DOS e caricare il driver per DOS fornito dal produttore. Poi riavvia Linux facendo un soft boot con Control-Alt-Canc
.
Se il tuo drive non è nominato in questo documento, è possibile che non ci siano driver disponibili per esso sotto Linux. Puoi controllare presso alcuni dei riferimenti elencati alla fine di questo documento per avere assistenza.
Prova a leggere dal drive CD-ROM. L'immissione dei seguenti comandi dovrebbe provocare l'accensione della spia di attività (se presente) e nessun errore dovrebbe essere riportato. Usa il file di dispositivo appropriato per il tuo drive e assicurati che un CD-ROM sia inserito; usa Control-C per uscire.
# dd if=/dev/cdrom of=/dev/null bs=2048
^C
124+0 records in
124+0 records out
Se questo funziona, allora il kernel comunica col drive e puoi passare al punto 5.
Altrimenti, una possibile causa è il file di dispositivo. Assicurati che il file nella directory /dev abbia i numeri primario e secondario corretti come elencato prima per il tuo tipo di driver. Controlla che i permessi per tale file ne permettano la lettura e scrittura.
Una possibilità remota è che tu abbia un problema hardware. Prova il drive sotto un altro sistema operativo, se possibile, per determinare se questo è il tuo caso.
Se puoi leggere dal drive ma non montarlo, prima verifica di aver compilato nel kernel il supporto per il filesystem ISO-9660 leggendo /proc/filesystems, come descritto prima.
Assicurati di aver montato il drive con le opzioni "-t iso9660" e "-r" e che nel lettore sia inserito un CD-ROM ISO9660 (non un audio CD) che tu sappia valido. Normalmente devi montare i drive solo come utente root
.
Assicurati che il mount point esista e sia una directory vuota.
Se stai montando automaticamente il CD-ROM al boot, assicurati di avere le voci corrette nel file /etc/fstab.
Se stai eseguendo il demone syslog, ci può essere un messaggio di errore dal kernel che non riesci a vedere. Usa il comando "dmesg":
% dmesg
SBPCD: sbpcd_open: no disk in drive
Ci potrebbero anche essere messaggi di errore registrati in qualche file in /var/log, a seconda di come è configurato il tuo sistema.
Se il drive funziona coi CD-ROM, ma non riproduce CD audio, queste possono essere alcune possibili soluzioni.
Ti serve un programma per riprodurre CD audio. Alcune applicazioni possono essere difettose, o possono non essere compatibili col tuo drive. Prova altre applicazioni e/o ricompilale tu stesso. Un buon posto dove cercare software può essere ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/.
Pochi drive CD-ROM non supportano la riproduzione di CD audio. Controlla i file di documentazione o i sorgenti per vedere se questo è il tuo caso.
Controlla se l'audio può essere riprodotto mediante la presa per cuffie sul frontalino del drive. Se è così, probabilmente il problema è legato alla scheda audio. Usa un programma mixer per impostare il dispositivo di input e i livelli di volume. Assicurati di aver installato il cavo di collegamento dal drive CD-ROM alla scheda. Assicurati anche che il driver del kernel per la scheda audio sia installato e funzionante (vedi il Sound HOWTO).
Se hai ancora problemi, qui ci sono alcuni suggerimenti finali su soluzioni che puoi ancora provare:
comp.os.linux
o altri newsgroup usenetEsc-x doctor
:-)