forked from Minki/linux
013ebb6d82
Signed-off-by: Pali Rohár <pali@kernel.org> Link: https://lore.kernel.org/r/20220210192200.30828-1-pali@kernel.org Signed-off-by: Jonathan Corbet <corbet@lwn.net>
140 lines
3.9 KiB
ReStructuredText
140 lines
3.9 KiB
ReStructuredText
==============
|
|
Packet writing
|
|
==============
|
|
|
|
Getting started quick
|
|
---------------------
|
|
|
|
- Select packet support in the block device section and UDF support in
|
|
the file system section.
|
|
|
|
- Compile and install kernel and modules, reboot.
|
|
|
|
- You need the udftools package (pktsetup, mkudffs, cdrwtool).
|
|
Download from https://github.com/pali/udftools
|
|
|
|
- Grab a new CD-RW disc and format it (assuming CD-RW is hdc, substitute
|
|
as 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 in
|
|
the so called "restricted overwrite" mode. To put a disc in restricted
|
|
overwrite 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 discs
|
|
shall implement "true random writes with 2KB granularity", which means
|
|
that 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 the
|
|
host to perform aligned writes at 32KB boundaries. Other drives do
|
|
follow the specification, but suffer bad performance problems if the
|
|
writes are not 32KB aligned.
|
|
|
|
Both problems can be solved by using the pktcdvd driver, which always
|
|
generates 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 not
|
|
necessary. However, using the pktcdvd driver can improve performance
|
|
in the same way it does for DVD+RW media.
|
|
|
|
|
|
Notes
|
|
-----
|
|
|
|
- CD-RW media can usually not be overwritten more than about 1000
|
|
times, so to avoid unnecessary wear on the media, you should always
|
|
use the noatime mount option.
|
|
|
|
- Defect management (ie automatic remapping of bad sectors) has not
|
|
been implemented yet, so you are likely to get at least some
|
|
filesystem corruption if the disc wears out.
|
|
|
|
- Since the pktcdvd driver makes the disc appear as a regular block
|
|
device with a 2KB block size, you can put any filesystem you like on
|
|
the 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 interface
|
|
and can be controlled by it. For example the "pktcdvd" tool uses
|
|
this interface. (see http://tom.ist-im-web.de/linux/software/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
|
|
-----
|
|
|
|
See http://fy.chalmers.se/~appro/linux/DVD+RW/ for more information
|
|
about DVD writing.
|