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