Packet writing¶
Getting started quick¶
Select packet support in the block device section and UDF support inthe file system section.
Compile and install kernel and modules, reboot.
You need the udftools package (pktsetup, mkudffs, cdrwtool).Download fromhttp://sourceforge.net/projects/linux-udf/
Grab a new CD-RW disc and format it (assuming CD-RW is hdc, substituteas appropriate):
# cdrwtool -d /dev/hdc -q
Setup your writer:
# pktsetup dev_name /dev/hdc
Now you can mount /dev/pktcdvd/dev_name and copy files to it. Enjoy:
# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
Packet writing for DVD-RW media¶
DVD-RW discs can be written to much like CD-RW discs if they are inthe so called “restricted overwrite” mode. To put a disc in restrictedoverwrite mode, run:
# dvd+rw-format /dev/hdc
You can then use the disc the same way you would use a CD-RW disc:
# pktsetup dev_name /dev/hdc# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
Packet writing for DVD+RW media¶
According to the DVD+RW specification, a drive supporting DVD+RW discsshall implement “true random writes with 2KB granularity”, which meansthat it should be possible to put any filesystem with a block size >=2KB on such a disc. For example, it should be possible to do:
# dvd+rw-format /dev/hdc (only needed if the disc has never been formatted)# mkudffs /dev/hdc# mount /dev/hdc /cdrom -t udf -o rw,noatime
However, some drives don’t follow the specification and expect thehost to perform aligned writes at 32KB boundaries. Other drives dofollow the specification, but suffer bad performance problems if thewrites are not 32KB aligned.
Both problems can be solved by using the pktcdvd driver, which alwaysgenerates aligned writes:
# dvd+rw-format /dev/hdc# pktsetup dev_name /dev/hdc# mkudffs /dev/pktcdvd/dev_name# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
Packet writing for DVD-RAM media¶
DVD-RAM discs are random writable, so using the pktcdvd driver is notnecessary. However, using the pktcdvd driver can improve performancein the same way it does for DVD+RW media.
Notes¶
CD-RW media can usually not be overwritten more than about 1000times, so to avoid unnecessary wear on the media, you should alwaysuse the noatime mount option.
Defect management (ie automatic remapping of bad sectors) has notbeen implemented yet, so you are likely to get at least somefilesystem corruption if the disc wears out.
Since the pktcdvd driver makes the disc appear as a regular blockdevice with a 2KB block size, you can put any filesystem you like onthe disc. For example, run:
# /sbin/mke2fs /dev/pktcdvd/dev_name
to create an ext2 filesystem on the disc.
Using the pktcdvd sysfs interface¶
Since Linux 2.6.20, the pktcdvd module has a sysfs interfaceand can be controlled by it. For example the “pktcdvd” tool usesthis interface. (seehttp://tom.ist-im-web.de/download/pktcdvd )
“pktcdvd” works similar to “pktsetup”, e.g.:
# pktcdvd -a dev_name /dev/hdc# mkudffs /dev/pktcdvd/dev_name# mount -t udf -o rw,noatime /dev/pktcdvd/dev_name /dvdram# cp files /dvdram# umount /dvdram# pktcdvd -r dev_name
For a description of the sysfs interface look into the file:
Documentation/ABI/testing/sysfs-class-pktcdvd
Using the pktcdvd debugfs interface¶
To read pktcdvd device infos in human readable form, do:
# cat /sys/kernel/debug/pktcdvd/pktcdvd[0-7]/info
For a description of the debugfs interface look into the file:
Documentation/ABI/testing/debugfs-pktcdvd
Links¶
Seehttp://fy.chalmers.se/~appro/linux/DVD+RW/ for more informationabout DVD writing.