Carlos Konstanski on 14 Feb 2005 05:19:00 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] kernel 2.6 and cdrecord


The actual command line you used to run cdrecord would have been helpful.
It would have given information about the device designation you used.

The 2.6 kernel prefers using the ATAPI interface over the SCSI interface
for cdrom access.  You do have the right module loaded - ide_cd.
Unfortunately, you also have the wrong module loaded - ide_scsi.  Remove
it with "rmmod ide_scsi".  Better yet, get it out of your bootup
sequence by editing /etc/modules.  If you have both modules loaded, you
are not going to have an easy time getting cdrecord to work.

By the way, that's a healthy list of kernel modules.  Might want to
spend a weekend building a trimmer kernel.  All that stuff is eating up
RAM.  The lspci command will help you immensely in choosing just the
right kernel options.  Build your own kernel; don't use the Debian ones.
They don't know what hardware your machine has.

Here's a list of my modules on a homemade machine with a VIA chipset and
an Athlon cpu:

     Module                  Size  Used by
     usblp                  12928  0
     nvidia               3469916  22
     sg                     38240  0
     sr_mod                 17380  0
     vmnet                  29872  12
     vmmon                  48408  0
     lp                     11304  2
     sd_mod                 16464  0
     pcspkr                  3368  0
     evdev                   9472  0
     via82cxxx_audio        28872  1
     ac97_codec             18508  1 via82cxxx_audio
     via_rhine              21700  0
     mii                     4864  1 via_rhine
     natsemi                26848  0
     parport_pc             37572  1
     parport                36232  2 lp,parport_pc
     usb_storage            69248  0
     scsi_mod              127808  4 sg,sr_mod,sd_mod,usb_storage
     ohci1394               34628  0
     ohci_hcd               34632  0
     uhci_hcd               33740  0
     video                  16004  0
     ide_cd                 42052  0

I get these modules to load with an /etc/modules file that looks like:

     ide_cd
     video
     uhci_hcd
     ohci_hcd
     ohci1394
     usb_storage
     parport
     parport_pc
     natsemi
     mii
     via_rhine
     ac97_codec
     via82cxxx_audio

Notice that this list is much shorter than the one produced by the lsmod
command.  Modules will take care of their own dependencies.  Just load
the "big daddy" module, and don't worry about its dependencies.  nvidia,
vmnet and vmmon are loaded by other processes on this machine.

I see that you have your ext3 suport compiled as a kernel module.  I
would heavily advise compiling it into the bzImage itself.  You want
your kernel to be able to do essential things like reading the hard
drive without requiring modules.  This way, you can boot without an
initrd image, and you're not dependent upon shell scripts to get your
read/write access going.

Now that you are loading the ide_cd module only, use this cdrecord
command to see where it thinks your ATAPI cdrom device is:

     cdrecord dev=ATAPI -scanbus

If it finds your cdrom, you are looking good.  It will still report its
SCSI address, though:

     cdrecord: Warning: Running on Linux-2.6.10
     cdrecord: There are unsettled issues with Linux-2.5 and newer.
     cdrecord: If you have unexpected problems, please try Linux-2.4 or
     Solaris.
     scsidev: 'ATAPI'
     devname: 'ATAPI'
     scsibus: -2 target: -2 lun: -2
     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.
     Using libscg version 'schily-0.8'.
     scsibus0:
             0,0,0     0) 'SAMSUNG ' 'CD-ROM SH-152A  ' 'C500' Removable CD-ROM
             0,1,0     1) '        ' 'COMBO-52X16C    ' '1.83' 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) *

Forget the warnings.  They're just the ventings of a developer.

What you want to do when actually burning a cd is to designate your
device as IDE, like /dev/hdc or whatever yours is.  Use the eject
command to figure out where your cdrom is on the ide bus:

     eject /dev/cdrom

         OR

     eject /dev/hdb
     eject /dev/hdc
     eject /dev/hdd

Whichever one of these that works is good enough.  /dev/cdrom is a
symlink to the real device:

     lrwxrwxrwx  1 root root 3 Jan 26 21:43 cdrom -> hdb

With /dev/hdb as my cdrom device, my cdrecord command would look like:

     cdrecord -v -eject dev=/dev/hdb speed=16 <filename>.iso

If your cdrom is not a piece of crap like mine, this will work.  I paid
$30 for a DVD reader/CD burner.  You get what you pay for,  I have a
Lite-On cd burner at work which is not a piece of crap.  I brought it
home and it worked like a champ with the ATAPI interface.  If your
burner does not work, huck it and get a Plextor or Lite-On.  That's
what I'm going to do.  My burner is the only one on which I've seen
failure, and I've tried 3 myself and I know others who had success too.
Your odds are good.

I am actually burning CDs right now.  Since I do not have a single CD
burner in the house that is 100% non-crappy, I am resorting to drastic
measures: reading the .wav files on my laptop, rsyncing the files to a
Gateway that has a crappy burner (it burns, but doesn't read with
libparanoia), and burning the CD there.  If you are a true linux
devotee, you will do this gladly, and sneer at Mac users whose hardware
"just works".

For a little script that burns CDs, check this out:

     #!/bin/bash

     rip()
     {
         rm -f *
         cdda2wav -paranoia dev=/dev/cdrom -vall cddb=1 -B -Owav
     }

     wait()
     {
         eject /dev/cdrom
         echo Place the blank CD in the drive and wait 30 seconds.
         echo
         sleep 25
         echo 5 seconds left...
         echo
         sleep 5
     }

     burn()
     {
         cdrecord -eject -v dev=/dev/cdrom speed=8 -useinfo -text *.wav
     }

     cd /var/tmp/xcdroast

     case "$1" in
         "rip")
             rip
             ;;
         "burn")
             burn
             ;;
         "all")
             rip
             wait
             burn
             ;;
     esac

     echo "Done!"
     exit 0

This script uses the same drive for reading and writing.  If you have 2
drives, you can eliminate the wait() function, and you won't have to
switch disks.

Every machine in the house is running a 2.6.10 kernel, by the way.

Carlos Konstanski

On Sat, 12 Feb 2005, Jeff Abrahamson wrote:

> Date: Sat, 12 Feb 2005 23:32:20 -0500
> From: Jeff Abrahamson <jeff@purple.com>
> Reply-To: Philadelphia Linux User's Group Discussion List
>     <plug@lists.phillylinux.org>
> To: PLUG <plug@lists.phillylinux.org>
> Subject: [PLUG] kernel 2.6 and cdrecord
> 
> I upgraded to kernel 2.6 (debian sarge, kernel 2.6.8-2) and cdrecord
> now warns me of all manner of problems.
>
> I did the things suggested in
> /usr/share/doc/cdrecord/README.ATAPI.setup but cdrecord still isn't
> happy.  Trying to burn a cdrom, I get the following:
>
>    cdrecord: Warning: Running on Linux-2.6.8-2-686
>    cdrecord: There are unsettled issues with Linux-2.5 and newer.
>    cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
>    cdrecord: Warning: Linux-2.6.8 introduced incompatible interface changes.
>    cdrecord: Warning: SCSI transport does no longer work for suid root programs.
>    cdrecord: Warning: if cdrecord fails, try to run it from a root account.
>    TOC Type: 1 = CD-ROM
>    scsidev: 'ATA:1,5,0'
>    devname: 'ATA'
>    scsibus: 1 target: 5 lun: 0
>    Warning: Using badly designed ATAPI via /dev/hd* interface.
>    cdrecord: No such file or directory. Cannot open '/dev/hd*'. Cannot open SCSI driver.
>    cdrecord: For possible targets try 'cdrecord -scanbus'.
>    cdrecord: For possible transport specifiers try 'cdrecord dev=help'.
>    cdrecord:
>    cdrecord: For more information, install the cdrtools-doc
>    cdrecord: package and read /usr/share/doc/cdrecord/README.ATAPI.setup .
>
> Any suggestions?  I haven't found much relevant on google except that
> others have similar problems...
>
>
> Some further information, in case it suggests something:
>
> I try scanning the bus for devices:
>
>    asterix:/tmp/jup# cdrecord -scanbus
>    Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
>    NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
> 	  and thus may have bugs that are not present in the original version.
> 	  Please send bug reports and support requests to <cdrtools@packages.debian.org>.
> 	  The original author should not be bothered with problems of this version.
>
>    cdrecord: Warning: Running on Linux-2.6.8-2-686
>    cdrecord: There are unsettled issues with Linux-2.5 and newer.
>    cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
>    cdrecord: Warning: Linux-2.6.8 introduced incompatible interface changes.
>    cdrecord: Warning: SCSI transport does no longer work for suid root programs.
>    cdrecord: Warning: if cdrecord fails, try to run it from a root account.
>    cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot open SCSI driver.
>    cdrecord: For possible targets try 'cdrecord -scanbus'.
>    cdrecord: For possible transport specifiers try 'cdrecord dev=help'.
>    cdrecord:
>    cdrecord: For more information, install the cdrtools-doc
>    cdrecord: package and read /usr/share/doc/cdrecord/README.ATAPI.setup .
>    asterix:/tmp/jup#
>
> In case anyone sees anything amiss, here's my module list:
>
>    Module                  Size  Used by
>    ide_cd                 42656  0
>    isofs                  37240  0
>    loop                   16424  0
>    nls_iso8859_1           4032  0
>    nls_cp437               5696  0
>    vfat                   14656  0
>    fat                    46784  1 vfat
>    nfs                   193984  4
>    lockd                  63944  2 nfs
>    sunrpc                153156  7 nfs,lockd
>    af_packet              22568  2
>    ipv6                  264644  22
>    shpchp                101900  0
>    pciehp                 99020  0
>    pci_hotplug            34640  2 shpchp,pciehp
>    intel_agp              22816  1
>    analog                 11968  0
>    parport_pc             36900  0
>    parport                41800  1 parport_pc
>    pcspkr                  3592  0
>    rtc                    12760  0
>    agpgart                34664  1 intel_agp
>    e100                   32608  0
>    snd_ens1371            24932  1
>    snd_rawmidi            25124  1 snd_ens1371
>    snd_seq_device          8200  1 snd_rawmidi
>    snd_pcm_oss            55080  0
>    snd_mixer_oss          20096  2 snd_pcm_oss
>    snd_pcm                98728  2 snd_ens1371,snd_pcm_oss
>    snd_page_alloc         11752  1 snd_pcm
>    snd_timer              25668  1 snd_pcm
>    snd_ac97_codec         69988  1 snd_ens1371
>    snd                    57156  8 snd_ens1371,snd_rawmidi,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_ac97_codec
>    soundcore              10336  2 snd
>    gameport                4704  2 analog,snd_ens1371
>    dm_mod                 59804  0
>    capability              4520  0
>    commoncap               7232  1 capability
>    tsdev                   7392  0
>    evdev                   9600  0
>    mousedev               10476  1
>    sr_mod                 17316  0
>    cdrom                  40732  2 ide_cd,sr_mod
>    psmouse                20360  0
>    ide_scsi               17412  0
>    uhci_hcd               33136  0
>    ohci_hcd               21764  0
>    ehci_hcd               32004  0
>    sd_mod                 21728  0
>    usb_storage            69056  0
>    hpusbscsi               7808  0
>    scsi_mod              125228  5 sr_mod,ide_scsi,sd_mod,usb_storage,hpusbscsi
>    usbcore               119012  7 uhci_hcd,ohci_hcd,ehci_hcd,usb_storage,hpusbscsi
>    eepro100               30700  0
>    mii                     5120  2 e100,eepro100
>    ext3                  127240  2
>    jbd                    62616  1 ext3
>    mbcache                 9348  1 ext3
>    ide_generic             1408  0
>    piix                   13440  1
>    ide_disk               19296  5
>    ide_core              139940  6 ide_cd,ide_scsi,usb_storage,ide_generic,piix,ide_disk
>    unix                   28756  492
>    font                    8320  0
>    vesafb                  6656  0
>    cfbcopyarea             3872  1 vesafb
>    cfbimgblt               3040  1 vesafb
>    cfbfillrect             3776  1 vesafb
>
>
> -- 
> Jeff
>
> Jeff Abrahamson  <http://www.purple.com/jeff/>    +1 215/837-2287
> GPG fingerprint: 1A1A BA95 D082 A558 A276  63C6 16BF 8C4C 0D1D AE4B
>
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug