Re: Brasero and CD-Rs



On Sat, 2008-02-02 at 18:14 +0100, Philippe Rouquier wrote:
> 
> Le lundi 28 janvier 2008 à 02:06 -0500, Joe Marcus Clarke a écrit : 
> > I have been working on porting the Brasero medium code to use FreeBSD's
> > CAM as opposed to Linux's SG SCSI interface, and I have completed
> > porting of all methods in burn-medium.c.  However, users are reporting
> > an interesting problem.  They are getting insufficient space errors
> > trying to burn files onto a blank CD-R.  I went over the burn-medium.c
> > code, and it appears that regardless of SCSI backend, the code does not
> > support CD-Rs (only CD-RW and up).  Is this correct, or have I missed
> > something.
> > 
> > A full brasero debug output can be found at
> > http://people.freebsd.org/~mezz/brasero.txt .  I feel I'm close to a
> > working port, but there are some issues that still need to be worked
> > out.  Thanks.
> > 
> > Joe
> > 
> > _______________________________________________
> > Brasero-list mailing list
> > Brasero-list gnome org
> > http://mail.gnome.org/mailman/listinfo/brasero-list
> Hi Joe, thanks for doing this work and sorry for the delay. 
> To answer your question yes, -R media (DVD+-/CD) are supposed to work with burn-medium.c current version (I'm speaking about 0.7.0 & 0.7.1) and linux as it can be found in SVN trunk/stable.
> I read your log; it's strange since it seems to give up quite early on getting the medium profile without any error. I have a question btw, given your debug text you seem to use an old version of burn-medium.c, is that so?
> Last comment, in your first mail you said you ported all code from burn-medium.c to CAM interface. I don't understand it here since in this file there is nothing linux specific (at least in theory). When I wrote all SCSI code (theoretically) I tried to separate all code as much as I could so that to support a new OS one would just have to write a file that forwards the SCSI commands through the OS kernel SCSI interface (CAM in your case if I understand it well). For linux, the files responsible for dealing with linux SCSI interface are the scsi-sg.h/c files; those are the only files that should be linux specific (maybe scsi-command.h as well). All the rest of the SCSI files are just for SCSI functions and they should work whatever the OS as they are standardized.
> So to make it short (sorry if I was tedious or if I told you something you already knew), what were the changes you made to burn-medium.c?

[Resending private reply]

I pretty much had to rewrite all of the internal bits of each
burn-medium.c method since you assumed that all SCSI backends would use
an fd and a code argument.  This is not true for CAM.  I had to pass
around a struct to each method.  I would have liked not to have to touch
burn-medium.c at all, but that was not the case.

Therefore, all the methods have the same name, but they take different
arguments, and call to different functional backends.  I now have a
burn-medium-cam.c and a burn-medium-scsi.c in my tree.

All that said, I can't see from the code where -R media is handled.  The
size appears like it should always be 0 since you only record the number
of blocks if the media is erasable.  I'm certainly willing to admit
there are bugs in my code, but I would love to know the path things
should take when the medium is CD-R.

[new stuff]

My diff for the FreeBSD port (which includes all the C patches) is at
http://www.marcuscom.com/downloads/brasero.diff .  The code is ugly in
that I use a lot of raw offsets from the MMC spec.  I plan to clean this
up once I have it working.

Joe

-- 
Joe Marcus Clarke
FreeBSD GNOME Team      ::      gnome FreeBSD org
FreeNode / #freebsd-gnome
http://www.FreeBSD.org/gnome

Attachment: signature.asc
Description: This is a digitally signed message part



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