Here's a small pointer on howto burn DVD-R discs with growisofs, which is of course part of dvd+rw-tools, see homepage : http://fy.chalmers.se/~appro/linux/DVD+RW/ download : http://fy.chalmers.se/~appro/linux/DVD+RW/tools/ These tools work perfectly together with OSS DVD : http://crashrecovery.org/oss-dvd.html I created some extra RPMS for Mandrake, RedHat, Fedora and SuSE. More are to follow. Also checkout the k3b burning program on http://www.k3b.org/ Burning a DVD iso-image : ========================= 1. dvd+rw-tools : ----------------- Using growisofs from the dvd+rw-tools its fairly easy. To use growisofs to write a pre-mastered ISO-image to a DVD+R or DVD-R record-able : # growisofs -dvd-compat -Z /dev/scd2=mdk92.iso # growisofs -dvd-compat -Z /dev/hdc=mdk92.iso The pre-mastered ISO-image is of course typically created with mkisofs version 2.00 or higher. 2. cdrtools-ossdvd : -------------------- With ossdvd cdrecord the same operation is also fairly easy. Burning a single track and closing the DVD disc : burning DVD-R and DVD-RW : A: # cdrecord -v dev=2,0,0 driveropts=burnfree -dao mdk92.iso B: # cdrecord -v dev=ATAPI:0,0,0 driveropts=burnfree -dao mdk92.iso C: # cdrecord -v dev=ATA:1,0,0 driveropts=burnfree -dao mdk92.iso Sometimes its better to drop the burning speed from autodetect (like 16x to 8x) by using the speed option : A: # cdrecord -v dev=2,0,0 driveropts=burnfree speed=8 -dao mdk92.iso B: # cdrecord -v dev=ATAPI:0,0,0 driveropts=burnfree speed=8 -dao mdk92.iso C: # cdrecord -v dev=ATA:1,0,0 driveropts=burnfree speed=8 -dao mdk92.iso formatting DVD-RW : A: # cdrecord -v dev=2,0,0 blank=fast (try blank=help) B: # cdrecord -v dev=ATAPI:0,0,0 blank=fast C: # cdrecord -v dev=ATA:1,0,0 blank=fast burning DVD+RW : A: # cdrecord -v dev=2,0,0 driveropts=burnfree mdk92.iso B: # cdrecord -v dev=ATAPI:0,0,0 driveropts=burnfree mdk92.iso C: # cdrecord -v dev=ATA:1,0,0 driveropts=burnfree mdk92.iso formatting DVD+RW : A: # cdrecord -v dev=2,0,0 -format (only needed once, B: # cdrecord -v dev=ATAPI:0,0,0 -format after purchasing a C: # cdrecord -v dev=ATA:1,0,0 -format new DVD+RW disc ) burning DVD+R DL : A: # cdrecord -v dev=2,0,0 driveropts=burnfree mdk92.iso B: # cdrecord -v dev=ATAPI:0,0,0 driveropts=burnfree mdk92.iso C: # cdrecord -v dev=ATA:1,0,0 driveropts=burnfree mdk92.iso Check below how to retrieve which device name to use. Reading a DVD iso-image : ========================= A: # readcd -v dev=2,0,0 f=mdk92.iso B: # readcd -v dev=ATAPI:0,0,0 f=mdk92.iso C: # readcd -v dev=ATA:1,0,0 f=mdk92.iso Check below how to retrieve which device name to use. readcd is typically a component from the cdrtools package. Make sure you use cdrtools 2.0x, preferably from the OSS DVD project or the readcd which comes with cdrecord-prodvd. The preferred method for reading and burning DVD is of course method A, next choose method C, and as last resort use method B. When using Method B it seems DMA cannot be used during reading/burning. here's the warning message from cdrtools-2.01a32.tar.bz2 : scsidev: 'ATAPI:0,0,0' devname: 'ATAPI' scsibus: 0 target: 0 lun: 0 Warning: Using ATA Packet interface. Warning: The related Linux kernel interface code seems to be unmaintained. Warning: There is absolutely NO DMA, operations thus are slow. I disagree here though : DMA not available results rather in a high system load, and possibly slower buffering, but a fast burning speed is still achieved. Your IDE/ATAPI devices are just inefficient operated. Creating a bootable isolinux DVD Installation Boot iso-image : ============================================================== #!/bin/sh cd /mnt/dvdrip/ /usr/bin/mkisofs -o /mnt/dvdrip/mdk92.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -hide-joliet-trans-tbl \ -l -r -L -J -V "Mandrake 9.2 i586 DVD" -P "STOCK-2003102001" \ -p "stock" -A "Mandrake 9.2 i586 DVD" "/mnt/dvdrip/i586" echo " Done!" exit 0 As of mkisofs version 2.01a32 and higher versions the above script needs to be adjusted into the following : #!/bin/sh /usr/bin/mkisofs -o /mnt/data/mdk100-amd64.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -hide-joliet-trans-tbl -hide-rr-moved -allow-leading-dots \ -l -r -J -V "Mandrake 10.0 AMD64 DVD" -publisher "STOCK-2004093001" \ -p "stock" -A "Mandrake 10.0 AMD64 DVD" "/mnt/data/mdk100" echo " Done!" exit 0 Checking which cdrecord devices are available : =============================================== method A: ide-scsi or e.g. adaptec-scsi using Linux sg transport : ------------------------------------------------------------------ # cdrecord -scanbus Cdrecord-Clone 2.01a18 (i686-pc-linux-gnu) Copyright (C) 1995-2003 Jörg Schilling NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs related to DVD issues that are not present in the original cdrtools. For more information see http://crashrecovery.org/oss-dvd.html. The original cdrtools author should not be bothered with problems in this version. Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) 'PLEXTOR ' 'CD-ROM PX-40TS ' '1.13' Removable CD-ROM 1,4,0 104) 'PLEXTOR ' 'CD-R PX-W1210S' '1.00' Removable CD-ROM 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * scsibus2: 2,0,0 200) 'PIONEER ' 'DVD-RW DVR-107D' '1.05' Removable CD-ROM 2,1,0 201) 'PIONEER ' 'DVD-RW DVR-105 ' '1.30' Removable CD-ROM 2,2,0 202) * 2,3,0 203) * 2,4,0 204) * 2,5,0 205) * 2,6,0 206) * 2,7,0 207) * method A: burn command : # cdrecord -v dev=2,0,0 driveropts=burnfree -dao mdk92.iso method B: ATA Packet specific SCSI transport omitting linux sg transport : -------------------------------------------------------------------------- # cdrecord dev=ATAPI -scanbus Cdrecord-Clone 2.01a27 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs related to DVD issues that are not present in the original cdrtools. For more information see http://crashrecovery.org/oss-dvd.html. The original cdrtools author should not be bothered with problems in this version. scsidev: 'ATAPI' devname: 'ATAPI' scsibus: -2 target: -2 lun: -2 Warning: Using ATA Packet interface. Warning: The related libscg interface code is in pre alpha. Warning: There may be fatal problems. Using libscg version 'schily-0.8'. scsibus0: 0,0,0 0) 'PIONEER ' 'DVD-RW DVR-105 ' '1.30' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * method B: burn command : # cdrecord -v dev=ATAPI:0,0,0 driveropts=burnfree -dao mdk100.iso method C: ATA Packet specific SCSI transport using scsi-linux-sg interface: --------------------------------------------------------------------------- # cdrecord dev=ATA -scanbus Cdrecord-Clone 2.01a27 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs related to DVD issues that are not present in the original cdrtools. For more information see http://crashrecovery.org/oss-dvd.html. The original cdrtools author should not be bothered with problems in this version. scsidev: 'ATA' devname: 'ATA' scsibus: -2 target: -2 lun: -2 Warning: Using badly designed ATAPI via /dev/hd* interface. Linux sg driver version: 3.5.27 Using libscg version 'schily-0.8'. cdrecord: Warning: using inofficial libscg transport code version (schily - Red Hat-scsi-linux-sg.c-1.80-RH '@(#)scsi-linux-sg.c 1.80 04/03/08 Copyright 1997 J. Schilling'). scsibus1: 1,0,0 100) 'PIONEER ' 'DVD-RW DVR-105 ' '1.30' Removable CD-ROM 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * method C: burn command : # cdrecord -v dev=ATA:1,0,0 driveropts=burnfree -dao mdk100.iso Schilling's philosophy of naming devices inside cdrecord : dev=b,t,l ==================================================================== To resume my experience, with Schilling's philosophy of naming devices inside cdrecord : There are the following backend drivers inside cdrecord : sg : Generic transport independent SCSI pg : SCSI transport for ATAPI over Parallel Port ATA : ATA Packet specific SCSI transport (device = ATAPI:x,y,z , but seldom used ) ATA : ATA Packet specific SCSI transport using sg interface (device = ATA:x,y,z , used in almost all Linux PC's ) RSCSI : Remote SCSI In full : [jackson:stock]:(~)$ cdrecord dev=help Cdrecord-Clone 2.01.01a01 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs related to DVD issues that are not present in the original cdrtools. For more information see http://crashrecovery.org/oss-dvd.html. The original cdrtools author should not be bothered with problems in this version. Supported SCSI transports for this platform: Transport name: sg Transport descr.: Generic transport independent SCSI Transp. layer ind.: Target specifier: bus,target,lun Target example: 1,2,0 SCSI Bus scanning: supported Open via UNIX device: not supported Transport name: pg Transport descr.: SCSI transport for ATAPI over Parallel Port Transp. layer ind.: Target specifier: bus,target,lun Target example: 1,2,0 SCSI Bus scanning: supported Open via UNIX device: not supported Transport name: ATA Transport descr.: ATA Packet specific SCSI transport Transp. layer ind.: ATAPI: Target specifier: bus,target,lun Target example: ATAPI:1,2,0 SCSI Bus scanning: supported Open via UNIX device: not supported Transport name: ATA Transport descr.: ATA Packet specific SCSI transport using sg interface Transp. layer ind.: ATA: Target specifier: bus,target,lun Target example: 1,2,0 SCSI Bus scanning: supported Open via UNIX device: not supported Transport name: RSCSI Transport descr.: Remote SCSI Transp. layer ind.: REMOTE: Target specifier: rscsi@host:bus,target,lun Target example: REMOTE:rscsi@host:1,2,0 SCSI Bus scanning: supported Open via UNIX device: not supported [jackson:stock]:(~)$ In this way cdrecord can query for drives using the SCSI Bus scanning protocol. First select your backend driver, ie. dev=ATA, and next run your scan : [jackson:stock]:(~)$ cdrecord dev=ATA -scanbus Cdrecord-Clone 2.01.01a01 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling NOTE: this is OSS DVD extensions for cdrtools and thus may have bugs related to DVD issues that are not present in the original cdrtools. For more information see http://crashrecovery.org/oss-dvd.html. The original cdrtools author should not be bothered with problems in this version. scsidev: 'ATA' devname: 'ATA' scsibus: -2 target: -2 lun: -2 Linux sg driver version: 3.5.27 Using libscg version 'schily-0.8'. scsibus0: 0,0,0 0) 'PIONEER ' 'DVD-RW DVR-107D' '1.05' Removable CD-ROM 0,1,0 1) 'PIONEER ' 'DVD-RW DVR-109 ' '1.57' Removable CD-ROM 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) '_NEC ' 'DVD_RW ND-2510A ' '2.18' Removable CD-ROM 1,1,0 101) '_NEC ' 'DVD_RW ND-3540A ' '1.01' Removable CD-ROM 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * Schilling's approach to the device naming is inherited from the SCSI device naming scheme : [jackson:stock]:(~)$ cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST3120026AS Rev: 3.18 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST3120026AS Rev: 3.18 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST3200822AS Rev: 3.01 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST3200822AS Rev: 3.01 Type: Direct-Access ANSI SCSI revision: 05 [jackson:stock]:(~)$ In the above -scanbus listing we identity : '_NEC ' 'DVD_RW ND-3540A ' '1.01' Removable CD-ROM = ATA:1,1,0 which means : from the ATA backend driver, we take controller=1 (secondary ide channel) device-ID=1 (slave drive) and lun=0. The lun=0 thing is of course a bogus naming here. But i can live with that. Once Schilling has translated the communication in a scsi method, he can blindly attach his libscsi and libscg. And besides, burners which have a real SCSI backend in hardware, i.e. using the backend driver dev=sg, still have worked flawless for me here, without having to worry about Linux kernel versions. The burning with cdrecord is still, as of today, best implemented using the dev=sg driver. In effect, Schilling has made it as its default backend driver. Which means that dev=sg:0,1,0 is in short default notation, omitting the default sg backend, written as dev=0,1,0. Which means we use scsi host scsi0 (i.e. the 1st scsi_hostadapter which is initiated after booting linux), device-ID=1 and lun=0 Robert M. StockmannLast changed Sun Apr 20 23:50:45 CEST 2008