====== Masterizzare un DVD ======
===== Riferimenti Web =====
* [[http://fy.chalmers.se/~appro/linux/DVD+RW/|DVD+RW/+R/-R[W] for Linux]]
===== Quale programma? =====
=== wodim ===
**Wodim** nasce come fork di **cdrecord**, in quanto la licenza di quest'ultimo non è compatibile con le linee guida Debian per il software libero. Si dovrebbe poter usare ''wodim'' come si utilizzava ''cdrecord'', tant'è vero che in Debian viene creato un **link simbolico** di nome ''cdrecord'' che punta a ''wodim''. Il programma ha la capacità di masterizzare **CD**, **DVD-ROM** e **DVD-Video**.
=== growisofs ===
Nato come semplice front-end di ''mkisofs'', adesso esegue anche la registrazione dei DVD.
=== dvdrecord ===
Nato come un fork di cdrecord, per Debian ha una licenza non-free.
===== Supporti DVD-, DVD+, R e RW =====
==== DVD-R, DVD-RW ====
Un disco DVD-RW può trovarsi in due modalità e può essere scritto con tre strategie:
^ Modalità ^ Strategie possibili ^
| Sequential | Disk-at-once, Incremental Sequential |
| Restricted Overwrite | Restricted Overwrite |
La strategia che offre la compatibilità più vasta è quella **Disk-at-once** su supporti DVD-RW. E' il formato utilizzato dai DVD video. Un DVD-RW nuovo dovrebbe essere in modalità sequential, e già pronto per essere scritto:
growisofs -dvd-compat -Z /dev/dvd -r -J /home/ftp/pub/
I comandi principali per vedere lo stato di un **DVD-RW**, scrivere la prima sessione, le successive, formattare, ecc...
dvd+rw-mediainfo /dev/dvd # Visualizza lo stato del disco
growisofs -Z /dev/dvd -r -J /home/ftp/pub/ # Scrive la prima sessione
growisofs -M /dev/dvd -r -J /home/ftp/divx/ # Scrive una sessione successiva
dvd+rw-format -blank /dev/dvd # Formatta in Sequential mode (veloce)
dvd+rw-format -blank=full /dev/dvd # Formatta in Sequential mode (completo)
dvd+rw-format /dev/dvd # Formatta in Restricted Overwrite mode
growisofs -Z /dev/dvd=image.iso # Masterizza un'immagine ISO su DVD
growisofs -dvd-compat -Z /dev/dvd=image.iso # Masterizza un'immagine ISO di DVD-Video
**Altamente consigliato** aggiungere nelle operazioni di scrittura il parametro ''**-dvd-compat**'' che ha l'effetto di chiudere il disco (impossibile aggiungere altre sessioni), ma crea un DVD maggiormente compatibile con i vari lettori.
==== DVD+R, DVD+RW ====
Teoricamente un **DVD+RW** (ma non un DVD+R) potrebbe essere usato come un vero disco ad accesso casuale, per ospitare filesystem //vfat//, //ext2//, ecc. E' necessario l'opportuno supporto del kernel, ma data l'inaffidabilità dei supporti (il numero di cicli di riscrittura è limitato a circa un migliatio) la cosa direi che non interessa.
Come si farebbe comunque ad aggiungere dati ad un supporto **DVD+RW**?
Per masterizzare il contenuto di una directory:
dvd+rw-mediainfo /dev/cdrom
growisofs -Z /dev/cdrom -r -J /home/ftp/pub/
Per i **DVD+RW** non esiste il concetto di **multisessione** (sarebbe teoricamente superiore, essendo un disco ad accesso random). L'opzione ''**-dvd-compat**'' ha in questo caso l'effetto di scrivere il //lead-out// della traccia, altrimenti opzionale. Neanche il comando di formattazione visto sopra funziona, bisogna ripetere l'operazione di scrittura con ''growisofs -Z''. Il tentativo di formattazione genera il seguente messaggio di errore:
# dvd+rw-format -force -blank=full /dev/cdrom
* DVD±RW/-RAM format utility by , version 4.10.
* 4.7GB DVD+RW media detected.
- illegal command-line option for this media.
- you have the option to re-run dvd+rw-format with:
-lead-out to elicit lead-out relocation for better
DVD-ROM compatibility, data is not affected;
-force to enforce new format (not recommended)
and wipe the data.
===== Masterizzare un DVD-Video =====
Si ricorda che il modo più comodo per copiare i file da un DVD-Video originale è utilizzare il programma ''**dvdbackup**'' (vedere la pagina [[.video:appunti#copia_o_rip_da_dvd|Appunti Elaborazione Video]]):
dvdbackup -i /dev/dvd -o /PATH/TO/BACKUP/ -M
Sebbene un DVD-Video sia leggibile come un normale DVD-ROM (''**mount -t iso9660 -o ro /dev/dvd /mnt**''), in realtà è qualcosa di diverso: anzitutto ha un filesystem UDF (quindi andrebbe montato con l'opzione ''**-t udf**'' che fa apparire i nomi dei file tutti in maiuscolo, come deve essere), inoltre i file sono scritti in un'ordine specifico. L'ordine è molto importante perché pochi lettori accedono al DVD come un DVD-ROM, ma calcolano un offset dalla fine del file VMGM ''**VIDEO_TS.IFO**''.
Inoltre un DVD-Video può avere il sistema di **protezione CSS** e il **codice di regione**, in tal caso la lettura dei file può non essere possibile montando semplicemente il disco. Vedere gli appunti su ''dvdbackup'' di cui sopra.
Quando si desidera masterizzare un DVD-Video si deve pertanto usare l'opzione ''**-dvd-video**'' di ''mkisofs'' (oppure fare in modo che ''growisofs'' passi questo parametro a ''mkisofs''). Se si masterizza un DVD come normale disco dati iso9660 (DVD-ROM) potrebbe comunque funzionare con alcuni lettori DVD-Video, ma certe utility come ''lsdvd'' potrebbero non riconoscerlo come disco Video.
Un esempio di masterizzazione con **mkisofs** (crea l'immagine .iso dai file contenuti in una directory) e **growisofs** (effettua la masterizzazione):
mkisofs -dvd-video -V DVD_TITLE -o ISONAME.iso /PATH/TO/BACKUP/
growisofs -dvd-compat -Z /dev/dvd=ISONAME.iso
Al posto di growisofs si dovrebbe poter usare **dvdrecord**:
dvdrecord speed=1 -dao dev=0,0,0 ISONAME.iso
===== Emulazione IDE-SCSI =====
==== kernel 2.4.x ====
Ricompilato il kernel con il supporto ''**CONFIG_BLK_DEV_IDESCSI=m**'', questo emula un device SCSI su uno IDE, utile per masterizzatori, lettori CD-ROM e simili. Infatti i vari programmi di masterizzazione e simili (soprattutto ''**cdrecord**'') si aspettano un'interfaccia SCSI, non IDE.
Per evitare che il supporto IDE (integrato nel kernel) prenda possesso del device IDE hdc prima che il modulo ''ide-scsi'' venga caricato, si mette in ''**/etc/lilo.conf**'' (o qualcosa di simile in ''**/boot/grub/menu.lst**'') la riga:
append="hdc=ide-scsi"
In ''/etc/modules'' si caricano tutti i moduli necessari: ''ide-scsi'', ''sr_mod'', l'evenutale supporto SCSI generic ''sg'', etc. Nel nostro caso alcuni sono integrati nel kernel, altri caricati al boot. Modificato il link ''**/dev/cdrom**'' da ''hdc'' a ''**scd0**''.
==== kernel 2.6.x ====
Il supporto all'emulazione ''ide-scsi'' nel kernel 2.6.x non ha funzionato molto bene e Linus Torvalds stesso ha espresso l'opinione che non fosse una cosa buona. Visto che ''**cdrecord**'' è stato aggiornato per poter utilizzare direttamente i masterizzatori IDE (quindi con la sintassi ''**dev=/dev/dvd**'' invece di ''**dev=0,0,0**''), conviene abbandonare definitivamente l'emulazione ''ide-scsi''.
Controllare che il modulo non venga caricato, controllare che i link ''/dev/cdrom'' e ''/dev/dvd'' puntino alla periferica IDE, controllare le impostazioni predefinite di cdrecord in ''/etc/cdrecord/cdrecord''. Utilizzando l'emulazione ide-scsi la masterizzazione di un disco potrebbe fallire con questo messaggio (caso di un DVD-RW):
# growisofs -Z /dev/scd0 -r -J /home/niccolo/honda/
Executing 'mkisofs -r -J /home/niccolo/honda/ | builtin_dd of=/dev/scd0 obs=32k seek=0'
Using PART_000.PHP;1 for /part_list_block.php (part_list.php)
/dev/scd0: "Current Write Speed" is 1.0x1385KBps.
:-[ WRITE@LBA=0h failed with SK=4h/ASC=08h/ACQ=01h]: Input/output error
:-( attempt to re-run with -dvd-compat -dvd-compat to engage DAO or apply full blanking procedure
:-( write failed: Input/output error
In proposito vedere l'articolo [[http://programming.linux.com/article.pl?sid=03/12/09/1341236&tid=91&tid=22|Linux 2.6 and the ide-scsi module]].
===== Pacchetti Linux =====
Installati i pacchetti:
mkisofs Crea file system ISO9660
cdrecord Scrive CD-ROM e CD-Audio
dvdrtools non-free, dvdrecord è un fork di cdrecord
Comandi utili:
cdrecord -scanbus Mostra device compatibili
cdrecord dev=/dev/dvd -atip Caratteristiche drive e supporto
Il pacchetto ''dvdplusrw'' di Debian Woody è troppo vecchio e non supporta i DVD-RW (solo i DVD+RW). Si e' presa la nuova versione del programma, compilata e installata:
cd /usr/local/src/
mkdir dvd+rw-tools
wget http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-5.10.4.5.4.tar.gz
tar zxvf dvd+rw-tools-5.10.4.5.4.tar.gz
cd dvd+rw-tools-5.10.4.5.4
make
make install
... (chown e chmod quanto basta)
Vengono installati in ''/usr/local/bin/'' gli eseguibili:
dvd+rw-booktype
dvd+rw-format Prepara o cambia modalita' supporto DVD
dvd+rw-mediainfo Mostra info sul supporto DVD
growisofs Frontend a mkisofs e scrive su DVD
Nessun problema invece con il pacchetto Debian Sarge.