Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 1 | ============== |
| 2 | Packet writing |
| 3 | ============== |
| 4 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 5 | Getting started quick |
| 6 | --------------------- |
| 7 | |
| 8 | - Select packet support in the block device section and UDF support in |
| 9 | the file system section. |
| 10 | |
| 11 | - Compile and install kernel and modules, reboot. |
| 12 | |
| 13 | - You need the udftools package (pktsetup, mkudffs, cdrwtool). |
| 14 | Download from http://sourceforge.net/projects/linux-udf/ |
| 15 | |
| 16 | - Grab a new CD-RW disc and format it (assuming CD-RW is hdc, substitute |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 17 | as appropriate):: |
| 18 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 19 | # cdrwtool -d /dev/hdc -q |
| 20 | |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 21 | - Setup your writer:: |
| 22 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 | # pktsetup dev_name /dev/hdc |
| 24 | |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 25 | - Now you can mount /dev/pktcdvd/dev_name and copy files to it. Enjoy:: |
| 26 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | # mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime |
| 28 | |
| 29 | |
| 30 | Packet writing for DVD-RW media |
| 31 | ------------------------------- |
| 32 | |
| 33 | DVD-RW discs can be written to much like CD-RW discs if they are in |
| 34 | the so called "restricted overwrite" mode. To put a disc in restricted |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 35 | overwrite mode, run:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 | |
| 37 | # dvd+rw-format /dev/hdc |
| 38 | |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 39 | You can then use the disc the same way you would use a CD-RW disc:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 40 | |
| 41 | # pktsetup dev_name /dev/hdc |
| 42 | # mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime |
| 43 | |
| 44 | |
| 45 | Packet writing for DVD+RW media |
| 46 | ------------------------------- |
| 47 | |
| 48 | According to the DVD+RW specification, a drive supporting DVD+RW discs |
| 49 | shall implement "true random writes with 2KB granularity", which means |
| 50 | that it should be possible to put any filesystem with a block size >= |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 51 | 2KB on such a disc. For example, it should be possible to do:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 52 | |
| 53 | # dvd+rw-format /dev/hdc (only needed if the disc has never |
| 54 | been formatted) |
| 55 | # mkudffs /dev/hdc |
| 56 | # mount /dev/hdc /cdrom -t udf -o rw,noatime |
| 57 | |
| 58 | However, some drives don't follow the specification and expect the |
| 59 | host to perform aligned writes at 32KB boundaries. Other drives do |
| 60 | follow the specification, but suffer bad performance problems if the |
| 61 | writes are not 32KB aligned. |
| 62 | |
| 63 | Both problems can be solved by using the pktcdvd driver, which always |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 64 | generates aligned writes:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 65 | |
| 66 | # dvd+rw-format /dev/hdc |
| 67 | # pktsetup dev_name /dev/hdc |
| 68 | # mkudffs /dev/pktcdvd/dev_name |
| 69 | # mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime |
| 70 | |
| 71 | |
| 72 | Packet writing for DVD-RAM media |
| 73 | -------------------------------- |
| 74 | |
| 75 | DVD-RAM discs are random writable, so using the pktcdvd driver is not |
| 76 | necessary. However, using the pktcdvd driver can improve performance |
| 77 | in the same way it does for DVD+RW media. |
| 78 | |
| 79 | |
| 80 | Notes |
| 81 | ----- |
| 82 | |
| 83 | - CD-RW media can usually not be overwritten more than about 1000 |
| 84 | times, so to avoid unnecessary wear on the media, you should always |
| 85 | use the noatime mount option. |
| 86 | |
| 87 | - Defect management (ie automatic remapping of bad sectors) has not |
| 88 | been implemented yet, so you are likely to get at least some |
| 89 | filesystem corruption if the disc wears out. |
| 90 | |
| 91 | - Since the pktcdvd driver makes the disc appear as a regular block |
| 92 | device with a 2KB block size, you can put any filesystem you like on |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 93 | the disc. For example, run:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 94 | |
| 95 | # /sbin/mke2fs /dev/pktcdvd/dev_name |
| 96 | |
| 97 | to create an ext2 filesystem on the disc. |
| 98 | |
| 99 | |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 100 | Using the pktcdvd sysfs interface |
| 101 | --------------------------------- |
| 102 | |
Thomas Maier | 83f3aa3 | 2007-02-10 01:45:11 -0800 | [diff] [blame] | 103 | Since Linux 2.6.20, the pktcdvd module has a sysfs interface |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 104 | and can be controlled by it. For example the "pktcdvd" tool uses |
Justin P. Mattock | 0ea6e61 | 2010-07-23 20:51:24 -0700 | [diff] [blame] | 105 | this interface. (see http://tom.ist-im-web.de/download/pktcdvd ) |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 106 | |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 107 | "pktcdvd" works similar to "pktsetup", e.g.:: |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 108 | |
| 109 | # pktcdvd -a dev_name /dev/hdc |
| 110 | # mkudffs /dev/pktcdvd/dev_name |
| 111 | # mount -t udf -o rw,noatime /dev/pktcdvd/dev_name /dvdram |
| 112 | # cp files /dvdram |
| 113 | # umount /dvdram |
| 114 | # pktcdvd -r dev_name |
| 115 | |
| 116 | |
| 117 | For a description of the sysfs interface look into the file: |
| 118 | |
Paul Bolle | 395cf96 | 2011-08-15 02:02:26 +0200 | [diff] [blame] | 119 | Documentation/ABI/testing/sysfs-class-pktcdvd |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 120 | |
| 121 | |
| 122 | Using the pktcdvd debugfs interface |
| 123 | ----------------------------------- |
| 124 | |
Mauro Carvalho Chehab | 8ea6188 | 2019-06-12 14:52:40 -0300 | [diff] [blame] | 125 | To read pktcdvd device infos in human readable form, do:: |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 126 | |
GeunSik Lim | 156f5a7 | 2009-06-02 15:01:37 +0900 | [diff] [blame] | 127 | # cat /sys/kernel/debug/pktcdvd/pktcdvd[0-7]/info |
Thomas Maier | 3269485 | 2006-12-08 02:36:12 -0800 | [diff] [blame] | 128 | |
| 129 | For a description of the debugfs interface look into the file: |
| 130 | |
| 131 | Documentation/ABI/testing/debugfs-pktcdvd |
| 132 | |
| 133 | |
| 134 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 135 | Links |
| 136 | ----- |
| 137 | |
| 138 | See http://fy.chalmers.se/~appro/linux/DVD+RW/ for more information |
| 139 | about DVD writing. |