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

Seguite le istruzioni del produttore per installare l'hardware o fatelo fare al vostro rivenditore. I dettagli varieranno a seconda che il drive sia esterno o interno e in base del tipo dell'interfaccia utilizzata. Non ci sono requisiti di installazione particolari per Linux. Potrete aver bisogno di cambiare 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 si applichi più ai kernel più recenti).

4.2 Configurare e compilare il kernel di Linux

Se state installando da zero Linux da CD-ROM probabilmente starete usando un disco di boot e/o root fornito come parte della distribuzione Linux. Se possibile, dovreste usare un disco di boot con i driver del kernel propri del vostro drive CD-ROM. Se non riuscite a trovare un disco di boot con i driver CD-ROM necessari, ci sono parecchie strade per risolvere il problema:

  1. Fate il boot direttamente da CD-ROM (se supportato dal PC e dal CD di Linux)
  2. Installate direttamente dalla rete
  3. Avviate il DOS e installate i file di Linux sull'hard disk
  4. Avviate il DOS e create un insieme di dischetti da cui installare Linux
  5. Trovate qualcuno che vi possa fare un disco di boot con i driver richiesti

Il Linux Installation HOWTO contiene ulteriori informazioni sull'installazione di Linux. Se avete acquistato Linux su CD-ROM, probabilmente troverete 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:

Dovreste 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, avrete bisogno di attivare il supporto per il vostro drive CD- ROM quando lanciate un ``make config''.

Se avete un drive CD-ROM ATAPI, dovrete 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, abilitate queste opzioni:

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

Abilitate anche il supporto per l'adattatore SCSI quando viene richiesto, per esempio:

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

Per drive CD-ROM con interfaccia proprietaria, abilitate il driver appropriato. Potete usare la tabella precedente per determinare il driver da usare per il vostro modello.

Virtualmente tutti i CD-ROM usano il file system ISO-9660, perciò dovete abilitare anche:

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

Sebbene non sia richiesto per far funzionare il CD-ROM, se avete una scheda audio supportata da Linux a questo punto potreste anche voler abilitare e configurare il driver del kernel per il supporto audio. Il Sound HOWTO può essere un riferimento valido.

Dovete quindi seguire la procedura normale per compilare il kernel e installarlo. Non fate il boot del nuovo kernel finché non avete creato tutti i file di dispositivo richiesti e non avete impostato 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 potete trovare descritto come usare i moduli.

Se un drive elencato non è supportato dal vostro kernel, probabilmente avrete bisogno di aggiornare quest'ultimo a una nuova versione.

È possibile che vi serva usare un driver che è distribuito separatamente dai sorgenti del kernel. Di nuovo, il Kernel HOWTO spiega come farlo.

Notate che c'è una modalità di configurazione del kernel basata su menu, richiamata da ``make menuconfig'' e una configurazione grafica basata su X11 richiamata da ``make xconfig''. Tutti 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 state avviando una distribuzione Linux standard, potete aver già creato i file necessari durante l'installazione. Nella Slackware, per esempio, c'è uno strumento di setup basato su menu che comprende l'impostazione del CD-ROM, e la maggior parte dei sistemi hanno uno script /dev/MAKEDEV. Se non usate uno di questi metodi, raccomando almeno di verificare i file di dispositivo rispetto alle informazioni di questa sezione.

Potete creare i file di dispositivo avviando i comandi di shell indicati per il vostro 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 la creazione di 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 volete riprodurre CD audio, dovrete impostare la protezione sul file di dispositivo (il file vero, non il link simbolico a esso) per permettere a tutti gli utenti di leggerlo, per esempio

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

Quando avviate Linux, i driver di dispositivo tentano di determinare se sono presenti i dispositivi appropriati, tipicamente provando indirizzi specifici. Molti dei driver provano automaticamente su diversi indirizzi, ma a causa delle differenze nella configurazione, di possibili conflitti o di limitazioni hardware, alcune volte hanno bisogno di aiuto per identificare gli indirizzi e 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 boot loader. Con LILO, per esempio, dovreste aggiungere un comando append come il seguente al file /etc/lilo.conf:

append = "sbpcd=0x230,SoundBlaster"

Controllate 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 vi servirà solo leggere la sezione specifica al vostro 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 multisessione: 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 (per esempio 0x230) e il secondo è uno tra ``SoundBlaster'', ``LaserMate'' o ``SPEA''. Leggete 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 avete più di un controller, aggiungete dispositivi con numero primario 26, 27 e 28, fino a un massimo di quattro controller (questo fa 16 drive in totale; si spera siano abbastanza per la maggior parte degli utenti :-).

Leggete il file sbpcd per maggiori informazioni su questo driver.

Se avete acquistato un drive CD-ROM di recente, non credete che se è connesso a 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 multisessione: 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 (per esempio 0x320). In alternativa potete 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; assicuratevi che il vostro file di dispositivo sia corretto.

Questo driver era dapprima distribuito come una patch, ma ora è parte del kernel standard. Leggete il file sonycd535 per maggiori informazioni su questo driver.

Il driver Cdu31a

                   Principale autore: Corey Minyard (minyard@-rch.cirr.com)
              Supporto multisessione: 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 a una scheda audio Pro Audio Spectrum 16, altrimenti va tralasciato.

Se il driver è caricato come modulo, usa un formato lievemente diverso. Quando caricate 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

Leggete il file cdu31a per maggiori informazioni su questo driver.

Leggete 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 multisessione: 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 (per esempio 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 e il CDA269-031SE non sono proprietari e usano il driver IDECD (ATAPI) del kernel.

Si veda il file aztcd per maggiori informazioni su questo driver.

Il driver Gscd

                   Principale autore: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
              Supporto multisessione: 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 (per esempio 0x340).

Il file di dispositivo può essere creato utilizzando:

# mknod /dev/gscd0 b 16 0

Leggete il file gscd e 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 multisessione: 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. Potreste provare il driver più recente 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 (per esempio 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 multisessione: 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 avete acquistato di recente un drive CD-ROM Mitsumi, non date per scontato che usi questi driver. I nuovi drive Mitsumi sono ora compatibili EIDE/ATAPI e usano il driver idecd del kernel.

Si veda 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 esempio 0x340). Il secondo è il canale d'interrupt.

Il file di dispositivo può essere creato utilizzando:

# mknod /dev/cm206cd b 32 0

Consultate il file cm206 per maggiori informazioni su questo driver.

Il driver Optcd

                   Principale autore: Leo Spiekman (spiekman@dutette.et.tudelft.nl)
              Supporto multisessione: 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 (per esempio 0x340).

Il file di dispositivo può essere creato utilizzando:

# mknod /dev/optcd0 b 17 0

Si veda il file optcd per maggiori informazioni su questo driver.

Il driver Sjcd

                   Principale autore: Vadim V. Model (vadim@rbrf.msk.su)
              Supporto multisessione: 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 e il canale DMA da usare (per esempio sjcd=0x340,10,5).

Il file di dispositivo può essere creato utilizzando:

# mknod /dev/sjcd b 18 0

Consultare 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 multisessione: 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). Create i file di dispositivo con il numero primario impostato a 11 e 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).

Si veda anche la disamina dell'emulatore SCSI per IDE più sopra in questo documento.

Il driverIDECD

                   Principale autore: Scott Snyder
                          (snyder@fnald0.fnal.gov)
              Supporto multisessione: 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 vostro CD-ROM può essere difficoltoso, specialmente se avete 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. Leggetelo con attenzione.

I kernel di Linux più recenti hanno un migliore supporto per dispositivi IDE multipli. Se avete problemi con un vecchio kernel, aggiornarlo può aiutare.

Alcuni controller IDE hanno problemi hardware che il driver del kernel può aggirare. Potete aver bisogno di passare parametri aggiuntivi al driver per abilitare queste modalità. Si veda la documentazione per maggiori dettagli.

4.4 Avviare il kernel

Adesso potete riavviare il nuovo kernel. Controllate 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, potete riguardarli usando dmesg o tail /var/log/messages.

Se il drive non viene trovato, c'è un problema. Consultate 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 abbiate 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 potete aver bisogno di usare. Si veda la pagina man mount(8) per maggiori dettagli.

Potete aggiungere una voce a /etc/fstab per montare automaticamente un CD-ROM al boot o per specificare i parametri da usare quando viene montato; consultate la pagina man fstab(5).

Nota che per riprodurre CD audio non occorre montarli.

Per smontare (unmount) un CD-ROM, usate 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). Potete quindi espellere il disco. La maggior parte dei drive hanno un pulsante di espulsione; c'è anche un programma eject che permette di espellere il CD-ROM via software.

Nota che non si dovrebbe 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 (potete disabilitare questa funzione compilando il kernel o usando un comando software).

È possibile che dopo aver riprodotto un CD audio non siate più in grado di montare un CD-ROM. Dovete allora mandare un comando CD audio ``STOP'' (usando un programma per la riproduzione di CD) prima di riprovare a montare. Questo problema sembra presentarsi solo 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. Potete trovare gli strumenti che servono su ftp://ftp.kernel.org/pub/linux/daemons/autofs/.

4.6 Risoluzione di problemi

Se incontrate ancora problemi dopo aver seguito le istruzioni nell'HOWTO, qui ci sono alcune cose che potete controllare. I controlli sono elencati in ordine crescente di complessità. Se un controllo non dà esito positivo, risolvete il problema prima di passare al successivo.

Passo 1: assicuratevi di stare realmente avviando il kernel cheavete compilato

Controllate la data del kernel per vedere se state avviando quello che avete compilato col supporto per CD-ROM. Potete 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 avete compilato il kernel, ne state avviando uno vecchio. Vi siete ricordati di riavviare? Se usate LILO, l'avete reinstallato (tipicamente lanciando/sbin/lilo)? Se state facendo il boot da floppy, ne avete creato uno nuovo e lo state usando?

Passo 2: assicuratevi che i driver del kernel appropriati sianocompilati

Potete 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 cercate il vostro driver di dispositivo CD-ROM. Quelli elencati sopra sono tutti dispositivi a blocchi, in questo caso possiamo vedere che il driver idecd con numero primario 22 era presente.

Assicuratevi anche che il supporto per il filesystem ISO-9660 sia compilato, guardando in /proc/filesystems:

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

Potete anche vedere quali 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 pensavate di aver compilato nel kernel non è visualizzato, allora qualcosa è andato storto al momento di configurare o compilare il kernel. Ricominciate il processo di installazione, cominciando dalla configurazione e compilazione del kernel.

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

Assicuratevi che il dispositivo CD-ROM sia stato trovato quando il kernel si è avviato. Se i messaggi sono passati troppo velocemente, potete di solito richiamarli usando il comando dmesg:

% dmesg

o

% tail /var/log/messages

Se il driver non è stato trovato allora qualcosa è andato storto. Assicuratevi che l'alimentazione sia collegata e che tutti i cavi siano inseriti correttamente. Se il vostro drive ha jumper hardware per l'indirizzamento, controllate che siano impostati correttamente (per esempio come drive 0 se avete un solo drive). I CD-ROM ATAPI devono essere impostati come ``single'' o ``master'' e non come ``slave'' quando un solo dispositivo è collegato a una interfaccia. Se il drive funziona sotto DOS allora potete 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. Potete aver bisogno di provare numerosi valori differenti se non siete sicuro dell'indirizzo di I/O o degli altri parametri. LILO può essere (e di solito lo è) configurato per permettere di inserire i parametri manualmente al boot.

Un'altra possibilità è che abbiate 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 vostro drive (o scheda di interfaccia) sia uno dei tipi ``compatibili'' che richiedono inizializzazione dal driver DOS. Provate ad avviare DOS e caricare il driver per DOS fornito dal produttore. Poi riavviate Linux facendo un soft boot con Control-Alt-Canc.

Se il vostro drive non è nominato in questo documento, è possibile che non ci siano driver disponibili per esso sotto Linux. Potete controllare presso alcuni dei riferimenti elencati alla fine di questo documento per avere assistenza.

Passo 4: potete leggere dati dal drive?

Provate 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. Usate il file di dispositivo appropriato per il drive e assicuratevi che un CD-ROM sia inserito; usate 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 potete passare al punto 5.

Altrimenti, una possibile causa è il file di dispositivo. Assicuratevi che il file nella directory /dev abbia i numeri primario e secondario corretti come elencato prima per il vostro tipo di driver. Controllate che i permessi per tale file ne permettano la lettura e scrittura.

Una possibilità remota è che abbiate un problema hardware. Provate il drive sotto un altro sistema operativo, se possibile, per determinare se questo è il vostro caso.

Passo 5: potete montare il drive?

Se potete leggere dal drive ma non montarlo, prima verificate di aver compilato nel kernel il supporto per il filesystem ISO-9660 leggendo /proc/filesystems, come descritto prima.

Assicuratevi di aver montato il drive con le opzioni ``-t iso9660'' e ``-r'' e che nel lettore sia inserito un CD-ROM ISO9660 (non un CD audio) che sapete essere valido. Normalmente dovete montare i drive solo come utente root.

Assicuratevi che il mount point esista e sia una directory vuota.

Se state montando automaticamente il CD-ROM al boot, assicuratevi di avere le voci corrette nel file /etc/fstab.

Se state eseguendo il demone syslog, ci può essere un messaggio di errore dal kernel che non riuscite a vedere. Usate 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 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.

Vi serve un programma per riprodurre CD audio. Alcune applicazioni possono essere difettose, o possono non essere compatibili col vostro drive. Provate altre applicazioni e/o ricompilatele. 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. Controllate i file di documentazione o i sorgenti per vedere se questo è il vostro caso.

Controllate se l'audio può essere riprodotto mediante la presa per cuffie sul frontalino del drive. Se è così, probabilmente il problema è legato alla scheda audio. Usate un programma mixer per impostare il dispositivo di input e i livelli di volume. Assicuratevi di aver installato il cavo di collegamento dal drive CD-ROM alla scheda. Assicuratevi anche che il driver del kernel per la scheda audio sia installato e funzionante (si veda il Sound HOWTO).

Quando tutto il resto fallisce

Se avete ancora problemi, qui ci sono alcuni suggerimenti finali su soluzioni che potete ancora provare:


Avanti Indietro Indice