Burning CDs or DVDs with SATA drive?

Polytropon freebsd at edvax.de
Fri Nov 4 15:04:41 UTC 2011

On Fri, 4 Nov 2011 09:23:13 +0000 (GMT), Thomas Mueller wrote:
> After I failed to burn a CD in NetBSD (5.1_STABLE) on the
> older computer (i386) with cdrecord, I booted into FreeBSD
> 8.2 RELEASE and was successful with burncd.  That drive was
> CD-RW, ATAPI, that computer has ATA but no SATA.

Good to see that it's still supposed to work in 8.2. :-)

> Does growisofs work on CDRs or only DVDs?

Haven't tested that, but it should also work for CD media
instead of DVD, just the size of the ISO data is limited
to the size of a CD.

> If 'cdrecord -scanbus' doesn't work at all, how do I get
> the "SCSI device" n:n:n?  Use camcontrol?

Yes. You need to have the "device ATAPICAM" option in your
kernel (or the module for that functionality), then you can

# camcontrol devlist
<HL-DT-ST DVDRAM GSA-H42N RL00>    at scbus0 target 0 lun 0 (pass0,cd0)
<HL-DT-ST DVD-ROM GDR8163B 0L30>   at scbus0 target 1 lun 0 (pass1,cd1)
<Generic Flash HS-CF 4.55>         at scbus3 target 0 lun 0 (pass2,da0)
<Generic Flash HS-MS/SD 4.55>      at scbus3 target 0 lun 1 (pass3,da1)
<Generic Flash HS-SM 4.55>         at scbus3 target 0 lun 2 (pass4,da2)

The first two entries are optical drives, the first one
has recording capability. Device ID is 0:0:0, the
corresponding device files are /dev/pass0 and /dev/cd0,
_those_ are provided by ATAPICAM.

Programs like cdreord and cdrdao require the 0:0:0 device,
growisofs uses /dev/cd0.

Note that you need to set the _permissions_ for those
device files in order to use non-root access to them!
You also need access to /dev/xpt0 which belongs to the
"artificial SCSI subsystem". :-)

You could, for example, make them owned root:operator,
permission 0660, and add your user to the "operator"

> I see both FreeBSD and NetBSD have makefs (which can make
> a UFS/FFS or iso file system, taking the place of mkisofs
> in cdrtools.  But NetBSD has no CD or DVD burner in the
> base system.

I did always use mkisofs for preparing the ISO for a CD,
but you can "include" that step by piping. The growisofs
does this step implicitely, e. g.

	% growisofs -Z /dev/dvd -r -J /path/to/files

This will run mkisofs - the flags -r and -J are explained
in "man mkisofs".

For a pre-mastered ISO file,

	% growisofs -dvd-compat -Z /dev/dvd=image.iso

would do the job. This ISO file could have been created
by mkisofs, by k9copy, or even by dd. You can also use
this with VCD images, created by mkvcdfs, as far as I

By the way, I have symlinked /dev/dvd to /dev/cd0 so I
can access this "more easily". :-)

> I could also try to build cdrkit and see if that works.

Haven't tested this one yet, but it seems to conflict
with cdrtools, and according to the Makefile, it does
not run on v9. Sounds like it's work trying.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list