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

Re: cdrecord-2.01.01a21 refuses work on Linux 2.4 if non-ide-scsi DVD-ROM is present



Hi,

> I don't care about libburn, it is so broken that it does not even complete
> it's "configure" run:
> checking for a BSD-compatible install... /opt/sfw/bin/ginstall -c
> ./configure: line 19396: syntax error near unexpected token `in'
> ./configure: line 19396: `for ac_header in'

That looks much like an icculus.org/burn libburn-0.2 tarball
or CVS version prior to about march 2006. (Newer bash versions
accept an empty "for" list. I noticed that problem only on
a SuSE 7.2 system. Meanwhile our ./configure is fat but legal.) 

The stable current version is available as
  http://libburn-download.pykix.org/releases/libburn-0.2.6.1.tar.gz
resp. with identical code base as
  http://scdbackup.sourceforge.net/cdrskin-0.2.6.pl01.tar.gz

It seems to compile on all the contemporary Linux distros.
I would appreciate any bug reports.


> > So - if you want advise - disable that new auto-scan feature
> > unless an explicit drive address is missing.
> As this is not doable before you did scan, it would need toi
> stay similar to how it is.

But you do know wether there is a dev= option before you
start with the bus scan, don't you ? In that case it seems
wise to me to omit that total scan and to only touch the desired
drive(s). (I mean, i learned this from *you*. It is much better
a strategy than the one of old libburn. You should not give
up anything of the stability of cdrecord by scanning without
need.)

A few months ago i had an ill DVD-ROM which stalled libburn's
bus scan as long as DMA was on. In that state it also stalled 
cdrecord dev=ATA -scanbus on a Linux 2.6 kernel.
Ill hardware, no doubt. Nevertheless it made all healthy drives
unusable - for libburn. cdrecord without dev=ATA had no problem.
I made libburn have no problems with that too.


> #ifdef  USER_HZ 
>        tmo *= USER_HZ; 
>        if (tmo) 
>                tmo += USER_HZ/2; 
>#else 
>        tmo *= HZ; 
>        if (tmo) 
>                tmo += HZ/2; 
>#endif 

The compiler still complains about HZ.
I guess the file necessary for USER_HZ is not included.

I flatly inserted the usual header files from some of my
own programs into libscg/scsi-linux-sg.c , but no USER_HZ
did show up.

fgrep finds asm/param.h only in files which are as obscure:
/usr/include/linux/jiffies.h:#include <asm/param.h>  /* for HZ */
/usr/include/linux/param.h:#include <asm/param.h>
/usr/include/linux/sched.h:#include <asm/param.h>    /* for HZ */
/usr/include/linux/time.h:#include <asm/param.h>
/usr/include/linux/timex.h:#include <asm/param.h>

For me it would be easier to just copy the line
  #define USER_HZ       100
into libscg/scsi-linux-sg.c .


> > The drive /dev/hgd did never interact with cdrecord.
> Then this 
> #if LINUX_VERSION_CODE <= 0x020600 
>         if (use_ata) 
> #endif 
>         for (i = 0; i <= 25; i++) { 
>                 js_snprintf(devname, sizeof (devname), "/dev/hd%c", i+'a'); 
> should work....

After make clean ; make : Yes.
(No new cdrecord binary emerges without make clean)

My two burners are reachable again.
The DVD-ROM at /dev/hdg shows the same error
messages as with any cdrecord-2.01.01 version.


from libscg/scsi-linux-sg.c :
>                                     The CD/DVD writer case may
> * look silly but there may be users that did boot from a SCSI hdd
> * and connected 4 CD/DVD writers to both IDE cables in the PC.

It is not silly at all with modern mainboards which
often have the hard disk at SATA. With those boards
ATA:0,0,0 is quite a natural address for the only
CD/DVD drive.
(That confused me at first when i tried to find out
how you are deriving the ATA:Bus,Target,Lun addresses.
Google is full of "ATA:0,0,0" examples.
My emerging theory said "/dev/hda" and my experience said
"nonsense". Then a workmate bought a new computer and
really ATA:0,0,0 is /dev/hda.)


Have a nice day :)

Thomas



Reply to: