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