Avanti Indietro Indice

4. Installazione

L'installazione di un CD-ROM sotto Linux si compone dei seguenti passi:

  1. Installare l'hardware
  2. Configurare e compilare il kernel di Linux
  3. Creare i file di dispositivo e impostare i parametri del boot
  4. Avviare il kernel
  5. Montare il dispositivo

La prossima sezione coprirà ognuno di questi punti in dettaglio.

4.1 Installare l'hardware

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).

4.2 Configurare e compilare il kernel di Linux

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:

  1. Fai il boot direttamente dal CD-ROM (se supportato dal PC e dal CD di Linux)
  2. Installa direttamente dalla rete
  3. Avvia DOS, e installa i file di Linux sul tuo hard disk
  4. Avvia DOS, e crea un insieme di dischetti da cui installare Linux
  5. Trova qualcuno che ti possa fare un disco di boot con i driver richiesti

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.

4.3 Creare i file di dispositivo e impostare i parametri del boot

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.

Il driver Sbpcd

                   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.

Il driver Sonycdu535

                   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.

Il driver Cdu31a

                   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.

Il driver Aztcd

                   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.

Il driver Gscd

                   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.

Il driver Mcd

                 
                   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.

Il driver Mcdx

                   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.

Il driver Cm206

                   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.

Il driver Optcd

                   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.

Il driver Sjcd

                   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.

Il driver Paride

                   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.

Il driver SCSI

                   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.

Il driverIDECD

                          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.

4.4 Avviare il kernel

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.

4.5 Montare il dispositivo

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/.

4.6 Risoluzione di problemi

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.

Passo 1: Assicurati di stare realmente avviando il kernel che hai compilato

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?

Passo 2: Assicurati che i driver del kernel appropriati siano compilati

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.

Passo 3: Il kernel ha trovato il drive al momento del boot?

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.

Passo 4: Puoi leggere dati dal drive?

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.

Passo 5: Puoi montare il drive?

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.

Fare il debug per problemi audio

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).

Quando tutto il resto fallisce

Se hai ancora problemi, qui ci sono alcuni suggerimenti finali su soluzioni che puoi ancora provare:


Avanti Indietro Indice