Prima del Novembre 1997, il software per Linux non supportava i masterizzatori ATAPI: come conseguenza, la versione corrente dell'HOWTO si concentra sui dispositivi SCSI.
Le buone notizie sono che la gestione dei dispositivi ATAPI è molto più facile
e si può usare sempre questo HOWTO se ci si dimentica dei "dispositivi SCSI
generici". Per scoprire come indicare i dispositivi ATAPI dovete dare il comando
cdrecord -scanbus
.
Le versioni future di questo HOWTO conterranno altri dettagli sulla gestione dei masterizzatori ATAPI.
Fate shutdown, spegnete il computer ed agganciate il masterizzatore al bus SCSI.
Assicuratevi che il bus SCSI sia correttamente terminato e scegliete uno SCSI-ID libero per il masterizzatore. Guardate sul Linux SCSI-HOWTO se non siete sicuri. Se proprio non sapete cosa fare, cercate un esperto.
Riattaccate la corrente e controllate i messaggi che il BIOS del controller SCSI stampa immediatamente dopo l'accensione. Se non riconosce il masterizzatore, tornate al passo (b). Dovreste vedere un messaggio simile a questo:
[manca l'immagine: qualcuno ce l'ha?]
In contrasto con altre voci, il kernel di Linux _non_ ha bisogno di una patch
per scrivere sui CD. Anche se il file drivers/scsi/scsi.c
dai sorgenti
del kernel contiene la linea
case TYPE_WORM:
case TYPE_ROM:
SDpnt->writeable = 0;
questo vuol dire solo che i CD e le WORM non sono scrivibili attraverso i dispositivi
standard /dev/sda
-/dev/sdh
- che va bene.
Invece di usare questi dispositivi la masterizzazione dei CD viene fatta attraverso i cosiddetti dispositivi SCSI generici che permettono quasi tutto - anche la masterizzazione dei CD.
Il Linux SCSI-HOWTO dice sui dispositivi SCSI generici:
Il driver dei dispositivi SCSI generici fornisce un'interfaccia per mandare comandi SCSI a tutti i dispositivi SCSI - dischi, nastri, CDROM, robot che cambiano le cassette, eccetera.
Chiamare i dispositivi generici interfacce sta a significare che forniscono un modo alternativo di accedere l'hardware SCSI oltre che attraverso i dispositivi standard.
Questo modo alternativo è richiesto perché i dispositivi standard sono progettati per leggere i dati blocco per blocco da un disco, nastro, o cd-rom. Paragonato a questo gestire un masterizzatore (o uno scanner) è più strano, infatti vanno trasmessi comandi per posizionare il laser. Per avere un'implementazione pulita (e quindi veloce) dei dispositivi standard tutte queste azioni strane devono essere fatte attraverso i dispositivi SCSI generici.
Dato che attraverso i dispositivi generici si può fare qualsiasi cosa all'hardware SCSI, questi non sono destinati ad uno scopo particolare - da cui il nome generici.
Andate nella directory /dev
e controllate se ci sono i dispositivi SCSI:
il comando ls
dovrebbe mostrare i file sga
-sgh
:
bash> cd /dev
bash> ls -l sg*
crw------- 1 root sys 21, 0 Jan 1 1970 sga
crw------- 1 root sys 21, 1 Jan 1 1970 sgb
crw------- 1 root sys 21, 2 Jan 1 1970 sgc
crw------- 1 root sys 21, 3 Jan 1 1970 sgd
crw------- 1 root sys 21, 4 Jan 1 1970 sge
crw------- 1 root sys 21, 5 Jan 1 1970 sgf
crw------- 1 root sys 21, 6 Jan 1 1970 sgg
crw------- 1 root sys 21, 7 Jan 1 1970 sgh
Se non avete questi file di dispositivo, li dovete creare usando lo script
/dev/MAKEDEV
:
bash> cd /dev/
bash> ./MAKEDEV sg
Ora dovrebbero vedersi i file di dispositivo.
Il kernel di Linux ha bisogno di un modulo che gli fornisca la capacità di gestire
i dispositivi SCSI generici. Se il kernel che avete ha questa caratteristica
dovrebbe essere elencata nello pseudo-file /proc/devices
:
bash> cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyp
5 cua
7 vcs
21 sg <----- sta per "SCSI Generic device"
30 socksys
Block devices:
2 fd
7 loop <----- si può usare anche il dispositivo di loopback
8 sd
11 sr <----- sta per "SCSI cd-Rom"
Forse dovrete dare il comando insmod sg
, insmod
loop
o insmod sr_mod
per caricare i moduli nel kernel.
Controllate di nuovo dopo aver fatto così.
Se uno di essi non funziona dovrete riconfigurare il kernel e ricompilarlo.
bash> cd /usr/src/linux
bash> make config
[..]
*
* Additional Block Devices
*
Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M
[..]
*
* SCSI support
*
SCSI support (CONFIG_SCSI) [Y/m/n/?] Y
*
* SCSI support type (disk, tape, CD-ROM)
*
SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y
SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M
SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M
SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M
[..]
ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M
Notate che ho omesso le domande non importanti.
Se avete domande a riguardo, vi suggerisco la lettura del Linux Kernel-HOWTO. Inoltre la vostra distribuzione di Linux dovrebbe avere della documentazione su questo argomento.
[Suggerimento: mentre ricompilate potete continuare con i passi 2.7-2.9]
Non vi preoccupate se il kernel di Linux stampa i messaggi troppo velocemente
e non riuscite a leggerli, almeno l'inizializzazione dei dispositivi SCSI può
essere rivisualizzata con il comando dmesg
:
scsi0 : NCR53c{7,8}xx (rel 17)
scsi : 1 host.
scsi0 : target 0 accepting period 100ns offset 8 10.00MHz
scsi0 : setting target 0 to period 100ns offset 8 10.00MHz
Vendor: FUJITSU Model: M1606S-512 Rev: 6226
Type: Direct-Access ANSI SCSI
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
Vendor: NEC Model: CD-ROM DRIVE:84 Rev: 1.0a
Type: CD-ROM ANSI SCSI
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 2131992
Qui sopra c'è solo la parte dei messaggi di inizializzazione che riporta l'individuazione dei dispositivi SCSI fisicamente presenti.
Andate nella directory/dev
e controllate se ci sono dispositivi
di loopback. Se non li avete non è critico, ma conviene averli (vedere
la sezione 3.5). Se già li avete, il comando ls
dovrebbe mostrare
da loop0
a loop7
:
bash> cd /dev
bash> ls -l loop*
brw-rw---- 1 root disk 7, 0 Sep 23 17:15 loop0
brw-rw---- 1 root disk 7, 1 Sep 23 17:15 loop1
brw-rw---- 1 root disk 7, 2 Sep 23 17:15 loop2
brw-rw---- 1 root disk 7, 3 Sep 23 17:15 loop3
brw-rw---- 1 root disk 7, 4 Sep 23 17:15 loop4
brw-rw---- 1 root disk 7, 5 Sep 23 17:15 loop5
brw-rw---- 1 root disk 7, 6 Sep 23 17:15 loop6
brw-rw---- 1 root disk 7, 7 Sep 23 17:15 loop7
Se non avete questi file di device, createli usando lo script
/dev/MAKEDEV
:
bash> cd /dev/
bash> ./MAKEDEV loop
L'ultimo comando funziona solo se avete il modulo loop
nel kernel
(vedere la sezione 2.4 per la gestione dei moduli). Se insmod loop
non aiuta, dovete aspettare finché il nuovo kernel non sia correttamente
installato (vedere la sezione 2.5).
Per generare dei prototipi di CD-R è necessario questo pacchetto:
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
A seconda del modello del masterizzatore (vedere la sezione 1.3) è richiesto uno dei seguenti software per trasferire i prototipi sui CD-R:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/ (cdwrite)
Per favore usate il mirror più vicino di questi server ftp o prendeteli da un CD.
Siate assolutamente sicuri di avere la versione 2.0 o successiva di
cdwrite
. Nessuna versione precedente e specialmente le versioni beta non
funzionano bene! Non credete alle pagine man del (vecchio) mkisofs
che dice
che vi serve la versione 1.5 di cdwrite
.
Per informazioni sui porting di cdwrite per Irix e AIX andate all'URL
http://lidar.ssec.wisc.edu/~forrest/
Se state usando un kernel precedente al 2.0.31, probabilmente dovrete applicare una
patch a mkisofs
per evitare un baco nel codice di filesystem di Linux.
La distribuzione Debian ha un pacchetto per la versione 1.05 di mkisofs
(dovrebbe funzionare anche la 1.11) che aggiunge l'opzione '-K' (vedere la sezione
3.4); è disponibile su
ftp://ftp.debian.org/pub/debian/bo/source/otherosfs/mkisofs_1.11-1.diff.gz
Questa patch è necessaria solo se volete montare l'immagine del CD attraverso il dispositivo di loopback (vedere la sezione 3.5).
X-CD-Roast è un programma di masterizzazione completo basato su X, ed è il
successore dei cdwtools-0.93
. È disponibile su
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
Al momento, X-CD-Roast è basato su una versione modificata di cdwrite-2.0 e quindi ha esattamente le stesse caratteristiche (vedere la sezione 1.4). Le versioni future potranno essere basate sul software alternativo cdrecord.