Questa sezione può essere applicata a tutti i tipi di masterizzatori, incluse periferiche SCSI, IDE/ATAPI e per porta parallela. Gli ultimi due tipi di periferica richiedono driver di compatibilità, che li fanno sembrare vere periferiche SCSI. Da una parte una strategia unificante come questa è semplice ("tutto è SCSI"), in quanto al livello del programma è possibile condividere la propria conoscenza con altri utenti, indipendentemente dal loro tipo di masterizzatore. Per contro, dovrete riconfigurare applicazioni come i lettori di Audio CD o l'utility di mount per rispecchiare i cambiamenti apportati al nome del driver. Per esempio, se il vostro masterizzatore ATAPI era prima identificato dal file /dev/hdc, dopo aver attivato i driver di compatibilità SCSI dovrete riferirvi ad esso come /dev/scd0.
Dopo aver impostato correttamente il tuo hardware e il sistema Linux,
il comando cdrecord -scanbus
dovrebbe mostrare una lista
delle periferiche disponibili sui vostri bus SCSI. Lo scopo di questo
capitolo è di guidarti nell'impostazione del tuo sistema in modo che
l'output del comando sia del tipo:
shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
0) 'Quantum ' 'XP34300 ' 'F76D' Disk
1) 'SEAGATE ' 'ST11200N ' '8334' Disk
2) *
3) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk
4) 'WANGTEK ' '5150ES SCSI-36 ' 'ESB6' Removable Tape
5) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape
6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
7) *
scsibus1:
100) 'Quantum ' 'XP31070W ' 'L912' Disk
101) *
102) *
103) 'TEAC ' 'CD-R55S ' '1.0H' Removable CD-ROM
104) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM
105) *
106) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM
107) *
Lista1: lettura periferiche sul bus SCSI
L'esempio è di Jörg Schilling e indica un totale di 4 masterizzatori. Notate
che l'opzione -scanbus riporta anche altre periferiche, come normali CD-ROM e
dischi fissi. L'ultima colonna indica la descrizione SCSI della periferica,
dalla quale non è possibile distinguere i CD-ROM normali dai masterizzatori.
Inoltre la descrizione del prodotto spesso dà dei suggerimenti nella forma di
una R, -R o -RW.
Il Kernel di Linux può essere equipaggiato con driver per varie cose. I driver possono essere compilati staticamente nell'immagine del kernel oppure come moduli che possono essere caricati a richiesta.
Questo metodo è il migliore per quei drive che non sono essenziali per il funzionamento del sistema, dal momento che il kernel risulterà più piccolo e veloce. Comunque alcuni driver sono essenziali per l'inizializzazione del sistema. Se, per esempio, hai installato il sistema su di un hard-disk IDE è necessario avere il supporto per questa periferica compilato nel kernel e non come modulo.
Vi sono 3 diversi tipi di masterizzatori: SCSI, IDE/ATAPI e quelli esterni per porta parallela. La Tabella 4 spega come configuarare il Kernel di Linux per questi tipi di hardware. La prima colonna della tabella è la sezione del menu di configurazione, dove si trovano le impostazioni. La seconda colonna è una descrizione della caratteristica (presa dal menu di configurazione del kernel).La terza indica il nome del modulo risultante. Le colonne denominate SCSI, IDE e PP contengono le opzioni necessarie per l'hardware associato (PP=porta parallela).
Sez. Descrizione Modulo SCSI IDE PP
------------------------------------------------------------
BLOCK Enhanced IDE/MFM/RLL... Y
BLOCK IDE/ATAPI CDROM ide-cd M
BLOCK SCSI hostadaptor emulation ide-scsi M
BLOCK Loopback device loop M M M
PARIDE Parallel port IDE device paride Y/M
PARIDE Parallel port ATAPI CD-ROMs M
PARIDE Parallel port generic ATAPI M
PARIDE (select a low-level driver) Y
SCSI SCSI support scsi_mod Y/M Y/M
SCSI SCSI CD-ROM support sr_mod Y/M Y/M
SCSI Enable vendor-specific Y Y
SCSI SCSI generic support sg Y/M Y/M
SCSI (select a low-level driver) Y
FS ISO 9660 CDROM filesystem iso9660 Y/M Y/M Y/M
FS Microsoft Joliet cdrom... joliet Y Y Y
Tabella 4:
Y vuol dire SÌ, cioè indica di infilare quella brutta bestia nel kernel. M significa MODULO, quindi questa opzione diverrà un modulo. Con Y/M puoi decidere fra entrambe (l'ordine indica la scelta con meno problemi potenziali). Non serve modificare impostazioni mancanti, anzi lasciarle stare migliora le possibilità che quello che salterà fuori funzioni (se prima funzionava perché non dovrebbe farlo ancora?).
Specialmente in ambienti misti SCSI e ATAPI è meglio compilare la maggior parte delle caratteristiche come moduli.
La periferica loopback è opzionale, serve per testare l'immagine prima di scriverla sul supporto.
Per poter leggere i CD-ROM serve il supporto per il filesystem ISO-9660, che include automaticamente le Estensioni RockRidge. Se vuoi avere anche le estensioni MS Joliet, compila il driver come modulo e caricalo quando ti serve.
In ogni caso ti occorre un driver di basso livello per l'hardware. Basso livello si riferisce al driver che interagisca direttamente con la periferica. Per periferiche SCSI e porta parallela esistono molti driver di basso livello, descritti qui di seguito.
Per caricare i moduli è possibile inserire i loro nomi a un file di configurazione come /etc/modules oppure lasciare che qualche programma (tipo kmod o kerneld) si occupi di caricarli quando il kernel ne ha necessità. Per facilitarvi la vita è possibile aggiungere queste righe al file /etc/conf.modules:
alias scd0 sr_mod # carica sr_mod all'accesso di scd0
alias scsi_hostadaptor ide-scsi # emulazione controller SCSI
options ide-cd ignore=hdb # se /dev/hdb è il masterizzatore
Alcune impostazioni per l'uso di masterizzatori IDE/ATAPI
Gli alias sono nomi alternativi per lo stesso modulo e non sono essenziali. Le opzioni sono un modo di rendere permanenti le preferenze nel caricamento dei moduli, per es. dopo averle usate con successo con modprobe/insmod. Per saperne di più a proposito delle diverse opzioni per i moduli, continua a leggere.
Descrizione comando
-------------------------------------------------
Mostra driver attivi cat /proc/devices
Mostra moduli attivi cat /proc/modules
Mostra moduli disponibili modprobe -l
Rimuove un modulo modprobe -r
Carica manualmente un modulo modprobe
Carica un modulo al boot echo "inseriscili in /etc/modules"
(consulta la documentazione della tua
distribuzione.)
Caricare i moduli automaticamente echo "usare kmod o kerneld"
Tabella: comandi relativi a moduli e driver del kernel
Se ti serve un modulo che non è disponibile devi proprio ricompilare il kernel e riinstallarlo. Meglio leggere il Kernel-HOWTO per avere maggiori informazioni. Puoi trovare le informazioni più recenti su come maneggiare i moduli del kernel nel Module-HOWTO. OK, diciamo che sei riuscito in qualche modo a procurarti i moduli necessari: ora puoi aggiungere il loro nome al file /etc/modules o lasciare che un demone come kmod o kerneld li carichi per te. Consulta la documentazione della tua distribuzione se non sei sicuro.
Se preferisci arrangiarti da solo, installa il pacchetto "Linux Kernel Source" (che poi sono i sorgenti del kernel NDT) che è inserito nella distribuzione. Dopodiché dai i seguenti comandi:
cd /usr/src/linux
make menuconfig # segui le istruzioni e i menu
make dep
make zImage # oppure "make bzImage"
# inserisci un floppy-disk prima di procedere
dd if=arch/i386/boot/zImage of=/dev/fd0
make modules
make modules_install
Tabella: creazione di un floppy disk avviabile
Questa procedura creerà un disco floppy avviabile. Se non hai capito niene di tutto è meglio che ti legga un po' di documentazione come il Kernel HOWTO, oppure chiedi aiuto ad un amico prima di massacrare completamente il tuo sistema. In fin dei conti il Kernel è il cuore del sistema operativo...
Possessori di masterizzatori ATAPI attenzione: se il kernel riconosce la vostra periferica come ATAPI durante l'avvio del sistema, non ci sarà verso di farla funzionare con Linux. Se il driver IDE/ATAPI si appropria della periferica lo SCSI (al di sopra dell'emulazione) non la può più toccare. Ricompilare il kernel con la roba per il CD-ROM come modulo e funzionerà tutto (vedi tabella sopra).
Con le versioni 2.2 puoi specificare quale periferica non trattare come IDE/ATAPI usando il parametro ignore= al momento di caricare il modulo ide-cd. Abilitata questa opzione, il driver non si approprierà della periferica specificata, che dunque resterà disponibile al momento dell'attivazione dell'emulazione controller SCSI. Per esempio: usa "modprobe ide-cd ignore=hdb", se il tuo masterizzatore è hdb e vuoi che il driver ide-scsi lo tratti come periferica scsi (di solito sr0). Non c'è modo per impartire questo comando dalla riga di comando del kernel (come con le v.2.0).
Con i kernel sino alla versione 2.2.9, non abilitare CONFIG_SCSI_MULTI_LUN ('probe for multiple luns') insieme al supporto ide-scsi allo stesso tempo, c'è un bug ide-scsi che non lo permette.
Alcuni utenti hanno riportato dei problemi con binari precompilati e la versione 2.2. Questo è un problema del kernel di Linux. Soluzioni:
Mi hanno detto che i kernel dalla v2.2.10 in poi supportano le opzioni dalla serie 2.0.x e della serie 2.2.x iniziale. L'autore raccomanda la strategia di specificare quale periferica usare con quale driver, come viene fatto con la v2.0.37. La sezione successiva descrive il metodo:
Kernel più vecchi della v.2.0.31 hanno parecchi bug e non possono leggere l'ultimo file su un CD-ROM. Meglio aggiornare alla v.2.0.36. In questa versione l'opzione che veniva chiamata "SCSI emulation" è stata più accuratamente rinominata ""SCSI host adaptor emulation".
Con i kernel 2.0.37 e superiori puoi selezionare il driver (IDE o SCSI)
per ogni periferica ATAPI. Per essere più precisi puoi aggiungere l'opzione
"SCSI emulation" al kernel e attivare l'emulazione per ogni periferica
dalla riga di comando del kernel (prima o durante il boot).
Per esempio se il masterizzatore corrisponde al file di periferica
/dev/hdb allora aggiungi l'espressione hdb=ide-scsi
.
Le seguenti liste mostrano come rendere permanenti le impostazioni con i caricatori LILO e CHOOSE-OS.
image=/boot/zImage-2.0.36
label=Linux
read-only
append="hdb=ide-scsi"
Lista 2: Esempio di configurazione per LILO (/etc/lilo.conf)
linux "Linux 2.0.36" {
image=/boot/zImage-2.0.36
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
Lista 3: Esempio di configurazione per chos (/etc/chos.conf)
Dopo aver installato tutti i driver necessari fai bootare il nuovo kernel. Dovrebbe avere tutte le caratteristiche che ti seviranno per le prossime sezioni.
[Gli utilizzatori di devfs non si devono preoccupare delle prossime procedure di impostazione manuale dei file di periferica. Se usi devfs tutto apparirà magicamente al suo posto.]
Vai nella directory /dev
e guarda se ci sono le periferiche di loopback.
Non muore nessuno se non ci sono, ma forse è meglio averle (vedi 3.5).
Se sono presenti il comando ls
dovrebbe mostrare loop0
-loop7
:
shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
Lista: file di periferica per il loopback
Se non ci sono questi device file, creali con lo script /dev/MAKEDEV
:
shell> cd /dev/
shell> modprobe loop
shell> ./MAKEDEV loop
Lista: comandi per la creazione di periferiche di loopback
L'ultimo comando funziona solo se il modulo loop
sta girando nel kernel.
Quello che hai letto finora a proposito dei device file di loop può essere
applicato anche a tutti gli altri (sg*, pg*, hd*, ...) e non è esplicitamente
menzionato nel seguito.
In caso che la tua distribuzione Linux non contenga lo script /dev/MAKEDEV, crea i file di periferica manualmente con questo ciclo:
for i in 0 1 2 3 4 5 6 7
do
mknod /dev/loop$i c 7 $i
done
ATAPI è un'estensione per le periferiche IDE presente in tutte le periferiche recenti. Questa estensione permette l'uso del protocollo SCSI sul bus IDE. Insieme al modulo del kernel ide-scsi, che converte almeno apparentemente il controller IDE in uno SCSI, puoi far apparire le tue periferiche IDE/ATAPI come SCSI . Perciò attiva il modulo associato e procedi come se avessi un masterizzatore SCSI.
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/
XDaodio
È un front-end grafico per cdrdao. Il suo principale scopo è la creazione di copie 1:1 di CD audio.
http://www.lrz-muenchen.de/~MarkusTschan/