Subject: DVD+-RW in-kernel write support - it partially EXIST
To: None <netbsd-users@NetBSD.org>
From: Wojciech Puchar <wojtek@tensor.3miasto.net>
List: netbsd-users
Date: 06/11/2004 16:33:44
thanks for NetBSD developers that just allow write command in cd.c :)
i've been just so dumb to try do it and it works
to use DVD-RW/DVD+RW media in direct mode do (assuming /dev/rcd1d is your
DVD+-RW drive)
1) format media:
dvd+rw-tools -force=full /dev/rcd1d only once for DVD-RW media. it will
take some time. in case of DVD+RW -force should be enough but i don't have
any DVD+RW discs.
2) write with exactly 32K block to raw device.
you may use /dev/rcd1d for /sbin/dump but with -b 32, you may pipe any
command with
|dd obs=32k conv=osync of=/dev/rcd1d
3) you won't be able to eject media. it you try to force it with eject
command it makes things worse.
just read first block with dd if=/dev/rcd1d bs=2k count=1 of=/dev/null
or any other command that will read data. this will force all unwritten
block to be written.
now you can eject disc.
4) DVD+-RW media behaves quite like disk drive, it has always full size,
no matter how much were recorded.
cd.c TODO:
a) add flushcache scsi command in cdclose. this will fix 3! i have this
drive for 1 hour from now only, it's not mine. could anyone tell me how
to send scsi command to drive? i know parameters dvd+rw-tools's growisofs utility.
i have no experience.
b) add support for writing smaller blocks than 32K by reading full block,
fixing and writing back.
i will do this after some time, when i will buy new DVD drive for me.
b will allow you to use newfs, mount etc. directly on media but is it
worth of work? using this will quickly reach this 1000 rewrites in
superblocks, bitmap areas etc.
lfs may be best for this...