NSLU2-Linux
view · edit · print · history

Record CDROM and DVDROM on Openslug

If you are not familiar with setting up a compiler environment or compiling then I suggest you stop here.
Your CDRW or DVDRW drive must be recognised in Linux.

If you cannot mount a CDROM or DVDROM then you should not continue!

Required Software

The most popular(only?) software for recording CD's on Linux is the CDRtools? package. This package is also required for DVD recording.

  • If you're running Unslung, you can just install the cdrtools package:
ipkg install cdrtools

If you need to record Bin/TOC images or Erase(Blank) a CD ReWritable? from Openslug then you need to also get the CDRDAO package.

For DVD recording the DVD+RW-Tools package is required. CDRtools? must also be installed for DVD recording to function.

  • Download the source from http://fy.chalmers.se/~appro/linux/DVD+RW/(approve sites)

Compile, Compile, Compile...

Now that you have the software you need to compile it. I won't describe how to setup the compile environment cause there's a good wiki on it. (You may need to install additional LIBs? over and above what the standard compile environment requires. My Openslug has soo much crap installed I can't be sure what the exact requirements are to compile the recording software!)

CDRTools?

If you installed the "cdrtools" package above, you can skip this part and move on to compiling CDRDAO.

Just doing 'make' will screw up. There isn't a RULE for the ARM that the Slug uses. This fixes that problem.

  • cd ./RULES
  • cdrtools-2.01/RULES$ cp armv4l-linux-cc.rul armv5teb-linux-cc.rul

Then compile.

  • make

(be patient! The compile takes a while. You can safely ignore any non-fatal errors)

And Install.

  • make install

The files will be installed in '/opt/schily/bin' I found this to be a silly place to put them so I just moved everything in '/opt/schily' to '/usr/local'

CDRDAO

The same thing applies here for the missing RULES as for CDRTools?. But this time the RULES have to be fixed in the 'scsilib' portion.

  • cd ./scsilib/RULES
  • cdrdao-1.2.1/scsilib/RULES$ cp armv4l-linux-cc.rul armv5teb-linux-cc.rul
  • cd ../../
  • make
  • make install

(be patient! The compile takes a while. You can safely ignore any non-fatal errors)

DVD+RW-Tools

Writing a DVD will take up alot of slug resources. I would recommend that you kill all unneccesary processes to keep the idle time as high as possible. Not doing so will give you alot of coasters for your dinner table

The default compile of 'growisofs' will not run on Openslug. This is because by default 'growisofs' will try to reserve 32MB for buffer. Since the Slug only has 32MB of RAM the process will fail.
To get around this you have to lower the buffer to 16MB. But let me tell you will other processes running it's still a tight squeeze. There is barely enough room. The result of lowering the buffer size available to 'growisofs' will ofcourse reduce your maximum burn speed. So don't think that you will be able to do 16x burns, more like the max will be 8x.


Actually, I've done some testing and 6x is the fastest I can record DVD's.


To build with a smaller buffer size.

  • make WARN=-DDEFAULT_BUF_SIZE_MB=16
  • make +rpl8
  • make install

If you're at this point then YEAH! pat yourself on the back, you can now record CD's and DVD's!


It's possible to change ring buffer size from command line.

  • growisofs ... -use-the-force-luke=bufsize:16M ...

Option -use-the-force-luke=bufsize is undocumented (may be chenged in future). Additionally: dvd+rw-tools-6.1/growisofs.c states that minimum size is 1 MB and that only powers of 2 are permitted (i.e. 2M, 4M, ...).


Known Problems

You will not be able to record files which are larger than 2GB. This is a 'mkisofs' limitation that probably won't be fixed any time soon.
If you need to save files larger that 2GB you could use UDF writing or record a raw data stream.

  • tar -czvf - /home/ | growisofs -Z /dev/sr0=/proc/self/fd/0

To read it back, access the CDROM directly with

  • tar tvzf /dev/sr0

Ofcourse, doing the above will only allow you to read the CDROM from a UNIX OS.

Sample commands

A good article to read on how to record CD/DVD's on Linux is

http://www.linux.com/article.pl?sid=04/11/16/1555246(approve sites)

Format a DVD+RW disc. (only needs to be done once!)

  • dvd+rw-format -blank /dev/sr0

Format a CD-RW disc.

  • cdrdao blank --device /dev/sr0

Record an ISO image to a DVD+-R

  • growisofs -dvd-compat -Z /dev/sr0=image.iso

If you have problems with the above on DVD-R's try this

  • growisofs -use-the-force-luke=dao -dvd-compat -Z /dev/sr0=image.iso

Record an ISO image to a CD-r

  • cdrecord -v dev=/dev/sr0 image.iso

Backup files/directories to a DVD-+RW

  • growisofs -dvd-compat -Z /dev/sr0 -J -R /path/to/disc/root
view · edit · print · history · Last edited by Robert Demski.
Based on work by mrkzander, Chris Burghart burghartucaredu, and just this guy.
Originally by mrkzander.
Page last modified on April 23, 2006, at 08:05 PM