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.
 |