Avanti Indietro Indice

2. Impostare il sistema Linux per masterizzare

Questa sezione può essere applicata a tutti i tipi di masterizzatori, incluse periferiche SCSI, IDE/ATAPI e per porta parallela. Gli ultimi due tipi di periferica richiedono driver di compatibilità, che li fanno sembrare vere periferiche SCSI. Da una parte una strategia unificante come questa è semplice ("tutto è SCSI"), in quanto al livello del programma è possibile condividere la propria conoscenza con altri utenti, indipendentemente dal loro tipo di masterizzatore. Per contro, dovrete riconfigurare applicazioni come i lettori di Audio CD o l'utility di mount per rispecchiare i cambiamenti apportati al nome del driver. Per esempio, se il vostro masterizzatore ATAPI era prima identificato dal file /dev/hdc, dopo aver attivato i driver di compatibilità SCSI dovrete riferirvi ad esso come /dev/scd0.

Dopo aver impostato correttamente il tuo hardware e il sistema Linux, il comando cdrecord -scanbus dovrebbe mostrare una lista delle periferiche disponibili sui vostri bus SCSI. Lo scopo di questo capitolo è di guidarti nell'impostazione del tuo sistema in modo che l'output del comando sia del tipo:

shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
          0) 'Quantum ' 'XP34300         ' 'F76D' Disk
          1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
          2) *
          3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
          4) 'WANGTEK ' '5150ES SCSI-36  ' 'ESB6' Removable Tape
          5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
          6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
          7) *
scsibus1:
        100) 'Quantum ' 'XP31070W        ' 'L912' Disk
        101) *
        102) *
        103) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
        104) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
        105) *
        106) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
        107) *
Lista1: lettura periferiche sul bus SCSI
L'esempio è di Jörg Schilling e indica un totale di 4 masterizzatori. Notate che l'opzione -scanbus riporta anche altre periferiche, come normali CD-ROM e dischi fissi. L'ultima colonna indica la descrizione SCSI della periferica, dalla quale non è possibile distinguere i CD-ROM normali dai masterizzatori. Inoltre la descrizione del prodotto spesso dà dei suggerimenti nella forma di una R, -R o -RW.

2.1 Impostazione del Kernel di Linux

Il Kernel di Linux può essere equipaggiato con driver per varie cose. I driver possono essere compilati staticamente nell'immagine del kernel oppure come moduli che possono essere caricati a richiesta.

Questo metodo è il migliore per quei drive che non sono essenziali per il funzionamento del sistema, dal momento che il kernel risulterà più piccolo e veloce. Comunque alcuni driver sono essenziali per l'inizializzazione del sistema. Se, per esempio, hai installato il sistema su di un hard-disk IDE è necessario avere il supporto per questa periferica compilato nel kernel e non come modulo.

Vi sono 3 diversi tipi di masterizzatori: SCSI, IDE/ATAPI e quelli esterni per porta parallela. La Tabella 4 spega come configuarare il Kernel di Linux per questi tipi di hardware. La prima colonna della tabella è la sezione del menu di configurazione, dove si trovano le impostazioni. La seconda colonna è una descrizione della caratteristica (presa dal menu di configurazione del kernel).La terza indica il nome del modulo risultante. Le colonne denominate SCSI, IDE e PP contengono le opzioni necessarie per l'hardware associato (PP=porta parallela).

Sez.  Descrizione                 Modulo   SCSI  IDE   PP
------------------------------------------------------------
BLOCK  Enhanced IDE/MFM/RLL...                     Y      
BLOCK  IDE/ATAPI CDROM             ide-cd          M     
BLOCK  SCSI hostadaptor emulation  ide-scsi        M      
BLOCK  Loopback device             loop       M    M     M

PARIDE Parallel port IDE device    paride               Y/M
PARIDE Parallel port ATAPI CD-ROMs                       M
PARIDE Parallel port generic ATAPI                       M
PARIDE (select a low-level driver)                       Y

SCSI   SCSI support                scsi_mod  Y/M  Y/M    
SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M     
SCSI     Enable vendor-specific               Y    Y      
SCSI   SCSI generic support        sg        Y/M  Y/M     
SCSI   (select a low-level driver)            Y

FS     ISO 9660 CDROM filesystem   iso9660   Y/M  Y/M   Y/M
FS     Microsoft Joliet cdrom...   joliet     Y    Y     Y
Tabella 4:

Y vuol dire SÌ, cioè indica di infilare quella brutta bestia nel kernel. M significa MODULO, quindi questa opzione diverrà un modulo. Con Y/M puoi decidere fra entrambe (l'ordine indica la scelta con meno problemi potenziali). Non serve modificare impostazioni mancanti, anzi lasciarle stare migliora le possibilità che quello che salterà fuori funzioni (se prima funzionava perché non dovrebbe farlo ancora?).

Specialmente in ambienti misti SCSI e ATAPI è meglio compilare la maggior parte delle caratteristiche come moduli.

La periferica loopback è opzionale, serve per testare l'immagine prima di scriverla sul supporto.

Per poter leggere i CD-ROM serve il supporto per il filesystem ISO-9660, che include automaticamente le Estensioni RockRidge. Se vuoi avere anche le estensioni MS Joliet, compila il driver come modulo e caricalo quando ti serve.

In ogni caso ti occorre un driver di basso livello per l'hardware. Basso livello si riferisce al driver che interagisca direttamente con la periferica. Per periferiche SCSI e porta parallela esistono molti driver di basso livello, descritti qui di seguito.

Per caricare i moduli è possibile inserire i loro nomi a un file di configurazione come /etc/modules oppure lasciare che qualche programma (tipo kmod o kerneld) si occupi di caricarli quando il kernel ne ha necessità. Per facilitarvi la vita è possibile aggiungere queste righe al file /etc/conf.modules:

alias   scd0 sr_mod                  # carica sr_mod all'accesso di scd0
alias   scsi_hostadaptor ide-scsi    # emulazione controller SCSI
options ide-cd ignore=hdb            # se /dev/hdb è il masterizzatore
Alcune impostazioni per l'uso di masterizzatori IDE/ATAPI

Gli alias sono nomi alternativi per lo stesso modulo e non sono essenziali. Le opzioni sono un modo di rendere permanenti le preferenze nel caricamento dei moduli, per es. dopo averle usate con successo con modprobe/insmod. Per saperne di più a proposito delle diverse opzioni per i moduli, continua a leggere.

Descrizione                     comando
-------------------------------------------------
Mostra driver attivi            cat /proc/devices
Mostra moduli attivi            cat /proc/modules
Mostra moduli disponibili       modprobe -l
Rimuove un modulo               modprobe -r
Carica manualmente un modulo    modprobe
Carica un modulo al boot        echo "inseriscili in /etc/modules"
                                (consulta la documentazione della tua
                                 distribuzione.)
Caricare i moduli automaticamente       echo "usare kmod o kerneld"
Tabella: comandi relativi a moduli e driver del kernel

Se ti serve un modulo che non è disponibile devi proprio ricompilare il kernel e riinstallarlo. Meglio leggere il Kernel-HOWTO per avere maggiori informazioni. Puoi trovare le informazioni più recenti su come maneggiare i moduli del kernel nel Module-HOWTO. OK, diciamo che sei riuscito in qualche modo a procurarti i moduli necessari: ora puoi aggiungere il loro nome al file /etc/modules o lasciare che un demone come kmod o kerneld li carichi per te. Consulta la documentazione della tua distribuzione se non sei sicuro.

Se preferisci arrangiarti da solo, installa il pacchetto "Linux Kernel Source" (che poi sono i sorgenti del kernel NDT) che è inserito nella distribuzione. Dopodiché dai i seguenti comandi:

cd /usr/src/linux
make menuconfig  # segui le istruzioni e i menu
make dep
make zImage      # oppure "make bzImage"
# inserisci un floppy-disk prima di procedere
dd if=arch/i386/boot/zImage of=/dev/fd0
make modules
make modules_install
Tabella: creazione di un floppy disk avviabile

Questa procedura creerà un disco floppy avviabile. Se non hai capito niene di tutto è meglio che ti legga un po' di documentazione come il Kernel HOWTO, oppure chiedi aiuto ad un amico prima di massacrare completamente il tuo sistema. In fin dei conti il Kernel è il cuore del sistema operativo...

Suggerimenti speciali per Kernel sino alla v2.2.9

Possessori di masterizzatori ATAPI attenzione: se il kernel riconosce la vostra periferica come ATAPI durante l'avvio del sistema, non ci sarà verso di farla funzionare con Linux. Se il driver IDE/ATAPI si appropria della periferica lo SCSI (al di sopra dell'emulazione) non la può più toccare. Ricompilare il kernel con la roba per il CD-ROM come modulo e funzionerà tutto (vedi tabella sopra).

Con le versioni 2.2 puoi specificare quale periferica non trattare come IDE/ATAPI usando il parametro ignore= al momento di caricare il modulo ide-cd. Abilitata questa opzione, il driver non si approprierà della periferica specificata, che dunque resterà disponibile al momento dell'attivazione dell'emulazione controller SCSI. Per esempio: usa "modprobe ide-cd ignore=hdb", se il tuo masterizzatore è hdb e vuoi che il driver ide-scsi lo tratti come periferica scsi (di solito sr0). Non c'è modo per impartire questo comando dalla riga di comando del kernel (come con le v.2.0).

Con i kernel sino alla versione 2.2.9, non abilitare CONFIG_SCSI_MULTI_LUN ('probe for multiple luns') insieme al supporto ide-scsi allo stesso tempo, c'è un bug ide-scsi che non lo permette.

Alcuni utenti hanno riportato dei problemi con binari precompilati e la versione 2.2. Questo è un problema del kernel di Linux. Soluzioni:

Suggerimenti speciali per Kernel v2.2.10 e successive

Mi hanno detto che i kernel dalla v2.2.10 in poi supportano le opzioni dalla serie 2.0.x e della serie 2.2.x iniziale. L'autore raccomanda la strategia di specificare quale periferica usare con quale driver, come viene fatto con la v2.0.37. La sezione successiva descrive il metodo:

Suggerimenti speciali per Kernel della serie 2.0.x

Kernel più vecchi della v.2.0.31 hanno parecchi bug e non possono leggere l'ultimo file su un CD-ROM. Meglio aggiornare alla v.2.0.36. In questa versione l'opzione che veniva chiamata "SCSI emulation" è stata più accuratamente rinominata ""SCSI host adaptor emulation".

Con i kernel 2.0.37 e superiori puoi selezionare il driver (IDE o SCSI) per ogni periferica ATAPI. Per essere più precisi puoi aggiungere l'opzione "SCSI emulation" al kernel e attivare l'emulazione per ogni periferica dalla riga di comando del kernel (prima o durante il boot). Per esempio se il masterizzatore corrisponde al file di periferica /dev/hdb allora aggiungi l'espressione hdb=ide-scsi. Le seguenti liste mostrano come rendere permanenti le impostazioni con i caricatori LILO e CHOOSE-OS.

image=/boot/zImage-2.0.36
  label=Linux
  read-only
  append="hdb=ide-scsi"
Lista 2: Esempio di configurazione per LILO (/etc/lilo.conf)

linux "Linux 2.0.36" {
        image=/boot/zImage-2.0.36
        cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Lista 3: Esempio di configurazione per chos (/etc/chos.conf)

2.2 Hardware e file di periferica

Dopo aver installato tutti i driver necessari fai bootare il nuovo kernel. Dovrebbe avere tutte le caratteristiche che ti seviranno per le prossime sezioni.

[Gli utilizzatori di devfs non si devono preoccupare delle prossime procedure di impostazione manuale dei file di periferica. Se usi devfs tutto apparirà magicamente al suo posto.]

Vai nella directory /dev e guarda se ci sono le periferiche di loopback. Non muore nessuno se non ci sono, ma forse è meglio averle (vedi 3.5). Se sono presenti il comando ls dovrebbe mostrare loop0-loop7:

shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
Lista: file di periferica per il loopback

Se non ci sono questi device file, creali con lo script /dev/MAKEDEV:

shell> cd /dev/
shell> modprobe loop
shell> ./MAKEDEV loop
Lista: comandi per la creazione di periferiche di loopback

L'ultimo comando funziona solo se il modulo loop sta girando nel kernel. Quello che hai letto finora a proposito dei device file di loop può essere applicato anche a tutti gli altri (sg*, pg*, hd*, ...) e non è esplicitamente menzionato nel seguito.

In caso che la tua distribuzione Linux non contenga lo script /dev/MAKEDEV, crea i file di periferica manualmente con questo ciclo:

for i in 0 1 2 3 4 5 6 7
do
        mknod /dev/loop$i c 7 $i
done

Masterizzatori IDE/ATAPI

ATAPI è un'estensione per le periferiche IDE presente in tutte le periferiche recenti. Questa estensione permette l'uso del protocollo SCSI sul bus IDE. Insieme al modulo del kernel ide-scsi, che converte almeno apparentemente il controller IDE in uno SCSI, puoi far apparire le tue periferiche IDE/ATAPI come SCSI . Perciò attiva il modulo associato e procedi come se avessi un masterizzatore SCSI.

Masterizzatori SCSI

Assicurati che il masterizzatore sia riconosciuto dal BIOS del computer. Non è molto intelligente proseguire se il PC non accetta l'hardware (il fatto che non lo sputi fuori non è abbastanza; deve dirtelo esplicitamente con un messaggino sullo schermo).

Se pensi di connettere una periferica SCSI alla porta parallela (da non confondere con i drive IDE per porta parallela), ti serve uno speciale cavo attivo e un driver particolare. Dai un'occhiata a http://www.torque.net/parport/parscsi.html per saperne di più.

Periferiche SCSI generiche

I file di periferiche /dev/sd* e /dev/sr* per gli hard-disk e CD-ROM SCSI sono limitati a trasferimenti di dati a blocchi. Quindi sono molto veloci e adatti per conservare i dati. Pilotare il laser di un masterizzatore è giusto un attimo più complicato e serve qualcosa di più che non un trasferimento di dati a blocchi. Per mantenere le periferiche sd* e sr* pulite e veloci è stato introdotto un nuovo tipo di periferica SCSI, chiamato Periferica SCSI generica. Dal momento che qualsiasi cosa può essere fatta su una periferica SCSI usando questa interfaccia significa che non è limitata ad un solo uso - da qui il nome generica.

Allo stesso modo di tutte le altre periferiche puoi trovarle nella directory /dev (per convenzione):

shell> cd /dev
shell> ls sg*
sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7

Se i file non sono presenti creali con lo script /dev/MAKEDEV:

shell> cd /dev/
shell> ./MAKEDEV sg

Se la tua distribuzione Linux non contiene lo script /dev/MAKEDEV, crea i file di periferica manualmente con questo ciclo:

for i in 0 1 2 3 4 5 6 7
do
        mknod /dev/sg$i c 21 $i
done

Masterizzatori per porta parallela

Mi spiace ma non ho idea di come funzionino, se ti interessa leggi questa pagina: http://www.torque.net/parport/paride.html oppure il file locale /usr/src/linux/Documentation/paride.txt.

2.3 Procurarsi il software per masterizzare

Un elenco di aggeggi utili alla produzione di CD-ROM è disponibile presso: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html.

Utility a riga di comando

Per generare i prototipi per i CD-R serve almeno uno di questi pacchetti (richiesti solo per CD-ROM di dati):

ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)

ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)

Il software per la scrittura dei prototipi è invece il seguente:

ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)

http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)

Non fare caso alla pagina man di un vecchio mkisofs che afferma che è necessaria la versione 1.5 di cdwrite. Usa cdrecord e lascia perdere. Nota che le versioni più nuove del pacchetto cdrecord contengono una versione avanzata di mkisofs e alcuni altri programmini utili nella directory misc/ come readcd e isosize, che non si trovano da altre parti.

Interfacce grafiche (opzionali)

I front-end sono davvero dei front-end sotto Linux. Cioè, ti servono comunque le utility a riga di comando ma le puoi usare in un modo più gradevole da vedersi.

X-Cd-Roast è un pacchetto dedicato a una facile creazione di CD sotto Linux. Combina utility a riga di comando come cdrecord e mkisofs in una simpatica interfaccia grafica.

http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html

BurnIT è un front-end scritto in JAVA per cdrecord, mkisofs e cdda2wav-0.95, praticamente un pacchetto completo per la scrittura di CD per la piattaforma Unix. È disponibile presso:

http://sunsite.auc.dk/BurnIT/

XDaodio

È un front-end grafico per cdrdao. Il suo principale scopo è la creazione di copie 1:1 di CD audio.

http://www.lrz-muenchen.de/~MarkusTschan/


Avanti Indietro Indice