<!doctype Linuxdoc system>
<article opts="italian">

<title>CD-Writing HOWTO
<author>Winfried Trümper <tt/&lt;truemper@guug.de&gt;/
<date>v2.8.15, 09 Aprile 2000
<abstract>
Questo documento spiega come masterizzare CD-ROM sotto Linux.
</abstract>

<toc>

<sect>Introduzione	
<p>
Molta gente usa Linux per masterizzare perché è facile e sicuro. 
Niente a che vedere con schermate blu e niente mal di testa per 
problemi di incompatibilità hardware-software. Se lo si imposta 
nel modo giusto funziona e basta. Questo HOWTO spiega come 
configurare il sistema, come scrivere i dati sul CD e 
presenta alcune applicazioni un po' esotiche gentilmente fattemi 
notare dai lettori.

<sect1>Copyright, license and terms of usage (IN LINGUA ORIGINALE)
<p>
Copyright Winfried Trümper 1996-2000 All rights reserved.

Redistribution and use, with or without modification, are permitted
provided that the name of the author may not be used to endorse or
promote products derived from this software without specific prior
written permission. In this sense, translations are welcome and need not to be authorized by me.

<bf>
The author disclaims all warranties with regard to this
document, including all implied warranties of merchantability and
fitness for a certain purpose; in no event shall the author be liable
for any special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether in
an action of contract, negligence or other tortious action, arising
out of or in connection with the use of this document.
</bf>

Short: read and use at your own risk.

<sect1>Disponibilità
<p>
Come editore di questo documento principalmente io raccolgo quello che altre persone mi riportano. 
Non sono uno sviluppatore di sofware né un esperto di hardware, quindi per problemi specifici con hardware o software
dovreste chiedere a qualcun altro. Quello che invece è sempre utile è riportare soluzioni per problemi non ancora trattati nell'HOWTO.
<p>
Ricevo parecchie centinaia di e-mail riguardanti il CD-Writing-HOWTO ogni anno. Cercate di essere pazienti con me, non sempre posso rispondere entro poche ore. Comunque leggo ogni cosa immediatamente e la metto nella mia coda CDR. Prima di chiedere qualcosa assicuratevi di conoscere la versione più aggiornata di questo documento, sempre disponibile all'indirizzo <url url="http://www.guug.de/~winni/linux/">.
<sect1>Letture suggerite
<p>
Potreste aver bisogno del manuale della vostra distribuzione per vedere come installare un nuovo kernel.
Non sarei di molto aiuto in sitazioni come queste.

Le <url url="http://www.fadden.com/cdrfaq/" name="CD-R FAQ">
sono delle FAQ generali a proposito dei CD registrabili (CD-R), 
dei masterizzatori e del software richiesto.

Siccome i masterizzatori possono anche essere usati come normali 
lettori potrebbe interessarvi il <it>CD-ROM HOWTO</it> di Linux, 
o anche lo <it>SCSI HOWTO</it> e il <it>Kernel HOWTO</it>.


<sect1>Terminologia ... laser al massimo ... fuoco!
<p>

<it>CD-ROM</it> significa <it>Compact Disc Read Only Memory</it>, un sistema di memorizzazione
dati che si avvale di un laser per rilevare la presenza di buchi microscopici 
sulla superficie argentata e riflettente di un disco (la colorazione 
argentata deriva dalla presenza di uno strato di alluminio). I buchi 
rappresentano i bit dell'informazione e sono così piccoli 
che su un disco ce ne stanno qualche miliardo. Quindi il CD è un 
supporto di memorizzazione di massa.

Il termine <it>CD-R</it> è un'abbreviazione di <it>CD-ROM registrabile</it> e si riferisce a 
un CD che non ha quei buchini microscopici sulla superficie.
Invece dello strato di alluminio ha una speciale pellicola colorata entro 
la quale possono essere "incisi" i buchi. Questo si può fare dando al 
laser che normalmente viene solo riflesso una potenza leggermente superiore 
in modo che sia in grado di praticare delle incisioni. Questa operazione 
può essere fatta <bf>solo una volta</bf> su di un CD-R, sebbene
alcune aree possano essere lasciate libere per essere scritte in un secondo 
momento, creando un CD detto <it>multisessione</it>.

I <it>CD-ROM riscrivibili</it> (in breve: <it>CD-RW</it>) sono stati sviluppati
per ovviare alle limitazioni dei CD-R. In questo caso il laser può
non solo incidere i "buchi" sul supporto ma può anche "fondere" la superficie
del supporto riportandola allo stato originale. Ciò è possibile perché il
laser in realtà non pratica incisioni sul supporto, che andrebbe distrutto in una nuvoletta di fumo. 
Un'analogia ragionevole per questa tecnologia è riscontrabile nel gioco dell'hockey sul ghiaccio: scivolando sul ghiaccio il giocatore (laser) lascia dei graffi. I segni sul ghiaccio (supporto CD-RW) sono la registrazione di quello che è accaduto sul ghiaccio durante un round. Fra i tempi le macchine Zamboni si muovono sul ghiaccio e riempiono i graffi fondendo la parte più superficiale del ghiaccio (Zamboni è <it>il</it> nome delle macchine pulitrici negli stadi di hockey). In questo modo i segni sul ghiaccio vengono eliminati e può inizare il nuovo tempo. Il termine scientifico per (evaporazione, condensazione,) fusione e congelamento è "cambiamento di fase", da cui il nome di "periferiche a cambiamento di fase" per i masterizzatori CD-RW.

Questo mini-HOWTO si occupa della scrittura di CD-R. Benvenuto a bordo, capitano.

<sect2>Adaptor contro Adapter
<p>
La dizione più frequente all'interno dei sorgenti del kernel è "adapter" che batte "adaptor" per 4283 a 154.
Importante notare che le opzioni per i moduli e gli alias ne sono influenzate come in 
"scsi_hostadapter". Quindi, per mantenere una dizione coerente attraverso gli esempi di configurazione e il testo, io seguirò 
la convenzione "adapter" infischiandomene della dizione ufficiale.
(Io invece non mi ricordo la convenzione che uso, forse perché non ne uso nessuna quindi prendete come buoni "controller" e "adattatore" 
come sinonimi di "adaptor" / "adapter" NdT :-)

<sect1>Masterizzatori supportati
<p>
I masterizzatori USB non sono al momento supportati. A parte questi
più o meno tutti nuovi masterizzatori IDE/ATAPI e SCSI funzionano sutto Linux.
Infatti i drive più nuovi sono praticamente tutti MMC compatibili (MMC =
MultiMedia Commands NdT) e quindi supportati. Se la versione SCSI di un particolare masterizzatore funziona, è molto probabile che
funzioni anche la sua versione IDE/ATAPI e viceversa.
Comunque, certa gente si sente
molto meglio leggendo il modello esatto del proprio masterizzatore in una
lista di compatibilità e questo è il motivo per cui non elimino tutta questa
pappardella dall'HOWTO.

<!--url="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdwriters-1.6.html" -->

Qui di seguito invece c'è una lista dei masterizzatori che funzionano con cdrecord:

<tscreen><verb>
Acer:           CDRW 4432A, CDRW 6206A, CD-R/RW 6X4X32
BTC:            BCE 621E (IDE)
Compro:         CW-7502, CW-7502B
Creative:       RW 4224E, MK 4211
Delta:          OME-W 141
Dysan:          CRW-1622
Elite:          Elite b444.41
Goldstar:       CED-8041B
Grundig:        CDR 100 IPW
Guillemot:      Maxi CD-R 4X/8X
HP:             SureStore 4020i, SureStore 6020i,
                C4324, C4325
                CD-writer+ 7100, 7200i, 7500e, 8100i, 8110i, 8200i Plus,
	                          8250i, 9100i, 9110i, 9200e, 9210
Hi-Val:         CDD 2242, CDD-3610, 
Iomega:         ZIPCD 4x650
JVC:            XR-W 2001, XR-W 2010, XR-W 2040, XR-W 2042, XR-RW 2224,
	               YR 2626
Kiss:           CDRW (non è specificato il modello)
Kodak:          PCD 200, PCD 225, PCD 260, PCD 600
Matsushita:     Matsushita è il nome giapponese di Panasonic, si veda lì
Memorex:        CRW-620, CDR-622, CRW-1622, CRW-2224, CDRW-4420 
Microboards:    PlayWrite 2000, PlayWrite 4000 RW, PlayWrite 4001 RW
MicroNet:       MasterCD Plus 4x4, MasterCD Plus 4x6
Mitsubishi:     CDRW-226
Mitsumi:        CR-2401-TS, CR-2600 TE,  CR-2801 TE, 
                CR-4801 TE, CR-4802 TE, CR-4804 TE
Nomai:          680.RW
Olympus:        CDS 615E, CDS 620E
Optima:         DisKovery 650 CD-R
OTI:            CDRW 965, CDRW 975 (Socrates 1.0)
Panasonic:      CW-7502, CW-7503, CW-7582
Philips:        CDD-521/10, CDD-522
                CDD-2000, CDD-2600, CDD-3600, CDD-3610
                Omniwriter 26, Omniwriter 26A
Pinnacle:       RCD-100, RCD-1000, RCD-5020, RCD-5040
Pioneer:        DW-S114X                
Plasmon:        CDR 480, CDR 4220, RF-4100, 
                RF-4102, CDR 4400
Plextor:        CDR PX-24 CS, PX-412 C, PX-R412 C              
                PX-R 810Ti, PX-R 820T, PX-W 4220Ti, PX-W 8220T, PX-W 8432T
                Plexwriter RW 4/2/20
Procom:         PCDR 4 
REC:            820s 
Ricoh:          RO-1420C+, MP 1420C, MP 6200S, MP 6201S, MP 7040A, MP-7060A
Samsung:        SW-204
Sanyo:          CRD-R24S
Smart and
Friendly:       CD-RW 226, CD-R 1002, CD-R 1002/PRO, CD-R 1004,
                CD-R 2004, CD-R 2006 PLUS, CD-R 2006 PRO, CD-RW 2224,
                CD-R 4000, CD-R 4006, CD-R 4012, CD-RW 4424A
                CD-R 8020, CD-R 8220
Sony:           CDRX 100E, CDRX 120E, CDRX 140S-RP,
                 CDU 920S, CDU 924, CDU 926S, CDU 928E, CDU 948S
Taiyo Yuden:    EW-50
TEAC:           CD-R50S, CD-R55S, CDR-55S, CDR-55K,
              CDR-56S-400, CD-R56S-600, R56S-614
              (NDT, CDR-58S)
Traxdata:     CRW 2260,
                CDR 4120, CDR 4120 Pro, CDRW 4260, CDRW 4424, CDR 4800
Turtle Beach:   2040R
Waitec:         wt 2036, wt 2444ei
WPI (Wearnes):  CDRW-622, CDR-632P
YAMAHA:         CDR-100, CDR 102, CDR-200, CDR-200t,
                CDR-200tx
                CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx, 
                CDW-2216E, CRW-2260, CRW-2260t,
                CRW-4250tx, CRW-4260t, CRW-4260tx, CRW-4261, CRW-4416S,
                CRW-6416S, CRW-8424E
  
</verb>
<it>Tabella 1: Masterizzatori supportati sotto Linux</it></tscreen>

Una lista dettagliata dei modelli che funzionano o non funzionano sotto vari dialetti Unix è disponibile on-line presso: <url url="http://www.guug.de:8080/cgi-bin/winni/lsc.pl">.

Se il tuo masterizzatore non è uno di quelli supportati puoi comunque 
usare Linux per creare un'immagine per il CD. Potrebbe essere una buona 
idea siccome la maggior parte dei software per DOS non supporta le estensioni 
RockRidge. In ogni caso ti servirà comunque un software per DOS per 
masterizzare l'immagine.


<sect1>"Caratteristiche" supportate
<p>
Ci sono 2 specie di utility che ti serviranno per masterizzare: i 
driver hardware e i formattatori di dati. I driver hardware hanno 
queste caratteristiche:

<tscreen><verb>
Supported Feature   cdwrite-2.1     cdrecord-1.6    cdrdao
----------------------------------------------------------
IDE/ATAPI           	no             	sì             sì
Parallel Port       	no             	sì             sì
CD-RW               	no             	sì             sì
Audio CD            	sì             	sì             sì
Data CD-ROM         	sì             	sì           in parte
Multisession	     in parte    	sì             no
TAO (Track at once) 	sì             	sì             sì
DAO (Disk at once)  	no             	no             sì
</verb>
<it>Tabella 2: </it></tscreen>

<tt>cdwrite</tt> è un vecchio software che menziono solo per completezza.
Ti conviene usare <tt>cdrecord</tt> che supporta molto più hardware e ha molte 
più qualità. L'obiettivo principale di cdrdao è la creazione di CD
audio senza i 2 secondi di silenzio fra le tracce (scrittura in 
modalità disc-at-once). Le utility classificate come formattatori di dati servono per organizzare 
i dati sul supporto ("per creare il filesystem")


<tscreen><verb>
Capacità	mkisofs         mkhybrid
--------------------------------------------
ISO 9660	  sì		  sì
RockRidge	  sì              sì
El Torito	  sì              sì
HFS               no              sì
Joliet            sì              sì
Multisessione     sì		  sì
CD-Extra	  sì		  sì	
</verb>
<it>Tabella 3: </it></tscreen>

La differenza più ovvia fra il filesystem ISO9660 e Extended-2 
è che non si possono modificare i file una volta che sono stati 
scritti. Le limitazioni del filesystem ISO-9660 sono:

<itemize>
<item> solo 8 livelli di sottodirectory (contate dalla directory di più     
		alto livello del CD) (meglio usare le estensioni RockRidge per      
		aumentare questo numero)
<item> lunghezza massima dei nomi di file: 32 caratteri
<item> 650 MB di capacità
</itemize>

<it>RockRidge</it> è un'estensione che consente nomi di file più lunghi 
e una gerarchia di directory più profonda per i filesystem ISO-9660. Leggendo un CD-ROM con estensioni RockRidge con Linux appaiono tutte le proprietà conosciute del file come possessore, gruppo, permessi, collegamenti simbolici (simile ad un filesystem Unix).
Queste estensioni non sono disponibili se si legge il CD-ROM sotto DOS 
o sistemi Windows.

<it>El Torito</it> El Torito serve per la creazione di CD-ROM bootabili. 
Anche il BIOS del tuo PC deve supportare questa caratteristica. Diciamo 
che, più o meno, i primi 1.44 (o 2.88 se supportato) Mbyte del CD-ROM contengono l'immagine 
di un floppy che hai preparato. Il BIOS considera questa immagine come 
un floppy di boot e da essa lo effettua (di conseguenza, durante l'avvio di questo floppy virtuale, il drive originario A: (/dev/fd0) potrebbe non essere accessibile).

<it>HFS</it> permette a un macintosh di leggere il CD-ROM come se fosse un 
volume HFS (il filesystem nativo di MacOS).

<it>Joliet</it> introduce nomi di file lunghi (fra le altre cose) per 
le nuove versioni di Windows (95, 98, NT). Che io sappia sotto DOS o 
Windows 3.11 ci si può scordare i nomi di file lunghi.

La sezione 2.8 indica la disponibilità di questo software.


<sect1>Mailing List
<p>
Se vuoi puoi unirti al team di sviluppo (con l'intenzione
di <it>aiutare</it> attivamente), manda un'e-mail a 
cdwrite-request@other.debian.org e metti nel corpo del messaggio 
la parola <tt>subscribe</tt>.

<sect>Impostare il sistema Linux per masterizzare
<p>
Questa sezione può essere applicata ai seguenti tipi di masterizzatori: SCSI, IDE/ATAPI e per porta parallela.
I masterizzatori USB non sono supportati, almeno alla volta del Marzo 2000.
Masterizzatori non-SCSI 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 <tt>cdrecord -scanbus</tt> 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:

<tscreen><verb>
shell&gt; cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
	0,0,0) 'Quantum ' 'XP34300         ' 'F76D' Disk
        0,1,0) 'SEAGATE ' 'ST11200N        ' '8334' Disk
        0,2,0) *
        0,3,0) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
        0,4,0) 'WANGTEK ' '5150ES SCSI 36  ' 'ESB6' Removable Tape
        0,5,0) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
        0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
        0,7,0) *
scsibus1:
        1,0,0) 'Quantum ' 'XP31070W        ' 'L912' Disk
        1,1,0) *
        1,2,0) *
        1,3,0) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
        1,4,0) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
        1,5,0) *
        1,6,0) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
        1,7,0) *
</verb>
<it>Lista1: lettura periferiche sul bus SCSI</it></tscreen>

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.
Comunque la descrizione del prodotto spesso dà dei suggerimenti nella forma di
una R, -R o -RW.

<!--Non preoccupatevi della parola chiave "scsibus". Se non avete un controller
SCSI vi basterà continuare a leggere per imparare a caricare il modulo per il
kernel di Linux che emula un controller. Stessa cosa per chi possiede un
masterizzatore su porta parallela. Siccome ATAPI significa "parla il
protocollo SCSI sul bus IDE" è più o meno semplice far sembrare periferiche
IDE/ATAPI come SCSI. Ma se accedete al masterizzatore come a una periferica
SCSI con il software di masterizzazione, lo dovrete fare anche per usarlo come
normale CD-ROM. Generalmente il montaggio di filesystems o la riproduzione di
CD Audio avverrà attraverso scd0 (o anche sr0 NdT).-->

<sect1>Introduzione Veloce
<p>
Questa sezione è un tentativo di fornire una descrizione veloce e comprensibile della configurazione.
Non tutte le possibilità sono analizzate, ma, insomma, arrangiatevi un poco!
Prima di tutto, controllate la versione indicata dal comando uname. Dovrebbe essere qualcosa del tipo
2.0.X oppure 2.2.Y, dove X è maggiore di 36 e Y di 11. Se avete in esecuzione versioni più vecchie
oppure serie 2.1.* o 1.*.* dovrete arrangiarvi. La lista a seguire indica una serie di comandi con cui
potrete inziare. I comandi creano i device file all'interno della directory /dev e cercano di caricare
alcuni moduli.

<tscreen><verb>
test `whoami` = 'root' || echo "Devi essere root per eseguire i comandi."
cd /dev/
umask -S u=rwx,g=rwx,o-rwx
./MAKEDEV loop || for i in 0 1 2 3 4 5 6 7; do mknod loop$i c 7 $i; done
./MAKEDEV sg   || for i in 0 1 2 3 4 5 6 7; do mknod sg$i  c 21 $i; done
for i in ide-scsi scsi_mod sg sr_mod loop
do
    modprobe $i || grep $i /proc/modules || echo "Forse manca il driver $i."
done
cdrecord -scanbus
</verb>
<it>Lista: creazione dei device file e caricamento dei moduli</it></tscreen>

L'accesso all'hardware è di solito implementato sotto Linux attraverso i file di periferica.
Quindi prima di ogni altra cosa è necessario controllare che essi esistano nella directory /dev.
Ancora nessuno mi ha dato un motivo ragionevole per cui questo procedimento non sia stato automatizzato
attraverso tecniche come il device filesystem (devfs). Il devfs è ormai disponibile da anni, supporta
uno schema di denominazione più sicuro (!) e più chiaro, e inoltre permette ai file di periferica di apparire
automaticamente nella directory /dev.
Alcune persone pensano che il devfs non sia la soluzione perfetta, però non se ne escono con idee migliori,
nemmeno con qualcosa di comparabile e, per ultimo, niente di disponible e testato. Cominciamo ad usare devfs!
(<url url="http://www.atnf.CSIRO.AU/~rgooch/linux/kernel-patches.html">)

Leggete il prossimo capitolo se non vi sono i moduli necessari nel vostro sistema oppure consultate la documentazione
della vostra distribuzione.
Se lavorate in modalità testo (console), il caricamento dei moduli potrebbe causare la stampa di alcuni messaggi sullo schermo.
Se lavorate in modalità grafica (X11, KDE, Gnome), potrete vedere questi messaggi tramite il comando dmesg.
Per caricare i moduli avete la possibilità di elencarli in un file di configurazione come /etc/modules oppure far girare
i demoni kerneld oppure kmod che caricheranno i moduli necessari per voi quando il kernel ne avrà la necessità.

Persone con masterizzatori SCSI possono saltare il resto di questa sezione visto che cdrecord molto probabilmente riconoscerà
il loro hardware. Se non è questo il caso mandatemi un'e-mail con le informazioni sulla vostra configurazione, di modo che possa
migliorare la sezione sui masterizzatori SCSI.

E ora per quelli che posseggono masterizzatori IDE/ATAPI.
Come scritto nel capitolo precedente, dovrete caricare il driver di emulazione ide-scsi.
Ma questo driver può solo accedere al vostro masterizzatore se non vengono caricati ulteriori driver.
In altre parole dovrete dire al normale driver IDE di lasciar stare il vostro masterizzatore, di modo che il
driver ide-scsi possa appropriarsene.

<tscreen><verb>
hda = IDE bus/connector 0 master device
hdb = IDE bus/connector 0 slave  device
hdc = IDE bus/connector 1 master device
hdd = IDE bus/connector 1 slave  device
</verb>
<it>Tabella: nomi file di periferica per hardware IDE/ATAPI </it></tscreen>

La tabella qui sopra indica la relazione fra i nomi dei device file e la posizione delle periferiche sui bus IDE.
Il nome del device file rappresentante il vostro masterizzatore deve essere passato come opzione al driver nel kernel di Linux.
Esempio: hdb=ide-scsi.
Questa impostazione dovrebbe essere posizionata in lilo.conf oppure chos.conf, se il driver è compilato staticamente nel kernel,
che è la scelta più comune.
Le prossime due liste indicano configurazioni di esempio. Tutte le altre varianti come hdb=ignore oppure hdb=none non
faranno quello che vi serve. "Ignore" significa di non effettuare il test automatico della periferica e "none" bloccherà l'accesso
alla periferica.

<tscreen><verb>
image=/boot/zImage-2.2.14
  label=Linux
  read-only
  append="hdb=ide-scsi"
</verb>
<it>Lista: Configurazione di esempio per lilo (/etc/lilo.conf)</it></tscreen>

<tscreen><verb>
linux "Linux 2.1.14" {
        image=/boot/zImage-2.0.37
        cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
</verb>
<it>Lista: Configurazione di esempio per chos (/etc/chos.conf)</it></tscreen>

Se il driver per i CD-ROM IDE/ATAPI viene caricato come modulo, allora tutto quello scritto qui sopra non farà
per voi alcuna differenza, ma assicuratevi di includere le opzioni indicate nella prossima lista.
Le ultime tre linee di questa lista sono generalmente suggerite per automatizzare al massimo il caricamento dei moduli necessari.
Se non fate girare il demone per il caricamento automatico dei moduli, allora aggiungete i nomi dei moduli al file /etc/modules.conf
(oppure a quello specifico della vostra distribuzione).

<tscreen><verb>
options ide-cd ignore=hdb            # indica al modulo ide-cd di ignorare hdb
alias scd0 sr_mod                    # carica sr_mod all'accesso di scd0
pre-install sg     modprobe ide-scsi # prima di sg, carica ide-scsi
pre-install sr_mod modprobe ide-scsi # prima di sr_mod, carica ide-scsi
pre-install ide-scsi modprobe ide-cd # prima di ide-scsi, carica ide-cd
</verb>
<it>Lista: Configurazione di esempio per /etc/modules.conf</it></tscreen>

Se usate il masterizzatore anche come lettore CD
ricordatevi che dovrete accedere al masterizzatore attraverso il file di periferica /dev/scdX ove X=0,...,8.
Potete indirizzare il puntatore simbolico cdrom all'attuale nome del file di periferica. La lista qui di seguito indica il comando
per ottenere questo, prendendo come esempio scd0.

<tscreen><verb>
cd /dev && rm cdrom && ln -s scd0 cdrom
</verb>
<it>Lista: Impostare cdrom come nome simbolico per scd0</it></tscreen>

Se invece avete anche un CDROM IDE potrete continuare ad usarlo nel solito modo.

<sect1>Compilazione dei moduli del kernel mancanti.
<p>
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).

<tscreen><verb>
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
</verb>
<it>Tabella 4: </it></tscreen>

Y vuol dire S&Igrave;, 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.

<!--
L'opzione "SCSI hostadapter emulation" era chiamata "SCSI emulation" 
nei kernel più vecchi (verso la 2.0.36). Se puoi, compila il driver per
i CD-ROM IDE/ATAPI come modulo. Altrimenti lascialo perdere (N) e usa il
driver per i CD-ROM SCSI. Nella serie 2.2 del kernel non è più possibile 
usare i driver IDE e SCSI sulla stessa periferica allo stesso tempo 
(se hai ancora la 2.0.36 leggi sotto).
-->

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.

L'installazione del kernel risultate va al di là degli scopi di questo HOWTO.
Consultate la documentazione della vostra distribuzione.

Utenti di RedHat Linux attenzione: dovrete compilare nel kernel le opzioni "Ramdisk support" e "Initial ramdisk".
Inoltre dovrete generare un nuovo ramdisk con i nuovi moduli con un comando del tipo:
"mkintrd --preload ide-cd initrd-2.2.14.img  2.2.14".

<sect2>Note particolari per Kernel sino alla v2.2.9
<p>

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

Alcuni utenti hanno riportato dei problemi con binari precompilati e
la versione 2.2. Questo è un problema del kernel di Linux. Soluzioni:
<itemize>
<item>Potrebbe sparire se ricompili cdrecord in modo che si adegui alle nuove 
	dichiarazioni di linux/include/scsi/sg.h.
	Questi valori devono essere uguali a quelli del kernel in funzione
	per via dell'interfaccia utente sg, che non è propriamente una meraviglia.
<item>Potrebbe essere colpa di un driver sg che non riesce ad allocare 
	sufficiente memoria per usare la modalità DMA (versioni del Kernel
	sino alla 2.2.5).
</itemize>

<!--Con le versioni 2.2 e superiori puoi selezionare quale driver (IDE o SCSI)
usare per ogni periferica ATAPI. Importante: le opzioni di selezione del 
driver da usare per ogni singola periferica sono diverse nei kernel 2.0 e 2.2.-->

<sect2>Masterizzatori SCSI
<p>

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
<url url="http://www.torque.net/parport/parscsi.html"> per saperne di più. 

<sect3>Periferiche SCSI generiche
<p>
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 <it>Periferica SCSI generica</it>. 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 <it>generica</it>.

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

<tscreen><verb>
shell&gt; cd /dev
shell&gt; ls sg*
sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7
</verb></tscreen>

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

<tscreen><verb>
shell&gt; cd /dev/
shell&gt; ./MAKEDEV sg
</verb></tscreen>

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

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


<sect2>Masterizzatori per porta parallela
<p>

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



<sect1>Procurarsi il software per masterizzare
<p>
Un elenco di aggeggi utili alla produzione di CD-ROM è disponibile presso:
<url url="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html">.

<sect2>Utility a riga di comando
<p>
Per generare i prototipi per i CD-R serve almeno uno di questi pacchetti
(richiesti solo per CD-ROM di dati):

<quote>
<url url="ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/"> (mkisofs)<p>
<url url="ftp://ftp.ge.ucl.ac.uk/pub/mkhfs"> (mkhybrid)
</quote>

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

<quote>
<url url="ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/"> (cdrecord) <p>
<url url="http://www.ping.de/sites/daneb/cdrdao.html"> (cdrdao) <p>
</quote>

Non fare caso alla pagina man di un vecchio <tt>mkisofs</tt> che afferma che è 
necessaria la versione 1.5 di <tt>cdwrite</tt>. 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.

<sect2>Interfacce grafiche (opzionali)
<p>
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.
	
<it>X-Cd-Roast</it> è un pacchetto dedicato a una facile creazione di CD sotto Linux.
Combina utility a riga di comando come <tt>cdrecord</tt> e <tt>mkisofs</tt> in una simpatica 
interfaccia grafica.

<quote>
<url url="http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e&lowbar;overview.html">
</quote>

<it>BurnIT</it> è 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:

<quote>
<url url="http://sunsite.auc.dk/BurnIT/">
</quote>

<it>CD-Tux</it> è un frontend basato su interfaccia a caratteri per i programmi mkisofs e cdrecord.
"Un'ambiente facile da usare per fare praticamente qualsiasi cosa a un CD, con supporto per i colori attraverso la famosa libreria NCURSES.
E fa tutto questo con un eseguibile sotto i 75K."

<quote>
<url url="http://www.datadictator.co.za/cdtux/">
</quote>


<sect>Scrittura dei CD-R
<p>
<quote>
<it>"Se anche ti trasformi in fumo non credo smetterò di divertirmi 
mentre bruci."</it>
(Imperatore romano Nerone mentre bruciava i suoi CD classici, 64A.C. 
Non aveva capito molto.)
</quote>
<p>

La scrittura dei CD-R si fa in 2 passi sotto Linux:

<itemize>
<item> impacchettare i dati desiderati (file, musica o entrambi) in un
file con formato speciale usando le utility mkisofs/mkhfs
<item> scrivere questo file su CD-R usando <tt>cdrecord</tt>
</itemize>

Questo capitolo descrive i passi per la creazione di CD audio e dati in
maggior dettaglio.


<sect1>Scrivere CD-ROM (solo dati)
<p>
Attenzione, mettere insieme il software di solito è una cosa più 
lunga di quanto uno non si aspetti. Stai attento perché file mancanti
non possone essere aggiunti una volta scritto e finalizzato il CD.

<!--
Questo è vero anche per i CD-RW che attualmente possono essere riscritti
solo partendo da zero. Se non finalizzi il CD e quindi crei un CD-ROM
detto multisessione perdi dello spazio per la table of contents (TOC).
-->

Tieni sempre in mente che una parte dello spazio libero del CD deve
essere usato per mantenere le informazioni del filesystem ISO9660.
Di solito questo occupa non molti megabyte: per dare un'idea diciamo
che 620MB di dati ci stanno di sicuro su un CD-R da 650MB,



<sect2>Creare un'immagine del successivo CD-ROM
<p>
Prima di usare qualsiasi supporto (tipo floppy, hard-disk o CD) questo
deve avere un filesystem (in lingua DOS: essere formattato). Il filesystem
è responsabile di organizzare e incorporare i file che dovrebbero essere
scritti sul supporto.

Le solite utility per creare filesystem su partizioni dell'hard disk scrivono 
su di esse un filesystem vuoto, che viene poi montato e riempito con dei
file quando servono all'utente.
Allora, un CD-R è scrivibile una sola volta, giusto? Possiamo scriverci
sopra un filesystem vuoto, quindi formattarlo, ma poi resterebbe vuoto 
a vita. Questo è vero anche per i CD-RW visto che non si possono cambiare
settori arbitrari, ma bisogna cancellare l'intero contenuto.

Dunque, quello che ci serve è un aggeggio che crei un filesystem mentre
copiamo i file sul CD. L'utility si chiama <tt>mkisofs</tt>. Un uso tipico è
simile a questo:

<tscreen><verb>
mkisofs  -r   -o cd_image   private_collection/
              `---------'   `-----------------'
                   |               |
             file immagine   directory sorgente
</verb></tscreen>

L'opzione '-r' imposta i permessi dei file perché siano leggibili da
tutti sul CD e attiva le estensioni Rock Ridge. Questo è quello che si
vuole di solito e l'uso dell'opzione è raccomandato a meno di non
sapere esattamente quello si sta facendo (Attento: senza '-r' il punto di montaggio
si becca i permessi di <tt>private_collection!</tt>).

<tt>mkisofs</tt> cercherà di mappare tutti i nomi di file nel formato 8.3 usato dal 
DOS per assicurare la massima compatibilità. In caso di conflitti per i nomi
(file diversi hanno lo stesso nome 8.3), vengono usati dei numeri nei nomi
e informazioni a proposito del nome scelto sono stampate sullo STDERR (che poi
è lo schermo, di solito).
Niente panico: sotto Linux non vedrete mai questi nomi in formato 8.3 perché
Linux usa le estensioni Rock Ridge che contengono le informazioni dei file originali 
(permessi, nome ecc.).

Magari ora ti stai chiedendo perché diavolo non spedire l'output di
<tt>mkisofs</tt> direttamente al masterizzatore. Per 3 ottimi motivi:

<itemize>
<item><tt>mkisofs</tt> non sa certo come pilotare i masterizzatori.
<item>A volte è utile testare l'immagine prima di scriverla.
<item>Su macchine lente non sarebbe sicuro (v. sezione 4.).
</itemize>

Il metodo per scrivere CD-R in un unico passo verrà descritto più avanti.

Si potrebbe anche pensare di creare una partizione extra per fare tutto 
questo e scrivere l'immagine sulla partizione invece che su un file.
Non sono d'accordo su questa strategia perche se per caso scrivi sulla 
partizione sbagliata (perché hai scritto male il comando), puoi anche 
perdere l'intero sistema Linux (insomma: a me è successo). In più è uno spreco di spazio su disco
perché l'immagine del CD è un dato temporaneo che può essere cancellato
dopo aver scritto il CD. Comunque, usare partizioni grezze ti 
risparmierebbe il tempo di cancellare file di 650MB.
(Se hai spazio su disco sufficiente una partizione extra ti permette
di risparmiare il tempo di cancellazione dell'immagine.)


<sect2>Testare l'immagine del CD
<p>
Linux ha la possibilità di montare file come se fossero partizioni.
Questa capacità è utilissima per controllare che la disposizione delle
directory e i permessi sull'immagine siano ottimali. Anche se i dischi non costano molto
il processo di scrittura è comunque abbastanza lungo e se non altro potresti
evitare di perdere tempo con un veloce test.

Per montare il file <tt>cd_image</tt> creato prima sulla directory <tt>/cdrom</tt> 
impartisci il comando

<tscreen><verb>
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
</verb></tscreen>

Ora puoi ispezionare i file sotto <tt>/cdrom</tt> - essi appaiono esattamente come
se fossero su un vero e proprio CD. Per smontare l'immagine del CD basta 
dire <tt>umount /cdrom</tt>. (ATTENZIONE: Se usi kernel di Linux più vecchi della v. 2.0.31 l'ultimo file
su /cdrom potrebbe non essere completamente leggibile. Usa kernel più recenti
come la v. 2.0.36. L'opzione -pad di cdrecord si applica ai soli CD audio; per poterla
usare anche con mkisofs è necessario una patch, la cui utilità è più o meno
quella di applicare un upgrade a un kernel senza bug.)

Nota:
<quote>
alcune antiche versioni di <tt>mount</tt> non sono in grado di usare
i device loopback. Se hai ancora una versione così vecchia
forse è ora di aggiornare il sistema.<p>

Parecchia gente ha già chiesto di inserire in questo HOWTO 
informazioni su come procurarsi le più recenti utility mount.
Io rifiuto sempre. Se la tua distribuzione Linux ha una 
versione troppo vecchia di <tt>mount</tt>: riportalo come un bug. Se
la tua distribuzione di Linux non è facilmente aggiornabile:
riportalo come un bug.<p>
Se avessi incluso tutte le informazioni necessarie per aggirare
i bug in distribuzioni Linux mal progettate questo HOWTO sarebbe
stato mooolto più lungo e difficile da leggere.
</quote>


<sect2>Scrittura dell'immagine sul CD
<p>
Non c'è più molto da fare. Se non hai già provato a farlo è ora di dare
il comando

<tscreen><verb>
cdrecord -scanbus
</verb></tscreen>

Questo ti indicherà a quali periferiche SCSI è collegato il tuo masterizzatore.
Tutti gli altri metodi per individuare le informazioni così gentilmente
stampate da cdrecord sono stati rimossi da questo HOWTO (specialmente
lo schema di denominazione per periferiche SCSI generiche, in qualche modo
pericoloso).

Prima di mostrarti l'ultimo comando, lascia che ti avverta di una cosa:
i masterizzatori hanno bisogno di essere alimentati con un flusso di 
dati costante in quanto hanno solo dei piccoli buffer per i dati.
Dunque il processo di scrittura del CD non deve essere interrotto
oppure ti risulterà un CD inusabile. È facile interrompere il processo 
di scrittura cancellando un grosso file. Per esempio, mettiamo il caso
che tu voglia cancellare un file di 650MB: il kernel deve aggiornare
informazioni per circa 650.000 blochhi sull'hard-disk (mettendo il caso 
che tu abbia una dimensione di blocco pari a 1KByte per il tuo filesystem).
Questa operazione ha bisogno di un po' di tempo ed è facile che rallenti
l'attività del disco abbastanza perché il flusso di dati si interrompa
per alcuni secondi.
Comunque, leggere la posta, navigare sul web o persino compilare un kernel
generalmente non interrompono il processo su macchine moderne.
(NDT: in generale, se avete un po' di cognizione, non fatevi troppi problemi ad usare la macchina. Vi faccio il mio esempio: io ho un sistema SCSI e durante una copia diretta, posto di aver assegnato un buffer di 20MB al processo di scrittura, il mio k6-2 350MHZ non viene usato per più del 3%. Capite come ciò non costituisca un grosso sforzo per la macchina.)

Tieni presente che nessun masterizzatore può riposizionare il laser e
riprendere da una posizione precisa sul CD se viene disturbato. Quindi anche
forti vibrazioni oppure shock meccanici probabilmente distruggeranno il CD
in fase di scrittura.

OK, se sei mentalmente preparato, indossa una tunica nera, moltiplica
l'ID SCSI del masterizzatore per la sua revisione ANSI e accendi tante
candele quant'è il risultato, recita 2 versi dell'ASR-FAQ (newsgroup alt.sysadmin.recovery) 
e infine scrivi:

<tscreen><verb>
shell&gt; SCSI_BUS=0   # dalla lista 1 "scsibus0:"
shell&gt; SCSI_ID=6    # dalla lista 1 "TOSHIBA XM-3401"
shell&gt; SCSI_LUN=0
shell&gt; cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
                   -data  cd_image

# come sopra ma più in breve:
shell&gt; cdrecord -v speed=2 dev=0,6,0  -data  cd_image
</verb></tscreen>

Per una maggiore comprensibilità la coordinate del masterizzatore sono
memorizzate in 3 variabili d'ambiente chiamate SCSI_BUS, SCSI_ID, SCSI_LUN.
L'opzione -data non è obbligatoria ma viene impostata per rendere la riga di 
comando comparabile a quella usata per scrivere CD audio.

Se vuoi usare cdrecord per riscrivere un CD-RW devi usare
l'opzione "blank=..." per cancellare il vecchio contenuto. Fatti un favore,
leggi la pagina man per maggiori informazioni su come svuotare un CD-RW.

In tempi in cui tutti escluso me (escludete pure anche me NDT) hanno a
casa una macchina a 400 MHZ si può in genere passare l'output di mkisofs
direttamente a cdrecord:

<tscreen><verb>
shell&gt; IMG_SIZE=`mkisofs -R -q -print-size private_collection/  2>&1 \
  | sed -e "s/.* = //"`
shell&gt; echo $IMG_SIZE
shell&gt; [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r  private_collection/  \
|cdrecord  speed=2  dev=0,6,0
            tsize=${IMG_SIZE}s  -data  -
#     non dimenticare la s --^         ^-- leggi i dati da STDIN
</verb></tscreen>

Il primo comando è un'esecuzione mirata a determinare la dimensione dell'immagine
(è necessaria la versione di mkisofs della distribuzione di cdrecord perché
questo funzioni). Può darsi che il tuo masterizzatore non richieda di conoscere
la dimensione dell'immagine da scrivere, in tal caso è possibile saltare questo passo.
La dimensione stampata deve essere passata come parametro tsize a cdrecord
(è mantenuta nella variabile d'ambiente IMG_SIZE). Il secondo comando è una sequenza
di cdrecord e mkisofs accoppiati con una pipe.


<sect1>Scrittura di CD audio
<p>

La procedura per i CD audio è molto simile ai passi descritti sopra.
Le due differenza principali sono che i CD audio consistono di tracce
che sono organizzate in immagini separate. Quindi se vuoi avere dieci
tracce su un CD devi anche preparare dieci immagini.
(NDT: con cdrdao non è necessaria la creazione di file immagine multipli) L'altra differenza
è che il formato delle immagini non è ISO-9660 (o un altro filesystem a scelta)
ma è "campionamenti a 16 bit stereo in formato PCM a 44100 campionamenti/sec (44.1kHz)".

Una utility per convertire i tuoi file audio nel formato richiesto è sox.
Il suo utilizzo è immediato

<tscreen><verb>
shell&gt; sox  killing-my-software.wav  killing-my-software.cdr
</verb></tscreen>

Questo comando converte la canzone killing-my-software dal formato WAV al
formato CDR-audio. Dai un'occhiata alla pagina man di sox per maggiori dettagli
a proposito dei formati e delle estensioni per i nomi di file che sox riconosce.
Siccome la conversione ha bisogno di molto spazio su disco è stata implementata
in cdrecord la capacità di scrivere formati WAV e AU senza bisogno di conversione
manuale, a patto che i file sonori abbiano estensione .wav o .au (e ovviamente
siano in qualità "stereo, 16 bit, 44.1kHz").

Cdrecord scrive le immagini come tracce audio, se l'opzione -audio è
specificata. Le altre opzioni sono identiche a quelle usate per scrivere CD
di dati (a meno di esigenze particolari). Ecco tre esempi che effettuano la stessa 
operazione, ma leggono le tracce da formati di file sonori diversi:

<tscreen><verb>
shell&gt; cdrecord -v speed=2 dev=0,6,0  -audio  track1.cdr track2.cdr...
shell&gt; cdrecord -v speed=2 dev=0,6,0  -audio  track1.wav track2.wav...
shell&gt; cdrecord -v speed=2 dev=0,6,0  -audio  track1.au  track2.au...
</verb></tscreen>

Un caso speciale è rappresentato dai file MPEG Layer 3 che possono essere convertiti
nel formato richiesto con il comando "mpg123 -cdr -s track1.mp3 > track1.cdr".
L'opzione -cdr assicura che la traccia sia codificata nel modo corretto (vedi sopra).
La conversione da WAV a MPEG
può essere fatta con LAME per i file WAV (estrarre le tracce da
un CD audio con cdda2wav e codificarle in MP3 con LAME). Per creare un
CD audio da un insieme di file MP3 è possibile usare la seguente sequenza di 
comandi:

<tscreen><verb>
for I in *.mp3
do
    mpg123 -cdr -s $I | cdrecord -audio -pad -swab -nofix -
done
cdrecord -fix
</verb></tscreen>

In dipendenza della velocità della tua macchina può essere necessario
abbassare la velocità di scrittura a "speed=1" (opzione di cdrecord). Se
usi "speed=4" significa che la macchina deve essere in grado di riprodurre 
file MP3 a velocità quadrupla. mpg123 ha bisogno di molto tempo di CPU!
Se non sei sicuro prova prima una simulazione con -dummy (mantiene il laser spento).
Al momento i CD prodotti avranno 2 secondi di pausa fra la tracce audio.
Se il tuo masterizzatore supporta la scrittura in modalità "disc-at-once" (DAO),
puoi provare le nuove versioni di cdrecord per sbarazzarti delle pause.

<sect2>DAO
<p>
Se vuoi evitare le pause fra le tracce audio è necessario usare la modalità di
scrittura disk-at-once e non la track-at-once prima descritta. Il supporto per
il DAO attualmente è più avanzato in cdrdao. Dai un'occhiata alla sua homepage
per maggiori dettagli.
Utilizzando il parametro read-cd di cdrdao sarai persino in grado di creare
copie 1:1 di CD audio.

<sect1>CD-ROM in modalità mista (Mixed Mode)
<p>

Non c'è più molto da dire. Basta indicare il tipo delle (successive) immagini
con le opzioni -data e -audio

<tscreen><verb>
cdrecord  -v dev=0,6,0  -data  cd_image  -audio  track*.cdr
</verb></tscreen>



<sect>Caro Winfried,...
<p>
In altre parole questa è la sezione di solito chiamata "frequently asked questions
with answers". Se hai dei problemi con il tuo partner, i tuoi bambini o il cane
puoi inserirli nella sezione, sempre che abbiano a che fare con la scrittura
di CD-R o anche solo se si tratta di situazioni divertenti.

<sect1>Quanto è sensibile il processo di scrittura?
<p>
Prova. Usa l'opzione -dummy per effettuare una simulazione con cdrecord.
Fai quello che vuoi e osserva se il processo viene interrotto o meno.

Se alimenti cdrecord direttamente da mkisofs tieni presente che
processi che occupano molto il disco come l'aggiornamento del 
database <it>locate</it> mettono in pericolo il flusso di dati e quindi la
salute del tuo CD; meglio controllare che non vengano lanciati
dal <tt>cron</tt> o <tt>anacron</tt> mentre stai masterizzando.

<sect1>La frammentazione ha un cattivo impatto sul flusso?
<p>
Di solito è così bassa che il suo impatto non è visibile.
Comunque è piuttosto facile costruire casi patologici di frammentazione,
che abbassino il trasferimento degli hard disk sotto i 100 kbytes/secondo.
Basta non farlo. :-)

Sì, i file sull'hard disk vengono frammentati durante gli anni. Più questo 
accade velocemente più il filesystem si riempie. Lascia sempre un 10% o 20%
di spazio libero e non dovresti avere problemi nella scrittura di CD.

Se non ne sei sicuro dai un'occhiata ai messaggi stampati al boot, 
la percentuale di frammentazione è stampata mentre vengono 
controllati i filesystem. Puoi controllare questo valore con il 
comando molto rischioso:

<tscreen><verb>
shell&gt; e2fsck -n  /dev/sda5        # '-n' is important!
[robaccia-lascia perdere]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
</verb></tscreen>

 In questo esempio la frammentazione è molto alta - ma ci sono solo
73 file molto piccoli su questo filesystem (usati in <tt>/tmp</tt>) quindi 
il valore <it>non</it> è allarmante.

Vi è un'utility in fase sperimentale chiamata e2defrag per deframmantare
filesystem extended-2. La versione corrente non funziona ancora abbastanza bene
per essere usata anche solo in ambienti privati. Se vuoi veramente deframmentare
il tuo filesystem, crea una copia di backup (meglio due), fai pratica nel ripristino 
dei dati e crea un nuovo filesystem (distruggendo il vecchio) e ripristina i dati.
In due parole questa è la tecnica più sicura.

<sect1>Posso tenere un'immagine su un filesystem UMSDOS?
<p>
Certo. L'unico filesystem che non è abbastanza veloce per
masterizzare è il <it>network filesystem</it> (<it>NFS</it>).

Anch'io usavo UMSDOS per condividere lo spazio su disco fra Linux e
DOS/Win su un PC (486/66) dedicato alla masterizzazione.

<sect1>Non c'è qualche modo per aggirare le limitazioni ISO-9660?
<p>
Sì. Puoi mettere su un CD qualsiasi filesystem vuoi. Ma altri
sistemi operativi diversi da Linux non saranno in grado di usarlo.

Ecco un esempio passo a passo:

<itemize>
<item>Crea un file vuoto di 650MB
<tscreen><verb>
dd if=/dev/zero of="empty_file" bs=1024k count=650
</verb></tscreen>

<item>Crea un filesystem extended-2 su questo file
<tscreen><verb>
shell&gt; /sbin/mke2fs  -b 2048  empty_file
empty_file is not a block special device.
Proceed anyway? (y,n) y
</verb></tscreen>

<item>Monta questo file vuoto con le loopback-devices
<tscreen><verb>
mount -t ext2 -o loop=/dev/loop1 empty_file /mnt
</verb></tscreen>

<item>Copia i file che ti servono su /mnt e poi smontalo

<item>Usa <tt>cdrecord</tt> su empty_file (che ora non è più vuoto) come se
fosse un'immagine ISO-9660
</itemize>

Se vuoi aggiungere un CD come questo in <tt>/etc/fstab</tt> ne devi disabilitare
il controllo, cioè per esempio:
<tscreen><verb>
/dev/cdrom  /cdrom  ext2  defaults,ro  0 0
</verb></tscreen>

Il primo 0 significa che il disco non deve essere incluso nei dump, il secondo (importante) indica di non
controllare la presenza di errori al boot (fsck troverebbe degli errori
sul CD).


<sect1>Come copio le tracce da CD Audio?
<p>
Ci sono parecchi pacchetti software. Il più nuovo si chiama "cdparanoia" e 
puoi scaricarlo da:

<quote>
<url url="http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia/index.html"><p>
</quote>

Oppure puoi usare una combinazione di "cdda2wav" e "sox", disponibili presso
sunsite e i suoi mirror:

<quote>
<url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz"><p>
<url url="ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz">
</quote>

Con <tt>cdda2wav</tt> puoi copiare un intervallo specifico (oppure un'intera traccia) da
un CD Audio e convertire il risultato in un file .wav. <tt>sox</tt> al contrario riconverte
i file .wav nel formato cdda tipico dei CD audio dimodoché possano essere scritti
su un CD-R con <tt>cdrecord</tt>. Di solito non è necessario usare <tt>sox</tt> perché le nuove
versioni di <tt>cdrecord</tt> hanno già il supporto per i file .au e .wav.

<sect1>Come controllo la presenza di periferiche SCSI dopo il boot?
<p>
Il file <tt>drivers/scsi/scsi.c</tt> contiene queste righe:  

<tscreen><verb>
/*
 * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
 * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
 * Consider this feature BETA.
 *     CAUTION: This is not for hotplugging your peripherals. As
 *     SCSI was not designed for this you could damage your
 *     hardware !
 * However perhaps it is legal to switch on an
 * already connected device. It is perhaps not
 * guaranteed this device doesn't corrupt an ongoing data transfer.
 */
</verb></tscreen>

(NDT: In pratica il comando "aggiunge" al sistema una nuova periferica
indicata dalle coordinate HA, CH, ID, LUN. Occhio, però! Primo: questa
funzione è ancora una beta; Secondo: SCSI non è USB e quindi non è
una buona idea collegare delle periferiche "a caldo". L'ho visto fare
con successo, ma non è una garanzia... Questa funzione è stata ideata
per aggiungere periferiche già collegate e anche in questo caso non è
sicura al 100%)

Tieni presente che dovrebbe essere usata solo per aggiungere periferiche
alla fine della catena. Se la inserisci nel mezzo rompi le scatole al
meccanismo di assegnazione dei nomi (directory /dev) e potresti distruggere
tutti i tuoi dati.

<sect1>È possibile creare una copia 1:1 di un CD di dati?
<p>
Sì. Tieni presente però che qualsiasi errore di lettura dell'originale
(per polvere o graffi) si ripercuoterà in una copia difettosa.

(NDT: spiacente ma non è vero nella maggior parte dei casi. CD che presentano incongruenze fra "user data"
e Error Correction Codes/Error Detection Codes non possono essere replicati esattamente
(qualcuno ha detto Playstation?) in quanto il firmware del lettore corregge
automaticamente questi "errori". In pratica non è possibile leggere/scrivere
quello che si vuole sul CD ma 280 byte di ogni settore
devono essere una funzione dei 2048 di dati. Si tratta di 4 byte per l'individuazione degli errori e 276 byte per la loro correzione. Una copia 1:1 è possibile con cdrdao e il driver generic-mmc-raw, che supporta per limitazioni fisiche solo una ristretta quantità di hardware.
Se non hai capito niente di questo
dai un'occhiata alle specifiche SCSI-2 e tanti auguri).

Primo caso: hai un masterizzatore e un lettore CD-ROM separato. Se
impartisci il comando

<tscreen><verb>
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
</verb></tscreen>

puoi estrarre un flusso di dati dal lettore <tt>/dev/scd0</tt> e scriverlo direttamente
tramite il masterizzatore che ha ID=3 a velocità 2X.
(NDT: in questo caso si effettua una copia di "cooked data", cioè si copia solo l'area di dati utente in ogni settore. L'altro caso possibile è la copia di "raw data" in cui vengono copiate dal CD le seguenti aree: 
<itemize>
<item>2048 bytes User Data
<item>4 bytes Error Detection Code
<item>8 bytes Zero
<item>276 bytes Error Correction Code
</itemize>)

Secondo caso: non hai un lettore CD-ROM separato. Mi sa che devi usare il
masterizzatore per creare l'immagine del CD-ROM:

<tscreen><verb>
dd if=/dev/scd0 of=cdimage
</verb></tscreen>

Questo comando legge il contenuto del CD dalla periferica corrispondente a /dev/scd0 e lo scrive nel file "cdimage". Il contenuto di questo file è identico a quello generato da <tt>mkisofs</tt>, quindi è possibile procedere come descritto precedentemente nel capitolo (cioè usare il file cdimage come input per cdrecord). Se ti interessa avere un indice dell'avanzamento del processo e altre cosucce carine da vedersi puoi usare <tt>sdd</tt> di Jörg Schilling. 

Se si presentano errori installa una versione recente di cdrecord che contiene lo
strumento "readcd" (presente nella directory misc/). Dà gli stessi risultati di dd, ma ripete la lettura del settore più volte in caso di errori.
(NDT: per chi usa cdrdao è disponibile un'opzione 'read-cd' che legge
il contenuto del disco e ne salva la struttura in un file (la Table Of
Contents) che verrà poi utilizzato nel processo di scrittura per replicare la
struttura del CD originale.)

<sect1>Linux può leggere i CD-ROM Joliet?
<p>
Sì. I kernel più nuovi (2.0.36 e oltre) hanno il suppporto per il formato 
Joliet. Ricordati di usare le parole chiave iso9660 e joliet (che poi è solo
un'estensione) nel file /etc/fstab. Per maggiori dettagli, visita la pagina
<url url="http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html">.


<sect1>Come posso leggere/montare CD-ROM con il masterizzatore?
<p>
Allo stesso modo che con il lettore. Niente trucchi. Tieni presente che
devi usare le periferiche scd (SCSI CDROM) per montare i CD-ROM in lettura
anche se possiedi un CD-ROM ATAPI (ricorda che hai configurato le tue periferiche
ATAPI con l'emulazione SCSI). Per esempio nel file /etc/fstab potresti mettere:

<tscreen><verb>
/dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0
</verb></tscreen>


<sect1>E per far stare ancora più dati su di un CD-R?
<p>
Usa <tt>bzip2</tt> invece di <tt>gzip</tt> o <tt>pkzip</tt>. Ti fa risparmiare fino al 30% di spazio
per file più grandi di 100KB. Scaricatelo all'indirizzo

<quote>
<url url="http://www.muraroa.demon.co.uk/"><p>
</quote>

Invece di masterizzare un vero CD audio puoi convertire i file .wav in
.mp3 e piazzarli su un CD ISO9660 come normalissimi file. Generalmente la 
compressione MPEG III ha un'efficienza di 1:10.
Ovviamente lo stereo non può leggere dei file... questo è il rovescio della
medaglia. Però potresti sempre usare l'hard-disk per la prossima festa;
con 18GB puoi avere a disposizione 3000-4000 titoli (NDT: e non dimenticarti di
invitarmi! :).

Un compressore MPEG III è disponibile presso:
<quote>
<url url="http://www.stud.ifi.uio.no/~larsi/other/8hz-mp3-cheng.tar.gz"><p>
</quote>

Un riproduttore MPEG-III è disponibile presso:
<quote>
<url url="http://homepages.uni-tuebingen.de/student/michael.hipp/mpg123/"><p>
</quote>

Per la voce campionata potresti ridurne le dimensioni usando 
la "GSM lossy speech compression":

<quote>
<url url="ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/"><p>
<url url="http://kbs.cs.tu-berlin.de/~jutta/toast.html"><p>
</quote>

(NDT: per chi quando ha letto il titolo della sezione ha subito pensato a un buon
vecchio e sano oversize (della serie: scrivi finché c'è plastica) ho buone notizie:
in generale i driver non sono schizzinosi quindi se il masterizzatore
è <tt>fisicamente</tt> in grado di effettuare oversize non ci sono
problemi. Che io sappia i driver che lo permettono sono :
Teac-CDR50/55, generic-mmc di cdrdao e cdrecord.
Secondo la documentazione di cdrdao <tt>QUALSIASI</tt> masterizzatore utilizzabile
con il driver generic-mmc-raw dovrebbe essere in grado di effettuare oversize, il firmware non
dovrebbe essere in grado di impedirlo).

<sect1>Come creo dei CD di boot?
<p>
Devi avere un floppy da 1.44 MB bootabile. Creane l'esatta immagine
con il comando

<tscreen><verb>
dd if=/dev/fd0 of=boot.img bs=18k
</verb></tscreen>

Piazza l'immagine nella directory che contiene la tua collezione di
file (o anche in una sottodirectory, fai tu...). Passa a mkisofs
il nome del file con l'opzione '-b' e in più usa '-c'. Per maggiori
informazioni leggiti il file README.eltorito nella distribuzione di 
mkisofs.

Un'applicazione interessante per un CD di boot personalizzato è un
ambiente DOS o Windows a prova di virus. Così puoi risparmiare i 
soldi per un hard-disk (se hai una rete e usi samba per rendere 
disponibili dei file utente su un fileserver). Il giornale di informatica tedesco C't
ha un articolo a tal proposito nel numero 11/99, pagina 206 (<url url="http://www.heise.de/">).

Alcuni dettagli sul CD-ROM di boot della RedHat li trovi presso:
<url url="http://www.channel1.com/users/rodsmith/rhjol-technical.html">.

<sect1>Come posso rendere i CDROM scrivibili come un Hard Disk?
<p>
Sì. C'è un <it>filesystem di overlay</it> per Linux che puoi montare al di sopra
del CD-ROM e che intercetta tutte le operazioni di scrittura. I file
nuovi e quelli modificati sono memorizzati da qualche altra parte, ma
all'utente sembra proprio di averli modificati. Per maggiori informazioni
dai un'occhiata a:
<url url="http://home.att.net/~artnaseef/ovlfs/ovlfs.html">.

Se non ne hai abbastanza devi solo aspettare che Linux supporti il
filesystem UDF, oppure rimboccati le maniche e dai una mano:
<url url="http://trylinux.com/projects/udf/">.
Al momento è supportata la sola lettura a causa di limitazioni dei driver per CDROM nel kernel.

<sect1>È possibile usare più masterizzatori allo stesso tempo?
<p>
Sì. E' stato testato con 3 masterizzatori 6x funzionanti a piena velocità su di un PC
con processore a 233 Mhz, un controller SCSI a singolo canale e kernel 2.2.12.
Ti serve o una versione recente del Kernel (2.2.12 o superiore)
oppure una patch per avere più buffer nel driver SCSI generico <url
url="ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha">; funziona per versioni
sino alla 2.2.5.


<sect1>Quale supporto è il migliore?
<p>
La risposta a questa domanda era obsoleta ed è stata rimossa. La domanda in sé viene mantenuta
per avere uno schema di numerazione costante.

<sect1>E a proposito di Solaris, *BSD, AIX, HP-UX, ecc.?
<p>
Solo il cap.2 è specifico per Linux. Puoi applicare i capitoli 3 e 4 anche
ad altri sistemi operativi. Guarda i file README.NetBSD, README.aix, 
README.hpux, README.next, README.solaris, README.sunos, README.vms 
o README.xxxBSD dalla distribuzione di cdrecord.

<sect1>Dove posso mantenere permanentemente la configurazione locale?
<p>
Hai due possibilità. Usare il file di configurazione per cdrecord oppure
uno shell-wrapper come quello indicato qui sotto. Questo script per la shell
legge un file di configurazione, nel quale sono indicate le opzioni e i 
parametri per cdrecord riga per riga. I nomi sono esattamente gli stessi
che sulla riga di comando, ma senza essere preceduti da -. I commenti sono 
possibili. Esempio:

<tscreen><verb>
# be verbose
v
# set the speed of the writer
speed=2
# the device-coordinates in the form BUS,ID,LUN
dev=0,6,0
</verb></tscreen>

I file di configurazione per lo script sono all'interno di /etc/cdrecord
e devono essere indicati nella riga di comando. Esempio: se vuoi riferirti
alla configurazione /etc/cdrecord/mywriter.cfg, allora devi impartire il 
comando "cdrecord.sh mywriter.cfg -audio track1...". Ogni parametro dopo
mywrite.cfg è passato a cdrecord.

<tscreen><verb>
#! /bin/bash

CFGDIR="/etc/cdrecord"

CFG="$1"
shift
ARGS_LEFT="$@"

if [ ! -f "$CFGDIR/$CFG" ]
then
    echo "Configuration file $CFGDIR/$CFG not found. Exiting."
    exit 1
fi

while read LINE
do
    case $LINE in
        \#*|"") continue;;
    esac
    old_IFS="$IFS"
    IFS="$IFS="
    set -- $LINE
    IFS="$old_IFS"
    O_NAME="$1"
    O_VALUE=""
    while shift
    do
        case $1 in
            "") continue;;
        esac
        O_VALUE="$1"
    done

    if [ -z "$O_VALUE" ]
    then
        O_CDRECORD="$O_CDRECORD -$O_NAME "
        continue
    fi
    O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "
    
done < "$CFGDIR/$CFG"

set -x    #DEBUG
exec cdrecord $O_CDRECORD $ARGS_LEFT
echo "Execution of cdrecord failed."
</verb></tscreen>

<sect1>Come faccio a leggere le informazioni del CD?
<p>
Da qualche parte dopo i primi 32k sul CD vi è un blocco contenente le
informazioni sul CD. Puoi estrarre queste informazioni con questo script:

<tscreen><verb>
#! /bin/bash

RD=/dev/cdrom
for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
	 33342,128 33470,32 33581,16 33598,16  33615,16  33632,16
do
    old_IFS="$IFS"
    IFS=","
    set -- $i
    IFS="$old_IFS"
    OFFSET=$1
    LENGTH=$2
    echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
done
</verb></tscreen>


<sect1>E a proposito dei riscrivibili?
<p>
Per riscrivere un supporto CD-RW specifica il parametro blank=fast a cdrecord.
Tutto qui. Dai un'occhiata alla pagina man di cdrecord per maggiori dettagli
su questo parametro.

<sect1>Come creo un CD multisessione?
<p>
Per prima cosa l'immagine per un CD multisessione deve essere formattata con
il filesystem ISO9660 e le estensioni RockRidge. In più devi usare l'opzione
-multi di cdrecord se vuoi ancora aggingere nuove sessioni. Quindi, almeno per
la prima devi usare l'opzione -multi.

Le immagini per la seconda e successive sessioni sono un poco più difficili da
generare. Mkisofs deve sapere dove inizia lo spazio libero sul CD. ti
puoi procurare questa informazione con l'opzione -msinfo di cdrecord (ecco un
esempio).

<tscreen><verb>
shell&gt; NEXT_TRACK='cdrecord -msinfo dev=0,6,0'
shell&gt: echo $NEXT_TRACK
shell&gt; mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
	  private_collection/ \
</verb></tscreen>

Per maggiori informazioni leggi il file README.multi incluso nella
distribuzione di cdrecord.

<sect1>Devo usare il controller SCSI che mi è stato venduto insieme al masterizzatore?
<p>
Molte specifiche di masterizzatori indicano di usare un bus SCSI separato se i dati viaggiano da un
CD-ROM verso un masterizzatore, e ho potuto constatarlo in questa occasione.

Controller Adaptec 2940UW SCSI, 24x SCSI CD-ROM e masterizzatore 4x4 SCSI.
Quando mi è arrivato il masterizzatore aveva nella scatola il suo controller ISA-SCSI che poteva pilotare
una sola periferica. Ho pensato di lasciarlo stare e di usare il mio controller Adaptec per ogni cosa.
Ho notato che spesso mi capitavano svuotamenti del buffer durante la scrittura a 4X, ma da quando ho iniziato
ad usare il controller ISA-SCSI i problemi sono scomparsi. Conosco altre 2 persone (che usano controller Adaptec 2940)
che hanno avuto esattamente gli stessi problemi, durante la scrittura "al volo". Non ho mai avuto problemi di questo
tipo passando dall'HD al masterizzatore sullo stesso bus.


<sect1>Come masterizzare da rete?
<p>
Di solito un trasferimento via FTP è sufficientemente veloce per sostenere una scrittura a 4X, anche su
una ethernet a 10 Mbit. Potete usare cdrecord in coppia con un client ftp attraverso una fifo.
Prima create una fifo chiamata cdimage:

<tscreen><verb>
mkfifo cdimage
ftp other.host.org
get cdimg cdimage
</verb></tscreen>

Quindi trattate la fifo come una normale immagine, per es. con il comando:

<tscreen><verb>
cdrecord dev=0,1,0 speed=2 cdimage
</verb></tscreen>

Il vostro client ftp si accorgerà che cdrecord vuole leggere dal file e inizierà il trasferimento dati.

<sect1>Sento degli scricchiolii alla fine di ogni traccia
<p>
Dovete utilizzare la modalita disk-at-once (DAO) per eliminarli.

<sect1>Come ci si può organizzare per permettere ad un utente normale la scrittura dei CD?
<p>
Potete rendere setuid l'eseguibile di cdrecord. Questo però potrebbe essere un rischio per la sicurezza.
Impostare i permessi sui file di periferica non aiuta in quanto cdrecord manda comandi privilegiati attraverso
l'interfaccia SCSI generica.

<tscreen><verb>
which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord
</verb></tscreen>


<sect1>La mia variante di Unix è supportata?
<p>
Probabilmente sì. Compilate cdrecord per la vostra piattaforma e date il comando
"cdrecord -scanbus". Leggete i file README.* per la vostra versione di Unix che sono distribuiti
con i sorgenti di cdrecord. Comunque, non tutte le versioni di Unix possono leggere le estensioni
RockRidge, Joliet o HFS.


<sect1>Dove posso procurarmi gli standard "Yellow Book" e "Orange Book"?
<p>
Potete ottenere le specifiche stampate dalla Philips ma sono molto costose.


<sect1>Sto cercando delle informazioni sulla scrittura di Video-CD sotto Linux.
<p>
Anch'io.


<sect1>È più facile impostare un sistema IDE o SCSI?
<p>
Per quanto riguardo la scrittura di CDR sotto Linux, i masterizzatori SCSI sono leggermente più facili da impostare.
E si dice che abbiano una migliore gestione degli errori. Se questo compensi il costo maggiore non è una domanda
cui sia possibile rispondere in generale.

<sect1>Come posso effettuare l'overburn di un CD usando {cdrecord,cdrdao}?
<p>
Effettuare l'overburn di un CD non è niente di speciale. È a tuo rischio provare a far stare i dati sul CD,
ma questo è tutto. Non vi è alcun limite ai 650MB nel software sotto Linux.

<sect1>Cosa farà cdrecord quando non vi sarà input disponibile sulla pipe?
<p>
Terminerà la scrittura. Quindi è possibile accoppiare il vostro strumento di backup preferito
a cdrecord tramite una pipe, come "bru -size=640m -f - |cdrecord dev=0,1,0 speed=2 -". È importante prestare
molta attenzione alle opzioni dello strumento di backup.

<sect1>Vi è l'equivalente di ignore=hdX per l'emulazione ide-scsi?
<p>
Non saprei come fare, ma chiunque è il benvenuto per aggiungere questa caratteristica ai sorgenti
del kernel di Linux.

<sect1>Quante volte posso utilizzare un CD-RW prima che divenga difettoso?
<p>
Buona domanda.

<sect1>Quale formato di CD posso scegliere per renderlo indipendente dalla piattaforma?
<p>
Un CD-ROM che debba essere letto su molti sistemi può solo usare il formato semplice ISO9660.
Questo significa stupidi nomi file in formato 8.3 dal vecchio MS-DOS e senza alcuna estensione HFS (Macintosh),
Joliet (Microsoft) o RockRidge (Unix più recenti).
Non vi è alcuna estensione per nomi di file più lunghi che possa essere letta da tutti i sistemi operativi.

<sect1>È possibile la multisessione per tracce audio?
<p>
I lettori di CD Audio sono in grado di gestire solamente le tracce audio memorizzate nella prima
sessione. In altre parole, se aggiungete tracce in sessioni successive, queste non verranno lette
dal vostro stereo. Scrivere una seconda sessione può essere utile per nascondere una traccia dati
al lettore. In questo modo potete evitare che vi sia una traccia di silenzio, come accade nel caso di 
CD con tracce audio e dati mescolate.

NDT: Per quanto riguarda i dischi con tracce audio e dati esistono 2 possibilità.
<enum>
<item>CD-Extra: una prima sessione contenente le tracce audio, una seconda contenente dati. Gli stereo
	leggeranno solamente le tracce audio, mentre con un lettore CDROM sarà visibile la traccia dati.
<item>CD Mixed Mode: una traccia dati seguita da tracce audio nella prima sessione. È possibile che
	uno stereo tenti di riprodurre la traccia dati, con conseguente rischio di rovinare le casse.
</enum>
L'uomo comune, provvisto di cervello come dotazione di serie, usa adottare la prima possibilità :-).

<sect1>Sento degli scricchiolii alla fine di ogni traccia audio.
<p>
Utilizza la modalità di scrittura DAO (Disc At Once) per i tuoi CD audio e non ci saranno più problemi.
  
<sect>Risoluzione di problemi
<p>
Ricordati sempre che puoi usare i CD bruciati come sottobicchieri. :-)

<sect1>Non va niente: sotto Linux
<p>
Controlla che il masterizzatore funzioni con il software in dotazione
(=sotto un altro sistema operativo). In pratica:

<itemize>
<item>Il controller riconosce il masterizzatore come periferica SCSI?
<item>Il driver software riconosce il masterizzatore?
<item>Si riesce a creare un CD con il software a corredo?
</itemize>

Se non funziona un bel niente anche sotto altri sistemi operativi
ci sono dei conflitti hardware oppure devi mettere mano alla garanzia.
Se invece funziona e usi loadlin per bootare Linux ecco il tuo problema.
Loadlin effettua un boot veloce con la maggior parte dell'hardware già
inizializzato e questo può confondere il kernel di Linux.

<sect1>Messaggio d'errore: No read access for 'dev=0,6,0'.
<p>
Sotto Linux, alcune versioni della libreria C sono incompatibili (bacate)
cosicché un'applicazione linkata con una versione non funziona con un'altra.
Un tipico errore provocato da eseguibili precompilati è simile a questo:

<tscreen><verb>
[root@Blue /dev]# cdrecord -eject dev=0,6,0
cdrecord: No such file or directory. No read access for 'dev=0,6,0'.
</verb></tscreen>

<sect1>Non funziona: sotto DOS e compagnia
<p>
Prova a usare Linux. È veramente un macello installare e configurare 
driver SCSI sotto DOS. E Linux sarebbe troppo complicato? Ha!

<sect1>Errori SCSI nella fase di scrittura  
<p>
Generalmente sono causati da:

<itemize>
<item>Mancanza di disconnessione/riconnessione al bus SCSI
<item>Raffreddamento insufficiente
<item>Hardware difettoso (dovrebbe essere riconosciuto dalla 5.1.)
</itemize>

In varie circostanze le periferiche SCSI si disconnettono e riconnettono
(elettronicamente) dal bus SCSI. Se non lo fanno (guarda i parametri del
controller e del kernel) alcuni masterizzatori danno errori nella fase di
scrittura o finalizzazione del CD.
Specialmente il driver SCSI NCR 53c7,8xx ha questa caratteristica disabilitata
per default, quindi magari dagli un'occhiata per prima cosa:

<tscreen><verb>
NCR53c7,8xx SCSI support                  [N/y/m/?] y
   always negotiate synchronous transfers [N/y/?] (NEW) n
   allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
   allow DISCONNECT                       [N/y/?] (NEW) y
</verb></tscreen>

<sect1>I CD appena scritti non sono leggibili su alcuni lettori.
<p>
Alcune persone hanno riportato l'esistenza di problemi nella riproduzione di CD scritti da loro stessi.
I lettori più vecchi e i caricatori da auto hanno dei problemi nella lettura di CD-R, anche se questa situazione
non è molto frequente.
Quasi sempre invece il problema si pone con i CD-RW dal momento che il loro coefficiente di riflessione del laser
è inferiore a quello dei CD-R, quindi, a maggior ragione, non al livello dei CD "Silver" stampati in fabbrica.

<sect>Ringraziamenti
<p>

Molti ringraziamenti vanno a i lettori di questo HOWTO, che contribuiscono
attivamente ai suoi contenuti. Siccome io non ho avuto fisicamente accesso a un
masterizzatore per diversi anni, informazioni su impostazioni reali ed esperienze varie sono
sempre state di gran valore per me.

<descrip>
<tag/Doug Alcorn &lt;doug@lathi.net&gt;/
ha aiutato a migliorare l'utilizzo di kernel nuovi

<tag/Kalle Andersson &lt;kalle@sslug.dk&gt;/
Come creare CD audio direttamente da mp3.

<tag/Alan Brown &lt;alan@manawatu.net.nz&gt;/

<tag/Rick Cochran &lt;rick@msc.cornell.edu&gt;/
suggerimento a proposito della (dis)connessione nel chip NCR

<tag/Robert Doolittle &lt;bob.doolittle@sun.com&gt;/
ottimi argomenti per escludere cdwrite dall'HOWTO

<tag/Markus Dickebohm &lt;m.dickebohm@uni-koeln.de&gt;/

<tag/Thomas Duffy &lt;tduffy@sgi.com&gt;/
grossa revisione di sintassi e semantica

<tag/Jos van Geffen &lt;jos@tnj.phys.tue.nl&gt;/
ha notato il problema nella 4.9.

<tag/Bernhard Gubanka &lt;beg@ipp-garching.mpg.de&gt;/
ha notato la necessità di una versione decente di mount per usare
le loopback-devices

<tag/Stephen Harris &lt;sweh@mpn.com&gt;/
suggerimenti sulla scrittura di CD audio

<tag/Janne Himanka &lt;shem@oyt.oulu.fi&gt;/
indirizzo per la patch del kernel per leggere CDROM Joliet

<tag/Stephan Noy &lt;stnoy@mi.uni-koeln.de&gt;/
informazioni ed esperienza nella scrittura di CD audio

<tag/Don H. Olive &lt;don@andromeda.campbellsvil.edu&gt;/
URL di mkhybrid

<tag/Jesper Pedersen &lt;jews@imada.ou.dk&gt;/

<tag/Pierre Pfister &lt;pp@uplift.fr&gt;/
mi ha aiutato a sviluppare il capitolo sulle copie 1:1

<tag/Daniel A. Quist &lt;dquist@cs.nmt.edu&gt;/
informazioni su masterizzatori IDE e versioni nuove del kernel

<tag/Martti.Rahkila@hut.fi/
Ha riportato il problema di masterizzatori pre-inizializzati durante
il boot via loadlin.

<tag/Dale Scheetz &lt;dwarf@polaris.net&gt;/

<tag/Joerg Schilling &lt;schilling@fokus.gmd.de&gt;/
informazioni su cdrecord

<tag/Martin Schulze &lt;joey@Infodrom.North.DE&gt;/
informazioni per la mailing list di cdwrite

<tag/Gerald C Snyder &lt;gcsnyd@loop.com&gt;/
volontario per la masterizzazione di un filesystem ext2 (vedi 4.4)

<tag/Art Stone &lt;stone@math.ubc.ca&gt;/
per l'idea di mettere filesystem non ISO-9660 sul CD

<tag/The Sheepy One &lt;kero@escape.com&gt;/
ha suggerito di usare i CD bruciati come sottobicchieri

<tag/Erwin Zoer &lt;ezoer@wxs.nl&gt;/

<tag/Dave Forrest  &lt;dforrest@virginia.edu&gt;/
ha sistemato il problema della dizione di "adapter"

</descrip>

Inoltre vorrei ringraziare le seguenti persono per avermi fatto notare degli
errori di grammatica:
Bartosz Maruszewski &lt;B.Maruszewski@zsmeie.torun.pl&gt;,
Ian Stirling &lt;ian@opus131.com&gt;, Brian H. Toby.

<sect> Note sulla traduzione e suggerimenti
<p>
Traduzione Italiana di Corbelli Giuseppe.
Ho cercato di mantenere un tono "scherzoso e alla buona" per rendere
più piacevole la lettura senza pregiudicare i contenuti. Spero di esserci
riuscito.
Per suggerimenti e schifezze che potrei aver scritto infamatemi pure a questo indirizzo:
&lt;cowo@lugbs.linux.it&gt;

Suggerimenti vari:
<itemize>
<item>Usate cdrdao, non solo cdrecord. Ha meno opzioni ma scrive in DAO, è
stabile, è disponibile in forma precompilata e può essere facilmente pilotato
tramite CUE Sheet (CDRWin vi dice niente?). Con 2 comandi fa copie dirette o
con immagine di qualsiasi disco. Dalla versione 1.1.3 include anche la
libreria Paranoia per DAE, acquisendo dunque la piena capacità di estrazione
audio digitale.
Il sito WEB è il seguente : 
<url url="http://www.ping.de/sites/daneb/download/">

<item>Se dovete solo copiare un CD lavorate sotto la shell senza X e utilizzate
dd per creare l'immagine con un comando tipo:
<tscreen><verb>
[root@braveheart cdrdao]#dd if=/dev/sr0 of=/tmp/nomefile bs=2048
conv=notrunc,noerror
</verb></tscreen>
La dimensione di <it>bs</it> (block size) è relativa alla dimensione dei dati
utente all'interno del settore fisico del CD e l'opzione <it>noerror</it>
consente di ignorare gli errori di lettura più leggeri.

Oppure, meglio ancora, il programmino readcd presente nelle ultime distribuzioni
di cdrecord. In alternativa sg_dd2048 o sg_dd2352 da <url url="http://www.torque.net/sg">

Un esempio con cdrdao è il seguente:
<tscreen><verb>
[root@braveheart cdrdao]#cdrdao copy --device 0,2,0 --source-device 0,1,0 --driver generic-mmc
--fast-toc --on-the-fly --speed 8 --buffers 80 -v 3 --paranoia-mode 0
</verb></tscreen>
per una copia diretta a 8X senza correzione Jitter e con un FIFO di 10
secondi in memoria.

<item>Per creare raccolte mkisofs è necessario, ma per non morire di
vecchiaia è  meglio un front-end grafico tipo X-CDRoast, che trovate
all'indirizzo : <url url="http://www.fh-muenchen.de/rz/xcdroast">

<item>Applicate la patch di cui si parlava prima, reperibile all'indirizzo 
<url url="ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha">
in quanto la gestione di accessi multipli al driver sg è effettivamente poco
efficiente e ciò ha un pessimo impatto sulle copie dirette.
Questo vale solo per kernel "vecchi", a mia conoscenza precedenti alla
v.2.2.5

<item>Linux con l'emulazione SCSI è manna dal cielo per i masterizzatori IDE.

<item>In questo periodo si parla tanto di modalità di scrittura RAW. È più o meno la scoperta
dell'acqua calda. Anche cdrdao ha da almeno un anno un driver di scrittura/lettura RAW quindi può
essere usato al posto di programmi tanto strombazzati.

</itemize>

Fine del Linux CD-Writing HOWTO (puoi smettere di leggere).
</article>

<!-- <sect3>cdda2wav-0.95
<p>
cdda2wav reads audio data given by the cdrom drive and dumps it into
a wav sound file. The sampling format can be controlled by options.
<quote>
<url url="ftp://ftp.gwdg.de/pub/linux/misc/cdda2wav/">
</quote>
-->
