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

Adventures with xcdroast on Linux/Alpha



I tried recently xcdroast-0.96d-beta4; still the latest one I believe
on Linux machine running "patched up" Red Hat 5.0 distribution.
It requires tcl/tk 8.0p2 but luckily this is no longer a problem.
In summary - it works, but...

Here is one show stopper.  With this distribution are included
sources for cdrecord-1.6a11.  Patches for cdrecord, posted earlier
in this group by Martin Ostermann, are incorrect accordingly to
the cdrecord author.  Indeed, he is likely right.  In some situations
functions fillbytes() and movebytes() are called with negative counts,
on purpose or by a mistake, and replacing these functions with
memset() and memmove() is then not a very good idea (converted into
unsigned long values these counts are becoming pretty big :-).
On the other hand some macros from a generated header "align.h"
are applied to addresses which are casted, inside these macros, to
'int's.  Ouch!  Bombs caused by that are most interesting if not
entirely unfamiliar.  Patch included below.

The other problem is that cdrecord does not want to run on Alpha with
a default fifo size of 4 Megs.  I did not have a time to track down
what is a reall culprit but a call to shmget returns complaining
about an invalid argument.  Could be a library bug.  I do not know
at this moment nor have means, temporary - I think, to check it out.
Dropping this size to somewat smaller value 4000k works.  Unfortunately
xcdroast does not have means to set this.  Not all is lost.  This value,
and several others, can be passed to cdrecord via environment variables.
In order not to type that every time I want to start xcdroast
I replaced it with the following shell script:

#!/bin/sh
#
# A minor hack which seem to be required by cdrecord-1.6 on Alpha
# A default 4m value for CDR_FIFOSIZE causes errors in shmget;
# somewhat lower 4000k works fine at the moment
#
CDR_FIFOSIZE=4000k ; export CDR_FIFOSIZE
exec xcdroast.bin

where 'xcdroast.bin' is, obviously enough, a renamed original xcdroast
executable.  Works very well.

With these two changes I mastered and wrote, using xcdroast interface,
so far five different CDs without spoiling yet a single one. I did not
try yet "a file system direct to CD" option in cdrecord.  All writes
were from pre-mastered images.

  Happy roasting,
  Michal

begin 644 cdrecord.align.fix.gz
M'XL("%DP%#4"`V-D9@"-D-%*PS`4AJ_3ISA,D!RR;$MT<ZT,NAM%M-[,2V&D
M;38+-96F`T'QV<VZ*5MM<2$0SB'??[Z$<PY)6NJD*%,N!A,EQ##/XJ'*L[59
M5MI6@^2+1(6!&QV#F+@=2!E<CD'X_M1CC/V+DZ>7#42J=`3(43#V`R%V=!@"
MEQ=7_2FPW1&&'KR5F:E>56(I>O"QKU>T]VQZ>.WQG_(LU:O,:/)>C](I57VP
M2`AUR]U`JA#AW+5@-H,18!<N#_BXCJ!'$9^P+V)L"V2G^&R,K7N0%V;=8<9.
M-6L)VSHVVNVVC<^$YDS[.]*9'[YD_G!W^[A<1//%/7:Q1[Y;OO&`OQG?KB@1
%"7T"````
`
end



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