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 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,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) *
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. Comunque la descrizione del prodotto spesso dà dei suggerimenti nella forma di una R, -R o -RW.
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.
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
Lista: creazione dei device file e caricamento dei moduli
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! ( 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.
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
Tabella: nomi file di periferica per hardware IDE/ATAPI
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.
image=/boot/zImage-2.2.14
label=Linux
read-only
append="hdb=ide-scsi"
Lista: Configurazione di esempio per lilo (/etc/lilo.conf)
linux "Linux 2.1.14" {
image=/boot/zImage-2.0.37
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Lista: Configurazione di esempio per chos (/etc/chos.conf)
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).
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
Lista: Configurazione di esempio per /etc/modules.conf
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.
cd /dev && rm cdrom && ln -s scd0 cdrom
Lista: Impostare cdrom come nome simbolico per scd0
Se invece avete anche un CDROM IDE potrete continuare ad usarlo nel solito modo.
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.
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".
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.
Alcuni utenti hanno riportato dei problemi con binari precompilati e la versione 2.2. Questo è un problema del kernel di Linux. Soluzioni:
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ù.
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
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.
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.
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.
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/
CD-Tux è 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."
http://www.datadictator.co.za/cdtux/