Avanti Indietro Indice

2. Preparazione della macchina Linux per la masterizzazione dei CD-ROM.

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.

2.1 Impostazione dell'hardware.

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?]

2.2 Una nota sulla masterizzazione di CD sotto Linux

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.

2.3 Creazione dei dispositivi generici

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.

2.4 Abilitazione dei dispositivi SCSI generici e loopback

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.

2.5 Compilazione ed installazione del kernel

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]

2.6 Riavviate il computer per attivare le modifiche.

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.

2.7 Creazione dei dispositivi di loopback

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

2.8 Procurarsi il software per masterizzare i CD

Utilities da linea di comando

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

Un'interfaccia utente grafica (opzionale)

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.


Avanti Indietro Indice