Re: cd burning: kernel / userspace?

From: Alan Jenkins
Date: Wed Aug 11 2004 - 16:07:30 EST



Some good awkward questions there :).


Yup =)



I agree that cdrwcontrol/dd seems silly. I think you would still want to use a commandline tool like cdrecord.



I dunno, with all the talk about the dev=x,y,z stuff. I'm kinda used to it,
but why the hell should I have to -scanbus everytime I decide to use a usb
cdrw/dvdrw? Even using /dev, it's still interesting since I don't use udev
right now. The way that 2.6 does things is rather nice. I wish I could do
that on 2.4 with my usb hard drive.

back to the point. A cdrwcontrol/dd script wouldn't be so bad. I know how
they hate things to be in the kernel, but somethings just don't work well in
user space


A script would be cool, but dd doesn't do the memory locking and real time priority stuff. I don't know how important this is - how old your hardware would have to be for you to get "coasters" (buffer underun) without it.

I need to get to know the technical details better - I understand the instances you listed from the users point of view, but not from the point of view of what gets written to the disk and how.



I had ideas about that... If you're burning one session, it would be easy
to have the driver prepare the disk, count the amount of data and once the
device is closed, it can do the fixate. Userspace is freed up at this point
and it can optionally eject the disk. Just depending on the options
presented.

It would get a bit cumbersom to do data/audio (or just audio) if you don't
do dao. Maybe it would be better to have a cdrwtool that once it sets up
the ioctls, it can read a stream (stdin or a file) and basically be
cdrecord. However, it won't have to drive the cdrw.



Theres an option in cdrecord to fixate an arbitrary disk (one without a TOC for whatever reason), and one not to fixate the disk you're writing, so it looks like fixation could and should be done on demand using an ioctl. You'd also need ioctls to deal with multiple sessions.

I think most people would want a cdrwtool that basically pretends to be cdrecord (in some ways ;), because thats the most intuitive way to do it - even if you can do everything you want to with cdrwtool for the ioctls and dd for the data.

I've definitely underestimated the problems with my idea, and I can't see any tangible benefits which couldn't be obtained by hacking cdrecord. Idealistically, its the right thing to do - but in practice its unessecary, I'm not up to the job, and its not attractive enough for someone to pick up. After packet writing is seamlessly merged into the uniform cdrom driver it might start looking more important, and I might have learnt enough to at least implement a proof of concept. I'm still interested in hashing out more details and potential benefits.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/