Burning CD /DVD under Linux (especially for SuSE 7.x and 8.x)

Burning CD / DVD under Linux (especially for SuSE 7.x and 8.x)

linux-logo How to burn CD DVD 's under SuSE Linux 7.x and 8.0 & 8.1 ?

(Brennen von CD und DVD unter SuSE Linux - einfach gemacht. In englischer Sprache - wer diese Seite in Deutscher Sprache möchte, sollte sich auf dem WWW nach einem Uebersetzungsprogramm umsehen - es gibt mehrere davon)

Attention: In the following description you have to be aware, that for SuSE Linux 7.x the description is valid for xcdroast-0.98alpha9, while for the description for SuSE Linux 8.0 & 8.1 the description will be given for xcdroast-0.98alpha10, which is the newest version on SuSE 8.1 (in fact, Thomas Niederreiter has released already version X-CD-Roast 0.98alpha12 !). The newest version should also run on older SuSE Linux distributions, but my descriptions may not be valid for those.

People often report problems with the device files to me; so here is a short summary of how things should look like and how they can be changed:
(Here we assume, the CD-recorder is on master/secondary, meaning, the first device [master] on the second flat cable)

File /boot/grub/menu.lst
   kernel (hd0............root=.......  hdc=ide-scsi

File /etc/fstab
   /dev/cdrom    /media/cdrecorder   auto   ro,noauto,user,exec   0 0

ls -l /dev/sr0
   brw-------    1 root     root   11,  0 Mär 23  2002 sr0

If this file does not exist, enter:   mknod /dev/sr0 b 11 0

ls -l /dev/cdrecorder
   lrwxrwxrwx    1 root     root    3 2003-11-24 01:58 /dev/cdrecorder -> sr0

If this link does not exist, enter: ln -sf /dev/sr0 /dev/cdrecorder

File $HOME/Desktop/CD-RW   (or whatever your Icon-File is called):

   If these entries do not look like this, change them appropriately

This page is divided into seven sections: STEP1 describes the actions to take for the SCSI-emulation for the different versions of SuSE Linux 7.x and 8.0 & 8.1. STEP2 describes, what has to be done to install xcdroast using SuSE Linux 7.2, and 7.3 and 8.0 & 8.1. STEP3 explains how to set the permissions, if you want to run xcdroast as non-root-user and STEP4 describes how to initially set-up xcdroast as root. STEP5 describes the set-up by individual users, and STEP6 describes how users may use xcdroast. STEP7 describes how to burn DVD's.

STEP 1 (Emulating SCSI for IDE CD-Devices):

SuSe Linux 8.0 & 8.1

As root (su -) do the following: Enable SCSI-emulation for your CD-R and CD-RW devices. In my case, the CD-RW is on master/secondary, the DVD is on slave/secondary.

Boot loader LILO:

SCSI-emulation is done by appending info to the boot loader (here LILO):
In the file /etc/lilo.conf you will find an entry:
  append = " hdc=ide-scsi"
If you have a second cd- or dvd-device, add it, so it reads:
  append = " hdc=ide-scsi hdd=ide-scsi"
Then enter:

   shutdown -r 0
   (and the machine will reboot)

Boot loader GRUB:

SCSI-emulation is done by appending info to the boot loader (here GRUB):
In the file /boot/grub/menu.lst you will find an entry:
  kernel (hd0,2)/vmlinuz root=/dev/hda6 hdc=ide-scsi
If you have a second cd- or dvd-device, add it, so it reads:
  kernel (hd0,2)/vmlinuz root=/dev/hda6 hdc=ide-scsi hdd=ide-scsi
Then enter (attention! I think, with 'grub' the following steps are not really necessary, with the excpetion of the reboot! But this is the safe way...):

   grub-install /dev/hda      (if you want to install it on the 1st hard disk)
   shutdown -r now
   (and the machine will reboot)

Now check, whether things are ok and use 'hwinfo' for more information:
hwinfo --cdrom
You should now get something like:
  Driver: "ide-scsi"
  Device File: /dev/sr0
  Driver: "ide-scsi"
  Device File: /dev/sr1
Since the master/secondary is the CD-writer and the slave/secondary is the DVD-reader, we enter:
                                          ( !! Configuration in our office !!)
   ln -sf /dev/sr0 /dev/cdrecorder        ( ln -sf /dev/sr1 /dev/cdrecorder  )
   ln -sf /dev/sr0 /dev/cdrom             ( ln -sf /dev/sr1 /dev/cdrom       )
   ln -sf /dev/sr1 /dev/dvd               ( ln -sf /dev/sr0 /dev/dvd         )
                                          ( use the command above on our laptop)

SuSe Linux 7.3

There is an error in the description in the manual distributed for SuSE Linux 7.3 - at least in my German version of the manual 'Die Programme' (page 129). The so-called 'SCSI-Emulation' has not to be done as the manual describes, but as follows:

- Start YaST1
  - Administration of the System (System Administration)
  - Modify Configuration (Konfigurationsdatei veraendern)
  - scroll to "INITRD_MODULES"
  - here make sure, there is an entry as 'ide-scsi'; this is already the case,
    if you installed 7.3 from scratch, but if you have 'updated' to 7.3, this
    may not be here yet; then append to the line   ide-scsi

- Start YaST1
  - Administration of the System (System Administration)
  - Kernel- and Bootconfiguration (Kernel- und Bootkonfiguration)
  - Configure LILO (LILO konfigurieren)
  - Make sure, there are entries such as:  hdc=ide-scsi hdd=ide-scsi
    (assuming your CD-drives are on master and slave on the secondary bus)
    otherwise append the line by these entries

- su -

- Edit the file /etc/init.d/boot.local : if you have an entry
  /sbin/modprobe ide-scsi
  in this file, then this is from the SuSE Linux 7.2 version; delete this

- Make the necessary links:

  ln -sf /dev/sr0 /dev/cdrecorder
  ln -sf /dev/sr1 /dev/cdrom
  ln -sf /dev/sr1 /dev/dvd
  (the command above only if it *is* a DVD-reader)
  And: Here we assume, your CD-RW is on master/secondary, the DVD is on

- Make sure your file /etc/fstab has the following entries:

/dev/cdrecorder /media/cdrecorder auto    ro,noauto,user,exec 0 0
/dev/cdrom      /media/cdrom      auto    ro,noauto,user,exec 0 0
/dev/dvd        /media/dvd        auto    ro,noauto,user,exec 0 0
  (This was already the case in my 7.3 installation)

- Restart your system.

Note from 23May2002: I experienced problems when starting xcdroast, after the libimlib's were updated. Things work fine again, after I had re-installed the older versions of libimlib-gif.so and libimlib-png.so .
These two files from the original SuSE7.3 distribution are available here; please also read thge file README.

SuSe Linux 7.2

- login as root

- with YaST1 (Administration / Kernel- and Bootkonfiguration / Configure LILO) configure the kernel so that you add in the append-line
    hdc=ide-scsi hdd=ide-scsi
   (assuming your CD-drives are on master and slave on the secondary bus)

  - At the end of the file /etc/init.d/boot.local add the following line:
      /sbin/modprobe ide-scsi

      ln -sf /dev/scd0 /dev/cdrecorder
      ln -sf /dev/scd1 /dev/cdrom

- Make sure your file /etc/fstab has the following entries:

/dev/cdrecorder /media/cdrecorder       auto    ro,noauto,user,exec 0 0 
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
  (This was already the case in my 7.2 installation)

- Restart your system.

SuSe Linux 7.0 and 7.1

There is an error in the description in the manual distributed for SuSE Linux 7.0; see the following links:
http://sdb.suse.de/en/sdb/html/mkrapp-cdwriting-7.0.html English - SCSI-emulation for IDE-CD-devices
http://support.suse.de/de/sdb/html/mkrapp-cdwriting-7.0.html German - SCSI-Emulation von IDE-CD-Geraeten
http://sdb.suse.de/sdb/de/html/tbraza_ide_brenner.html German - Brennen von CDs mit IDE-Brennern
- login as root

- with YaST1 (Administration / Kernel- and Bootkonfiguration / Configure LILO) configure the kernel so that you add in the append-line
    hdc=ide-scsi hdd=ide-scsi
   (assuming your CD-drives are on master and slave on the secondary bus)

  - substitute in the file /etc/modules.conf the line with
      alias scsi_hostadapter off
      alias scsi_hostadapter ide-scsi
  - Now do not follow the manual; instead add at the end of the file /sbin/init.d/boot.local
      a line with
      /sbin/modprobe ide-scsi
- Enter the following commands (still as root):
      ln -sf /dev/scd0 /dev/cdrom
      ln -sf /dev/scd1 /dev/cdrom1

- Make sure your file /etc/fstab has the following entries:

/dev/cdrecorder /cdrecorder       auto    ro,noauto,user,exec 0 0 
/dev/cdrom /cdrom auto ro,noauto,user,exec 0 0

- Restart your system.

By doing so, I have emulated both an IDE CD-RW (master on secondary; hdc) as well as an IDE DVD-R (slave on secondary; hdd) as a SCSI device and this works fine.

STEP 2 (Install and Run X-CD-Roast):

SuSe Linux 8.1

With YaST2 install xcdroast and then do an online update with YaST2 / YOU; a new version of cdrecord may be downloaded.

SuSe Linux 8.0

With YaST2 install gdk-pixbuf from your SuSE DVD or the CDs (search for gdk -- double-click on gdk-pixbuf -- OK)
Now download the newest version for SuSE 8.0. Before doing that, I recommend to read the pages on http://www.xcdroast.org.

Go to http://xcdroast.sourceforge.net/RPMS/a10/ and click on suse-8.0/ - if this is the SuSE version you are running.
Read the comments carefully.
You will now have to onstall the library gdk-pixbuf; do this by starting YaST2 and install gdk-pixbuf from your SuSE DVD or the CDs (search for gdk -- double click on gdk-pixbuf -- OK).

Download the 5 RPMs:


and install them by entering the following commands:
   rpm -U cdrtools*SuSE80.i386.rpm
   rpm -U xcdroast*SuSE80.i386.rpm

The author Thomas Niederreiter writes on http://www.xcdroast.org/xcdr098/rpms-a10.html "Note: You may get an error "cannot remove /usr/lib/xcdroast-0.98 - directory not empty" while updating. Please ignore, all is fine."
I did not get this message, because I made a clean install of 8.0 - and I can recommend this to everybody ;-)

SuSe Linux 7.3

- Install xcdroast (it's part of the distribution CDs)

==> The next three steps are not necessary, if you update with YaST-Online Update (YOU)
==> They *were* necessary in Fall 2001, during the first weeks after the release
    of SuSE 7.3

- Update to the newest version: ftp://ftp.suse.com/pub/suse/i386/update/7.3/xap2/
  Point (e.g.) to xcdroast-0.98alpha9-42.i386.rpm and click to the right button
  of your mouse and choose 'save link as...'
- su -
  (root password)

- cd to the directory, where this rpm-file has been stored and enter:
  rpm -U xcdroast-0.98alpha9-42.i386.rpm

SuSe Linux 7.2

- Get the newest versions of the programs:

- Use your browser and select: http://www.xcdroast.org/xcdr098/rpms-a9.html#suse72

- Click on the five links for the binaries and download them (e.g.) in your
  local downloads-directory (e.g. /home/user/downloads)

- su -
  (root password)

- cd /home/user/downloads

- rpm -U cdrtools*.rpm xcdroast-0.98alpha9-1.i386.rpm
  (you will get some log-info and may get an error:
  "cannot remove /usr/lib/xcdroast-0.98 - directory not empty".
  Please ignore - all is fine. (That's what the author Thomas Niederreiter says)

STEP 3 (Setting Permissions):

For SuSE Linux 8.1 enter the following as root (changing links by actual files):

rm /usr/X11R6/lib/xcdroast-0.98/bin/cdrecord
cp -p /usr/bin/cdrecord /usr/X11R6/lib/xcdroast-0.98/bin/.
rm /usr/X11R6/lib/xcdroast-0.98/bin/mkisofs
cp -p /usr/bin/mkisofs /usr/X11R6/lib/xcdroast-0.98/bin/.
rm /usr/X11R6/lib/xcdroast-0.98/bin/readcd
cp -p /usr/bin/readcd /usr/X11R6/lib/xcdroast-0.98/bin/.
rm /usr/X11R6/lib/xcdroast-0.98/bin/cdda2wav
cp -p /usr/bin/cdda2wav /usr/X11R6/lib/xcdroast-0.98/bin/.

For SuSE Linux 8.0 nothing has to be done here - skip STEP3!

For SuSE LInux 7.x do the following:

- Read the file   /usr/share/doc/packages/xcdroast/README.nonroot
  if you want to run xcdroast as non-root (recommended)
- The following is a short list, what has to be done to use xcdroast as
  a non-root user:

- login as root:
  su -
  (root password)

  groupadd cdwrite
  cd /usr/bin
  chown root:cdwrite cdrecord cdda2wav mkisofs readcd
  chmod 4710 cdrecord cdda2wav mkisofs readcd
  cd /usr/X11R6/lib/xcdroast-0.98/bin
  chown root:cdwrite xcdrwrap
  chmod 2755 xcdrwrap

STEP 4 (Initial setup of xcdroast by root):

SuSE Linux 8.0 & 8.1

Now configure xcdroast as root first. I recommend, that this time you do not become root using su - , but enter the following:
sux - (then enter the root password)
By doing this, your DISPLAY is set correctly automatically.

Now enter the following:

Click on:
   Activate Non-Root-Mode
   Launch X-CD-Roast
   - Device-Scan: Check, if hardware is detected correctly
   - CD Settings:
       * Preset the default writer speed (to e.g. 16x)
         (However, this is only necessary, if the user cannot change this
         value; otherwise users will get the default 1x and will have to
         change it anyway)
       * If you have another device besides the CD-RW, select
         the other as Primary Read Device
   - HD Settings: enter e.g. /images in the Path field and click on Add
   - Micellaneous: Set 'DSP-Device' to /dev/dsp
     (make use of the 'Test' button to verify your selection)
   - Options: Usually nothing to change
   - Users: Here, I activated (by a click) the 'change write parameters' and
     the 'change reade parameters', so users have their choice
  Click on: Save configuration on the left
  Ok (on the left side)
  Exit (on the left side)

SuSE Linux 7.x

- If you don't do the following, users other than root will get an error message
  when starting xcdroast.
- Still as root: start xcdroast for the first time - you may first have
  to set the DISPLAY variable by entering:   export DISPLAY=hostname:0.0
  and you may also first have to allow access to the X-server by entering:
  xhost +hostname from a non-root-window (!)
  (in both cases, use your actual hostname as 'hostname';
  the command hostname gives you this name).
  By the way: You do not have to do the things describes in the few lines above,
  if you have set the DISPLAY for root as described on our
  small tricks web-page.

  --> Ok, now enter: xcdroast

- Ok
- Setup
- CD Settings - Secondary Read Device : Choose your other device, if you have one
- Hard Disk Settings : Create a Directory /images from a terminal window as root
  and set the permissions:
     su -
     cd /
     mkdir images
     chmod a+rwx /images

  and then add this directory (/images) in the Path field - click on 'Add'
- Miscellaneous: click 'at events' on 'on completion' if you like
- Options: Click on 'Windows style list selections' if you like
- Users: Click on 'change write paramters' and 'change read parameters' - if
  it's ok by you
- Save configuration - ok
- Ok
- Exit - Yes

This was everything you have to do as 'root' - now every user can run xcdroast:

STEP 5 (Setup of xcdroast by individual users):

(all Linux 7.x and 8.0 & 8.1 versions)

- xcdroast

- Ok
- Setup (do this at your first time you use xcdroast)
- CD Settings: enter the burn-speed for your CD-writer (eg. 16x)

- on the left: save configuration - Ok
- on the left: Ok
- Now you may use any of the two options in the main menu:
  * Duplicate CD
  * Create CD

STEP 6 (Using xcdroast to burn CD's):

(The following description is valid for SuSE Linux 7.3 - I will soon check, whether this description is also valid for the xcdroast version 0.98alpha10 !).

The information below is specifically for the newest version of xcdroast, run under SuSE Linux 7.3 - for older versions of xcdroast, things are not quite the same, but similar.


- Duplicate a CD (CD Duplizieren)
- CD/Image Information (already 'clicked' automatically)
  * Select Read-Device if necessary
- Write CD (CD schreiben)
  * Adjust 'speeds' on upper side right (Geschwindigkeiten rechts oben waehlen)
  * Select CD-R/RW Type (74 min, 80 min, etc.)
  * Write CD (CD schreiben) - Ok
  * When CD is burned: Ok
  * Back to Main Menu (Zurueck zum Hauptmenu)
  * Finish - Yes (Beenden - Ja)

  Burn speeds measured: between 48 and 53 sec per 100 MB
              which is: between 125 and 113 MB per minute
              on CD-R CD's (for 16x)
              (see my local configuration at the bottom of this page)


- Create CD ('CD erstellen')
  * Master tracks (Tracks mastern)
  * On the right window select the directory you want to write on CD
  * Click on 'Add' ('Hinzufuegen')
  * On the new window click on 'ok' if you like the default, which means that
    the complete path will be used on the CD
  * Add other directories if you wish...
  * Exclude directories/files similarly, but after selecting them, click
    on 'Exclude' ('Ausschliessen')
  * Click on 'ISO9660-Options'
  * Choose Image-Type: 'Rock Ridge + Joliet'
    The default values, which are activated, are for anonymous data backup;
    activated are:
    - Rock Ridge (Anonymisiert)
    - Allow 30-characters ISO-Filenames (Erlaube 30-Zeichen ISO-Dateinamen)
    - Allow deep directory trees (Erlaube tiefe Verzeichnisbaeume)
    - Joliet-Extensions (Joliet-Erweiterungen fuer Windows)
    - ISO-Files may begin with dot (ISO-Dateien duerfen mit Punkt beginnen)
    For my own backups, I do the following:
    - Click on 'Rock Ridge (Anonymisiert)' in order to deactivate this switch
    - Click on 'Rock Ridge (Datensicherung)' for a backup (activate this switch)
  * Click on the large bar at the bottom: 'Augenblickliche Werte ... sichern'
  * ok
  * Click on 'Create Session/Image' ('Session/Image erzeugen')
  * Select on the right side the length of your empty CD (Default: 74 min)
  * Click on the upper left side on 'Groesse berechnen' - ok
    --> if the size is too big for your empty CD, you have to exclude files...
  * Put an empty CD onto the CD-Writer
  * Click on 'Mastern und on-the-fly schreiben' 
    - it may occur, that there is a warning message, that possibly there is not
      enough space on your empty CD. If you are sure there is enough space,
      click on 'Trotzdem fortfahren'
  * ok
  * When CD is burned: Ok
  * Click on the left on 'Back to the main menu' (Zurueck zum Hauptmenu)
  * Click on 'End' (Beenden)
  * 'yes'

  Burn speed measured: 88 sec per 100 MB
             which is: 68 MB per minute
             on a CD-RW (for 10x)
              (see my local configuration at the bottom of this page)


- Create CD ('CD erstellen')
  * Read tracks (tracks lesen)
  * Make sure, read-device is correct
  * On 'Image-Directory' (Image-Verzeichnis) select '/images' (Important!!)
  * Select track's in the left window (for selection of more than one track
    use cntl-Click)
  * NOTE: On my Plextor I have to turn off the 'Indexscan' under READ-Options;
    if this is activated, I have to kill xcdroast because it never ends....
    AND: the Plextor device then seems to be blocked. As a workaround I found
    the following solution: - insert a data CD, mount it and list its contents
    - then unmount it. After this, things work fine again.
    (using the Matshita DVD/CD reader, things work fine)
  * on the lower right click on 'read selected tracks' (Ausgewaehlte Tracks einlesen)
  * when reading is finished: Ok
  * in another window: cd /images   and give the audio-file the proper name, e.g.:
    mv track-07.wav The_Band-It\'s_All_Over_\(live\).wav
    --> Note, that special characters have to be preceeded by a masking \ !
  * change the audio CD
    - and click on the left on 'CD/Image Information' and again to 'Read Tracks'
     in order to refresh the list of tracks...
      and continue as described above
  * to finish work: Back to main menu - end - yes

- Create CD ('CD erstellen')
  * ..... to be continued.....

STEP 7 (How to burn a DVD with xcdroast and cdrecord):

0.  Burning DVDs works with xcdroast-0.98alpha10-50
1.  You must have SCSCI-emulation and xcdroast installed on your PC
    (see:  http://www.seismo.ethz.ch/linux/xcdroast.html
2.  Read /usr/share/doc/packages/xcdroast/README.ProDVD
3.  Read ftp://ftp.berlios.de/pub/cdrecord/ProDVD/README
4.  Read http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
5.  Download the cdrecord-ProDVD for your system from:
    (I took the cdrecord-prodvd-1.11a21-i586-pc-linux-gnu version for my
    SuSE Linux 8.1 on a PC)
6.  Make a copy of the original 'cdrecord':
    cd /usr/bin
    cp -p cdrecord cdrecord_orig
7.  Rename the downloaded binary to 'cdrecord'. Example:
    cp cdrecord-prodvd-1.11a21-i586-pc-linux-gnu /usr/bin/cdrecord
8.  Set the permissions of the new cdrecord to: -rws--x---
    The 's' in the permissions above means, the sticky-bit is set and the
    user may execute the program (chmod u+sx cdrecord).
9.  In your home-directory, add the following three lines to the file .bashrc :
    # for xcdroast and burning DVDs:
    export CDR_SECURITY
10. Now you best login again to your system...
11. When running xcdroast, select the DVD-writer as the writing-device in
    the configuration menu.
12. Note, that since you now may burn larger data sets, it may take a while
    until the size of the image is calculated. In addition, don't worry about
    the selected size of the CD-R/RW; as long as your data volume is smaller
    than the 4.7 GB on your empty DVD, things will work fine (so also
    neglect the warning message, that will appear on your screen that possibly
    there would not be enough space on your CD-R - hey: you have now a DVD!)
13. To write 3.7 GB to a DVD-RW on my DVD-writer took about 50 minutes (it's a
    Toshiba SD-R5002; so not the fastest device...) - and to write about 4.4 GB
    (a SuSE 8.1 Pro installation DVD) on a DVD-RW took about one hour.

Useful links:

http://www.xcdroast.org/xcdr098/rpms-a9.html About xcdroast
http://www.xcdroast.org About xcdroast

My Configuration:
- Compaq Presario 5471 with Intel Celeron 500 Mhz
- CD-RW Plextor PX-W1610A (burning CD-R's 16x, CD-RW's 10x)
- CD-R (actually a DVD-ROM): Matshita SR-8586
... and since December 2002 a newer machine, including a DVD-burner...

Last Update: 27Nov2003 / uk Created: 06Jan2001