• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

COPYINGH A D10-Apr-20092.3 KiB5839

LICENSEH A D10-Apr-20092.3 KiB5839

LIMITATIONSH A D10-Apr-20092.3 KiB5839

MakefileH A D21-Apr-20132 KiB6752

Makefile.dflH A D14-May-2010736 2110

Makefile.docH A D13-Jun-2007849 219

Makefile.manH A D19-Nov-2000681 199

READMEH A D20-Nov-202013.1 KiB461384

README.ATAPIH A D20-Nov-202023.5 KiB602443

README.DiskT@2H A D19-May-20042 KiB6443

README.WORMH A D08-Feb-1998383 117

README.audioH A D19-May-20042.1 KiB5139

README.cdplusH A D29-Jan-20092.2 KiB7647

README.cdrwH A D28-May-2000471 1410

README.cdtextH A D08-Apr-20102 KiB6242

README.cloneH A D23-Aug-2004585 2714

README.copyH A D09-Dec-20021.8 KiB5333

README.multiH A D19-May-20046.5 KiB191125

README.parallelH A D01-Apr-20011.5 KiB5639

README.rawH A D19-May-20042.3 KiB7042

README.rscsiH A D03-May-20224.2 KiB12482

README.solaris-x86-ATAPI-DMAH A D24-Nov-20042.9 KiB8069

README.solaris-x86-ata-DMAH A D21-Jun-20034 KiB9383

README.sonyH A D19-May-20041.1 KiB3019

README.sun-lofiH A D04-Jun-2000604 2115

README.verifyH A D03-Dec-20142.5 KiB8853

README.volmgtH A D02-Jan-20041.8 KiB4537

Rata-dma.mkH A D13-Jun-2007682 176

Ratapi-dma.mkH A D13-Jun-2007686 176

Ratapi.mkH A D13-Jun-2007666 176

Raudio.mkH A D13-Jun-2007666 176

Rcdplus.mkH A D13-Jun-2007668 176

Rcdrw.mkH A D13-Jun-2007664 176

Rcdtext.mkH A D13-Jun-2007668 176

Rclone.mkH A D13-Jun-2007666 176

Rcopy.mkH A D13-Jun-2007664 176

Rdisktattoo.mkH A D13-Jun-2007673 176

Rmulti.mkH A D13-Jun-2007666 176

Rparallel.mkH A D13-Jun-2007672 176

Rraw.mkH A D13-Jun-2007662 176

Rrscsi.mkH A D13-Jun-2007666 176

Rsony.mkH A D13-Jun-2007664 176

Rsun-lofi.mkH A D13-Jun-2007672 176

Rverify.mkH A D13-Jun-2007668 176

Rvolmgt.mkH A D13-Jun-2007668 176

Rworm.mkH A D13-Jun-2007664 176

adip.hH A D13-Sep-2006890 3830

audiosize.cH A D05-Jul-20097.4 KiB288199

auheader.hH A D09-May-1998789 286

auinfo.cH A D19-Dec-201012.5 KiB617502

build_all.comH A D22-Oct-20026.9 KiB120119

build_all.com.oldH A D05-Mar-20025 KiB9998

build_cdrecord.comH A D13-Jan-20042.7 KiB6463

cd_misc.cH A D19-Dec-20103.9 KiB194141

cdr_drv.cH A D19-Dec-20109.1 KiB412342

cdrecord.1H A D03-May-2022103.5 KiB3,6323,591

cdrecord.cH A D08-Jan-2019145.6 KiB5,5544,331

cdrecord.dflH A D03-May-20222.3 KiB6964

cdrecord.hH A D16-Oct-201946.8 KiB1,249807

cdtext.cH A D03-Apr-201113.6 KiB605486

cdtext.hH A D02-Mar-20044.3 KiB13175

clone.cH A D19-Dec-20106.1 KiB268201

crc16.cH A D05-Jul-20095.1 KiB164112

crc16.hH A D04-Mar-2002821 276

cue.cH A D08-Jan-201939.5 KiB1,7151,351

diskid.cH A D19-Dec-201016.8 KiB528408

drv_7501.cH A D19-Dec-201027.3 KiB1,092866

drv_bd.cH A D09-Dec-201348.8 KiB1,9301,410

drv_dvd.cH A D09-Dec-201354 KiB2,1781,599

drv_dvdplus.cH A D15-Mar-201249.8 KiB1,9921,441

drv_jvc.cH A D19-Dec-201035.4 KiB1,5021,125

drv_mmc.cH A D15-Mar-201293.1 KiB3,9203,087

drv_philips.cH A D19-Dec-201035.8 KiB1,4491,268

drv_simul.cH A D19-Dec-201011.4 KiB484392

drv_sony.cH A D15-Mar-201236.6 KiB1,4451,188

fifo.cH A D22-Apr-201520.6 KiB930694

iso9660.hH A D02-Mar-20045 KiB168130

isosize.cH A D03-Jan-20102.4 KiB10970

misc.cH A D17-Feb-20142.1 KiB8757

mmcvendor.hH A D13-Sep-20062.2 KiB7548

movesect.cH A D05-Jul-20092.4 KiB10044

movesect.hH A D02-Jun-20011.1 KiB3310

priv.cH A D12-Oct-201312.6 KiB498306

readme.mkH A D13-Jun-2007660 176

scsi_cdr.cH A D15-Mar-201275.9 KiB3,1222,550

scsi_cdr_mmc4.cH A D19-Dec-20102.1 KiB7543

scsi_mmc.cH A D19-Dec-201035.3 KiB1,5951,320

scsi_mmc4.cH A D10-Jul-20091.9 KiB7741

scsi_scan.cH A D06-Aug-20175.8 KiB279229

scsi_scan.hH A D26-Nov-2006875 285

scsilog.cH A D19-Dec-20104.1 KiB177128

scsilog.hH A D13-Sep-20063.4 KiB11469

scsimmc.hH A D02-Dec-200621.6 KiB626529

sector.cH A D19-Dec-20106 KiB277190

subchan.cH A D16-Jul-201721.2 KiB1,054762

vendor.cH A D14-Sep-20111.3 KiB4822

version.hH A D23-Jul-2021175 82

wm_packet.cH A D19-Dec-20107.6 KiB305246

wm_session.cH A D10-Jul-20091.3 KiB4418

wm_track.cH A D10-Jul-20091.3 KiB4317

xio.cH A D18-Jul-20094 KiB196155

xio.hH A D11-Nov-20061.4 KiB5624

README

1# @(#)README	1.30 20/11/21 Copyright 1996-2018 J. Schilling
2
3This is Version 3.02 of cdrecord
4
5Cdrecord allows you to create CD's on a CD-Recorder.
6Cdrecord runs on:
7
8SunOS 4.1.3 or later:	m68k sparc
9Solaris 2.3 or later:	sparc x86 ppc.
10
11Linux:			alpha x86 IA-64 m68k mips mipsel parisc parisc64 ppc s390 sparc sparc64 strongarm
12
13FreeBSD:		alpha arm IA-64 powerpc sparc sparc64 x86 x86-64
14NetBSD:			alpha amiga x86 m68k sparc
15OpenBSD:		x86
16
17AIX:			rs6000
18AmigaOS			m68k
19Apollo Domain/OS	m68k ???
20Apple Rhapsody:		ppc, x86
21Apple MacOS X:		ppc
22Apple Darwin:		ppc
23BeOS:			m68k x86
24BSD/OS (BSDi):		sparc x86
25Caldera OpenUnix:	x86
26HP-UX:			hppa
27GNU HURD:		x86
28NeXt Step:		mc68xxx x86 and hppa
29OS/2:			x86
30OSF1:			alpha
31SCO Openserver 5.x:	x86
32SCO Unixware 2.x:	x86
33SCO Unixware 7.x:	x86
34SGI IRIX:		mips
35Win95:			x86
36Win98:			x86
37WinME:			x86
38WinNT:			x86
39WinNT-5 (aka Win2000):	x86
40WinNT-5.1 (aka WinXP):	x86
41VMS:			*VAX alpha
42QNX:			x86 (coming soon)
43
44
45To learn how to compile and install cdrecord, read README.compile
46
47To compile on currently unknown platforms you definitely need 'smake'
48from https://sourceforge.net/projects/s-make/files/ or
49https://sourceforge.net/projects/schilytools/files/
50GNUmake is too dumb to do this job as it does not include automake features
51like 'smake' does.
52
53For multi session please read README.multi
54
55In general, it is a good idea to read all README's and check whether
56they may apply for your needs/problems.
57
58Cdrecord runs without problems on a loaded Solaris system.
59On Solaris, cdrecord uses the SVr4 priocntl() call to establish
60SVr4 real-time scheduling which grants to run cdrecord in a even higher
61priority than all kernel processes. On system that provide POSIX real-time
62scheduling the result may be slightly worse as not all POSIX RT implementations
63grant decent real time behaviour.
64
65The cdrtools distribution contains a SCSI user level transport library
66called libscg. The SCSI library is suitable to talk to any SCSI device without
67having a special device specific driver for it.
68Cdrecord may be easily ported to any system that has a generic SCSI device
69driver similar to the scg driver.
70
71On SunOS/Solaris:
72You *need* the SCSI general driver 'scg' in order to run cdrecord.
73
74SunOS 4.1.3 only:
75	The 'scg' driver is Copyright 1986-1995 J�rg Schilling,
76	it is supplied binary in a loadable format.
77	There is no future support, there is no non loadable support.
78
79Solaris only:
80	The 'scg' driver is Copyright 1986-1995 J�rg Schilling,
81	it is supplied binary in pkgadd(1m) format and is tested
82	on Solaris 2.3, Solaris 2.4 & Solaris 2.5 (sparc).
83
84Solaris only:
85	It is _nice to have_ the 'fbk' driver to mount files that contain
86	images of file systems. Fbk means File simulates Block Device.
87
88	The 'fbk' driver is Copyright 1988-1995 J�rg Schilling,
89	it is supplied binary in pkgadd(1m) format and is tested
90	on Solaris 2.3, Solaris 2.4 & Solaris 2.5 (sparc).
91
92On other OS, libscg uses the SCSI drivers that are present on the system.
93
94Cdrecord-1.3 or later adopts the right BUF_SIZE for each architecture.
95This is to reduce some performance problems on Solaris x86.
96It may be that the reason for this performance problems is that
97the PC-architecture has no IO-MMU and therefore is not able to do DVMA.
98If this points out to be the reason, I have to
99change the scg driver & cdrecord, but this would
100be needed on Linux anyway.
101
102Cdrecord is currently maintained with the following drives:
103
104	Plextor PX-W4824A
105	Plextor PX-W4012A
106	Plextor PX-W2410A
107	Plextor PX-W1210S
108	Plextor PX-W1210A
109	Plextor PX-W124
110	Plextor PX-W8220
111	Plextor PX-W4220
112	Plextor PX-R820
113	Plextor PX-R412C
114	Yamaha F-1
115	Yamaha CRW-2200S
116	Yamaha CRW-2200A
117	Yamaha CRW-2100S
118	Yamaha CRW-4416
119	Yamaha CDR-400
120	Ricoh MP-7040A
121	Ricoh MP-7040S
122	Ricoh MP-7060S (available only to Thomas Niederreiter and Heiko Ei�feld)
123	Ricoh MP-7063A
124	Ricoh MP-7080A
125	Ricoh MP-7083A
126	Ricoh MP-9060A
127	Ricoh MP-7163A
128	Ricoh DVD+RW MP5125	(DVD+ writing not yet supported)
129	HP DVD-200i		(DVD+ writing not yet supported)
130	Philips DVD-RW 1208	(DVD+ writing not yet supported)
131	TEAC CD-R55S
132	TEAC CD-R58S
133	TEAC CD-W54E
134	TEAC CD-W28E
135	Sanyo CDR-Bp2
136	Sanyo CDR-Bp3A
137	Sony CDU948S
138	Sony CRX-145E
139	Sony CRX-200E		(DDCD writing not supported)
140	COMPRO/Matsushita/Panasonic CW-7502
141	COMPRO/Matsushita/Panasonic CW-7586
142	Philips CDD-2000
143	Philips PCRW-804
144	Goldstar LG 8080
145	AOPEN CRW-4048
146	Cyberdrive CW-038D
147	Cyberdrive CW-078D
148	Pioneer DVD-R A03
149
150It should run also on:
151
152	All SCSI-3/mmc compliant drives
153	All ATAPI/mmc compliant drives
154
155	NOTE:
156
157	It seems that all drives that have been initially released in 1999
158	or later are MMC compliant. If a recent drive does not work with
159	cdrecord, you most likely found a firmware bug in this drive.
160	Contact your drive vendor in this case.
161
162Drives that have been reported to work or should work because
163Andy MCFadden (see also http://www.fadden.com/cdrfaq/faq05.html) listed
164them to be identical to working drives. Note that this list may be outdated
165
166	ACER CR-1420C
167	ACER CDRW 6206A
168	AOPEN CRW9420 (Re-writable)
169	BTC BCE 621E
170	COMPRO CW-7502
171	COMPRO/Matsushita/Panasonic CW-7586
172	Dysan CR-622 ???? See Wearnes 622
173	Dysan CR-1622
174	DynaTec CDM-240J (see Pinnacle RCD-4x4)
175	DynaTec CDM-240  (use cdrecord driver=yamaha_cdr100 and report inquiry)
176	DynaTec CDM-400  (use cdrecord driver=yamaha_cdr100 and report inquiry)
177	Grundig CDR-100
178	Hewlett Packard 4020i
179	Hewlett Packard 6020i
180	HP C4324/C4325 (HP SureStore 4020i/6020i)
181	HP 7100
182	HP 7110
183	HP 7200
184	HP 8100
185	HP 8210
186	HP CD-Writer+ M820
187	Hi-Val CD-R (see Pinnacle RCD-4x4)
188	IMATION CD-RW IMW040420
189	JVC XR-W2001 (uses TEAC code - see below - audio not working)
190	JVC XR-W2010 (uses TEAC code - see below - audio not working)
191	JVC XR-W2020 (uses TEAC code - see below - audio not working)
192	JVC XR-W2080 (first MMC drive from JVC)
193	Kodak PCD-200 or Kodak PCD-200 Plus
194	Kodak PCD-225
195	Kodak PCD-240
196	Kodak PCD-600
197	Matsushita CW-7502
198	Matsushita CW-7503
199	Matsushita CW-7582
200	Matsushita CW-7586
201	Memorex CR-622 ???? See Wearnes 622
202	Memorex CR-1622
203	Memorex CRW-1622
204	Microboards PlayWrite 2000 (use cdrecord driver=sony_cdu924 and report inquiry)
205	Microboards PlayWrite 4000 (use cdrecord driver=yamaha_cdr100 and report inquiry)
206	Microboards PlayWrite 4001RW
207	MicroNet MasterCD Plus 4x4 (use cdrecord driver=yamaha_cdr100 and report inquiry)
208	MicroNet MasterCD Plus 4x6
209	Mitsubishi MCA-CDRW 226
210	Mitsumi CR-2401-TS
211	Mitsumi CR-2600-TE
212	Mitsumi CR-2801-TE
213	Mitsumi CR-4801-TE
214	Mitsumi CR-4802-TE ???
215	Nomai 680.rw
216	Olympus CDS615E
217	Olympus CDS620E (use cdrecord driver=sony_cdu924   and report inquiry)
218	Olympus CD-R2x6 (use cdrecord driver=sony_cdu924   and report inquiry)
219	Optima Dis Kovery 650 CD-R
220	OTI CDRW 965
221	OTI-975 Socrates 1.0 (CDRW)
222	Panasonic CW-7502
223	Panasonic CW-7503
224	Panasonic CW-7582
225	Panasonic CW-7586
226	Philips CDD 521 (CDD521/02  Revision: 2.06 has bad firmware - seems not to work)
227	Philips CDD 521 (upgraded units only: ID: CDD521/10  Revision: 2.07)
228	Philips CDD 522
229	Philips CDD 2000
230	Philips CDD 2600
231	Philips CDD 3600
232	Philips CDD 3610
233	Philips CDRW400
234	Philips Omniwriter 26
235	Philips Omniwriter 26A
236	Philips CDD4201 CD-RW
237	Philips PCRW-804
238	Pinnacle Micro RCD-1000 (see TEAC/JVC): Need to upgrade firmware to 2.35
239	Pinnacle Micro RCD-5020 (see TEAC/JVC - audio not working)
240	Pinnacle Micro RCD-5040 (see TEAC/JVC - audio not working)
241	Pinnacle Micro RCD-4x4
242	Pioneer DW-S114X
243	Plasmon CDR 4220
244	Plasmon RF-4100
245	Plasmon RF-4102
246	Plasmon CDR 4400 (use cdrecord driver=yamaha_cdr100 and report inquiry)
247	Plasmon CDR 480
248	Plextor PX-R24CS (use cdrecord driver=ricoh_ro1420c and report inquiry)
249	Plextor PX-R412C
250	Plextor PX-R820
251	Plextor PX-W4220
252	Plextor PX-W8220
253	Plextor PX-W124
254	Plextor PX-W1210S
255	Plextor PX-W1210A
256	Procom PCDR 4 (use cdrecord driver=yamaha_cdr100 and report inquiry)
257	Ricoh RO-1420C
258	Ricoh MP-6200
259	Ricoh MP-6200I
260	Ricoh MP-6201
261	Ricoh MP-7040A
262	Ricoh MP-7040S
263	Ricoh MP-7060S
264	Ricoh MP-7063A
265	Ricoh MP-7080A
266	Ricoh MP-7083A
267	Ricoh MP-9060A
268	Sanyo CDR-Bp2
269	Sanyo CDR-Bp3
270	Smart & Friendly CD-R1002 (use cdrecord driver=sony_cdu924   and report inquiry)
271	Smart & Friendly CD-R1004 (use cdrecord driver=yamaha_cdr100 and report inquiry)
272	Smart & Friendly CD-R2004 (use cdrecord driver=sony_cdu924   and report inquiry)
273	Smart & Friendly CD-R2006 PLUS
274	Smart & Friendly CD-R2006 PRO
275	Smart & Friendly CD-R4000 (use cdrecord driver=yamaha_cdr100 and report inquiry)
276	Smart & Friendly CD-R4006
277	Smart & Friendly CD-R4012
278	Smart & Friendly CD-RW226
279	Smart & Friendly CD-R8020
280	Sony CDU920S
281	Sony CDU924S
282	Sony CDU926S
283	Sony CDU928S
284	Sony CDU940S
285	Sony CDU948S
286	Sony CRX-100
287	Sony CRX-140
288	Sony CRX-145
289	Taiyo Yuden CD-WO EW-50
290	TEAC CD-R50S
291	TEAC CD-R55S
292	TEAC CD-R56S
293	TEAC CD-R58S
294	TEAC CD-W54E
295	That's Write CDR-N820S
296	Traxdata CDRW-2260EL-PRO
297	Traxdata CDR-4120
298	Traxdata CDRW-4260
299	Turtle Beach 2040R (use cdrecord driver=ricoh_ro1420c and report inquiry)
300	WAITEK WT2036
301	Wearnes CD-R622
302	Wearnes CD-R632P
303	Yamaha CDR-100
304	Yamaha CDR-102
305	Yamaha CDR-200
306	Yamaha CDR-400(Firmware revision 1.0d and up otherwise upgrade)
307	Yamaha CDR-401
308	Yamaha CRW-4001
309	Yamaha CRW-2260
310	Yamaha CRW-2261
311	Yamaha CRW-4260
312	Yamaha CRW-4261
313	Yamaha CRW-4416
314	Yamaha CRW-6416
315	Yamaha CRW-8424
316	Yamaha CRW-2100
317
318Multi-session has not been tested with the Plasmon RF-4100
319
320All companies that support me with SCSI command reference manuals and drives
321will get (continued) support in the following releases.
322
323The following drives will never be supported by cdrecord because they are too old:
324
325	JVC XR-W1001
326	Pinnacle Micro RCD-202
327	Ricoh RS-9200CD
328
329The following drives are currently not supported because I don't get specs:
330(some of them may partially work: see above)
331
332	Creative Labs CDR 4210
333	JVC XR-W2001
334	JVC XR-W2010
335	JVC XR-W2020
336	Pinnacle Micro RCD-1000
337	Pinnacle Micro RCD-5020
338	Pinnacle Micro RCD-5040
339	Plasmon CDR-4240
340	Sony CDW-900E
341
342The following drives may get support soon (If I get time to do so):
343
344	Panasonic CW-7501
345	Ricoh RS-1060C
346
347If you understang German, it makes sense to have a look at http://www.dchlb.de/
348and http://www.brennmeister.com/ for additional information.
349
350To install get:
351
352Solaris only:
353	SCHILYscg.sparc.tar.Z	The scg driver in pkgadd format (sparc).
354	SCHILYfbk.sparc.tar.Z	The fbk driver in pkgadd format (sparc).
355	SCHILYscg.i386.tar.Z	The scg driver in pkgadd format (x86).
356	SCHILYfbk.i386.tar.Z	The fbk driver in pkgadd format (x86).
357
358Note that the fbk driver packet is for Solaris 2.4 and not system independent.
359
360All Systems:
361	cdrtools-2.0.tar.gz	The cdrtools for source distribution.
362
363NOTE:	All these tar archives are 100% ansi compatible. Solaris 2.x tar and GNU
364	tar may get some minor trouble.
365
366WARNING: Do not use 'mc' to extract the tar file!
367	All mc versions before 4.0.14 cannot extract symbolic links correctly.
368
369To unpack the archive use:
370
371		gzip -d < cdrtools-2.0.tar.gz | tar -xpf -
372
373	Replace 'cdrtools-2.0' by the actual archive name.
374
375	If your Platform does not support hard links or symbolic links, you
376	first need to compile "star" and then call:
377
378		star -xpz -copy-links < cdrtools-2.0.tar.gz
379
380	If your platform does not support hard links but supports
381	symbolic links, you only need to call the command above once.
382	If your platform does not support symbolic links, you need to call
383	the command twice because a symbolic link may occur in the archive
384	before the file it points to.
385
386
387
388
389
390The files are located on:
391
392https://sourceforge.net/projects/cdrtools/files/ ...
393https://sourceforge.net/projects/schilytools/files/kernel/scg/ ...
394https://sourceforge.net/projects/schilytools/files/kernel/fbk/ ...
395
396Only use the mkisofs that is contained in this release.
397All other mkisofs versions are too buggy.
398
399
400Installation Process:
401
402Solaris only:
403	1) scg driver
404			untar SCHILYscg.tar:
405			su
406			Password: xxxxx
407			cd /tmp
408			zcat SCHILYscg.tar | tar -xvf -
409			pkgadd -d .
410			reboot -- -r
411
412	2) fbk driver
413			similar to scg driver (see above)
414
415	3) Switch the CD-Writer to an unused target id (2 should do it)
416
417
418NOTE:
419	Be very careful. pkgadd does not check for the right target
420	architecture. Do not install drivers for intel on sparc
421	and vice versa. You will get a corrupt system.
422
423	You need to be root because you need access to /dev/scg? and to be
424	able to put cdrecord into the real-time scheduling class.
425
426All Systems:
427
428The SCSI transport library has been taken from the sformat program.
429Sformat is the first SCSI disk formatting/analyzing/repairing that runs on
430SunOS/Solaris. The first release of sformat has been made for SunOS 3.0
431(two years before Sun introduced their format utility). Sformat source
432including 10 years of competence in SCSI disk handling is available
433on:
434	https://sourceforge.net/projects/schilytools/files/sformat/
435	https://sourceforge.net/projects/schilytools/files/schily-*
436
437I am interested to hear if someone is interested in a kernel based
438filesystem for Solaris that uses packet writing on the CD-Recorder.
439The filesystem will create a single session CD that may be finally converted
440to a hybrid filesystem that allows to be read as
441ISO-9660 with Rock Ridge extensions too.
442Please mail suggestions to: joerg@schily.net
443
444If you want to use the CD-recorder as CD-ROM device, have a look at
445
446Solaris only:
447https://sourceforge.net/projects/schilytools/files/kernel/sd/
448
449Current information on cdrecord may be found on:
450
451	http://cdrecord.org/private/cdrecord.html
452
453
454	Joerg Schilling
455
456	(really J�rg Schilling if you have ISO-8859-1)
457
458If you have questions mail to:
459
460	joerg@schily.net
461

README.ATAPI

1# @(#)README.ATAPI	1.7 20/11/21 Copyright 1997-2004 J. Schilling
2
3People (with a Linux only background) often ask me why do you depend on
4"ATAPI-SCSI emulation", why don't you support generic IDE?
5
6First a note: there is no SCSI emulation on Linux, but there has been
7some kind of SCSI integration. To explain the difference between SCSI emulation
8and SCSI integration let us look at an Operating system that implements both,
9Windows NT:
10
11Win NT implements SCSI integration, if you open "\\\\.\\SCSI%d:", BusNo,
12you will be able to send generic SCSI commands to any SCSI speaking drive
13on that bus. ATAPI drives just show up on a specific Busnumber, SCSI drives
14that use a 50 or 68 pin connector show up on different Bus numbers.
15Note that Microsoft obviously did copy my ideas I did implement in August 1986
16for SunOS-3.0 :-)
17
18Win NT implements SCSI emulation by not only showing drives that natively
19talk SCSI on the ATA/IDE cable, if you send generic SCSI commands via ioctl's
20to "\\\\.\\SCSI%d:", BusNo. Win NT also shows you plain ATA drives that do not
21understand SCSI commands in firmware. Win NT allows you to send SCSI
22commands to the kernel and the kernel translates the SCSI commands to ATA
23commands with the same meaning, so Win NT emulates SCSI for ATA drives.
24
25Linux does not emulate SCSI command transport for vanilla ATA drives, so there
26is definitely no SCSI emulation in Linux.
27
28
29	You need to believe me: There is no single IDE burner out!
30	Even a CD-ROM cannot be used decently if you use only IDE/ATA commands.
31	Opening/closing the door, playing audio and similar things
32	cannot be done using vanilla IDE commands - you will need SCSI commands
33	to do this. But how do we do this with a drive that uses an IDE
34	interface?
35
36		ATAPI stands for ATA Packet Interface
37
38	The ATAPI standard describes method of sending SCSI commands over IDE
39	transport with some small limitations to the "real" SCSI standard.
40	SCSI commands are send via IDE transport using the 'ATA packet'
41	command. There is no SCSI emulation - ATAPI drives include native
42	SCSI command support. For this reason, sending SCSI commands to ATAPI
43	drives is the native method of supporting ATAPI devices. Just imagine
44	that IDE is one of many SCSI low level transport mechanisms.
45
46	This is a list of some known SCSI transports:
47
48	-	Good old Parallel SCSI 50/68 pin (what most people call SCSI)
49	-	SCSI over fiber optics (e.g. FACL - there are others too)
50	-	SCSI over a copper variant of FCAL (used in modern servers)
51	-	SCSI over IEEE 1394 (Fire Wire)
52	-	SCSI over USB
53	-	SCSI over IDE (ATAPI)
54
55	As you now see, the use of the naming convention "ATAPI-SCSI emulation"
56	is a little bit misleading. It should rather be called:
57		"IDE-SCSI host adapter emulation"
58
59Some naming explanations:
60
61	ATA	Attachment Adapter
62	IDE	Integrated Drive Electronics (A Drive that includes ATA)
63	ATAPI	ATA Packet Interface
64
65When cdrecord has problems with ATAPI drives on Linux this usually is a Linux
66kernel problem. The Linux kernel maintainers unfortunately refuse to correct
67their current IDE driver system setup which does not support ATAPI by default.
68ATAPI _is_ SCSI over IDE transport. It is hard to understand why Linux still
69uses a default driver setup that is designed for IDE CD-ROM drives made
70before 1994 (using a IDE compat mode that only allows to use the drive
71read-only) and does not handle to send SCSI commands to ATAPI drives by
72default. This makes it hard for people who just started with Linux to do
73CD-writing on Linux if they own an ATAPI drive. Both Linus Torvalds and
74Alan Cox admit that they don't own a CD/DVD writer, how should they know about
75the problems?
76
77There are bugs with the DMA implementation that are known for many years
78but they don't get fixed.
79
80/*--------------------------------------------------------------------------*/
81Which Operating systems support ATAPI
82
83-	AIX: Status unknown! Please report your experience...
84
85-	Apple Mac OS X (Darwin): Supported
86
87-	BeOS (libscg maps ATAPI to SCSI bus # >= 8
88
89-	BSD/OS: Status unknown! Please report your experience...
90
91-	FreeBSD:
92		-	YES for the latest default kernel.
93			It includes finally ATAPI-Cam
94
95		-	NO for the older kernels.
96			Yes, if you install a kernel patch from
97			Thomas Quinot <thomas@cuivre.fr.eu.org>
98			See http://www.cuivre.fr.eu.org/~thomas/atapicam/
99			and README.FreeBSD
100
101-	HP-UX: It looks like ATAPI does not work correctly due to kernel bugs.
102
103	New information:
104	HP supports a HP A7853A B/C class machine (s700_800) with HP-UX-11.x
105	You need to install a patch:
106
107	Patch Name: PHKL_27224 Patch Description: s700_800 11.00 IDE/ATAPI
108	cumulative patch
109
110
111-	Linux (unfortunately not in the default configuration)
112
113	-	It works more or less if you include ide-scsi
114
115	-	Linux-2.4.xx includes a CDROM Packet interface in the
116		IDE CD driver. For this driver libscg now includes
117		support in pre-alpha status. Use cdrecord dev=ATAPI -scanbus
118		to check for drives and e.g. cdrecord dev=ATAPI:0,0 ....
119		for writing. Note that this interface is not integrated into
120		the standard libscg device naming scheme. Support for
121		this interface has been included because it is the only
122		way to use a PCCARD/PCMCIA writer - trying to use ide-scsi
123		on a PCATA interface will cause a Linux kernel panic
124		or will block all ATAPI drives.
125
126	-	Starting with Linux-2.5.45, there is a new experimental
127		ATAPI interface initiated by Linus Torvalds. Unfortunately,
128		this interface does not fit well into the rest of the Linux
129		SCSI kernel transport naming scheme. Cdrecord allows to
130		use this interface by calling e.g. cdrecord dev=ATA:1,0,0 ...
131
132	All Linux ATAPI transport implementations do not support DMA.
133	Current exceptions are:
134
135	-	ide-scsi with block size 2048 and if DMA has been enabled
136
137	-	The new experimental ATAPI interface starting with Linux-2.5.45
138		allows DMA if DMA has been enabled and the sector size is a
139		multiple of 4. This allows to use DMA for audio CDs and
140		when writing any type of CD in RAW mode.
141
142		Note that is a bad idea to first implement a new kernel
143		interface that also implements the named DMA implementation
144		bugs and later fix the DMA bug _only_ for this new
145		interface. It looks like the Linux kernel folks are not
146		very cooperative :-(
147
148	RAW mode is needed for many new and cheap drives that have bugs when
149	writing in cooked mode. If there is no DMA, you cannot write faster
150	than approx 16x.
151
152
153-	NetBSD (releases 1.3 and newer)
154
155-	NeXT: Status unknown! Please report your experience...
156
157-	OpenBSD: (release 2.6 and newer)
158
159-	OS/2 (you need to fetch and install ATAPI support first)
160	see: http://www.leo.org/pub/comp/os/os2/leo/drivers/dasd/daniatapi.zip/
161
162-	OSF-1 / True64 Status unknown! Please report your experience...
163
164-	SCO-OpenServer: Supported with 5.0.6 and non-public patch or with
165			5.0.7. I don't know whether you need a patch for 5.0.7
166
167-	SCO-UnixWare: partial support with UnixWare 7.1.3 - some SCSI commands
168			that are needed for cdda2wav and DVD writing are blocked.
169			7.1.4 will have full ATAPI support.
170
171-	SGI/IRIX: Status unknown! Please report your experience...
172
173-	Solaris (you may need to use the USCSI transport interface to address
174	ATAPI if the IDE hostadapter idriver implementation does not follow
175	Sun's internal standards).
176
177	ATAPI works fine on Solaris 7 sparc and on Solaris 7/8 intel.
178
179	On Solaris 8 (intel) and newer, the ATAPI/SCSI subsystem is integrated
180	correctly according to Sun's SCSA white paper, so the 'scg' driver works.
181	This is not true for Solaris on sparc where the ATAPI driver do not conform
182	to Sun's internal structuring rules. You need to use the USCSI interface
183	on for ATAPI drives on Solaris sparc for this reason.
184
185	Solaris 8 sparc has a ATA DMA bug that prevents cdrecord from working at all.
186	There is a fix from Sun available: the patch 108974-16
187	Solaris 9 sparc works again, it has the fix for the ATA DMA bug included.
188
189	Newer versions of Solaris 9 disable DMA for CD-ROM drives on IDE.
190	Read README.solaris-x86-ATAPI-DMA to learn how this may be circumvented.
191
192-	VMS: works on recent versions!
193
194-	Win32 using a recent ASPI Layer supports ATAPI
195	You nay need to exclude mini port drivers (see README.win32).
196
197	Newer cdrecord versions also support the SPTI (SCSI Pass through ioctl).
198	Libscg uses SPTI by default if you are running NT-5.x or newer and are
199	administrator. With NT-4.x it may be possible to run cdrecord dev=SPTI:1,0.0 ...
200	But there are reports for blue screens (kernel crashes).
201
202-	DOS DOS-7 from win98 includes a ATAPI aware aspi
203	For other versions have a look at README.msdos and use e.g. "oakaspi".
204
205/*--------------------------------------------------------------------------*/
206General hints:
207
208***********************
209NOTE: IDE/ATAPI doesn't have disconnect/reconnect! you cannot expect the needed
210	performance for CD-writing if you connect source and destination drive
211	to the same IDE cable.
212***********************
213
214If you never like to directly write a CD from CD-ROM source, this configuration
215seems to be the best:
216
217IDE 0	MSTR	->	HD1
218IDE 0	SLAV	->	HD2
219
220IDE 1	MSTR	->	CD-writer
221IDE 1	SLAV	->	CD-ROM
222
223If you like to write from both HD source and CD-ROM source, you should have
224the following configuration:
225
226IDE 0	MSTR	->	HD1	(does _not_ hold CD mastering data)
227IDE 0	SLAV	->	CD-Writer
228
229IDE 1	MSTR	->	HD2	(holds CD mastering data)
230IDE 1	SLAV	->	CD-ROM
231
232If cou cannot set up a decent cabling (e.g. because you use a notebook)
233you may try to use cdrecord -immed ...
234It runs slow commands in quick (immediate) return background mode and
235tries to wait between the write commands to allow to free the IDE cable
236so the cdrecord read process may fill the FIFO from the other drive
237on the same IDE cable.
238
239/*--------------------------------------------------------------------------*/
240The rest of this file is only valid for Linux!
241
242This was taken out of mails from From: Dave Cohen <dcohen@richmond.infi.net>
243and From: Gadi Oxman <gadio@netvision.net.il>
244(slightly modified marked ***JS *** except typo corrects)
245
246As all actual Linux versions have ATAPI support for cdrecord,
247I removed the patch section. If you are running a Linux version
248that does not support ATAPI<->SCSI command transport, please upgrade.
249
250The basic driver design in Solaris would also allow to use ATAPI
251drives but unfortunately, Sun made a mistake in the mid-level design.
252If you want to use ATAPI drives with Solaris, ask Sun why they don't
253support SCSI passthrough to IDE although they are using a common driver
254concept.
255
256Please use cdrecord-1.6 final or later (if available), it includes the
257modifications needed for ATAPI drives and is still working with other
258SCSI drives. Older revisions of cdrecord do not support ATAPI drives.
259
260If you are using Linux Kernel version prior to 2.1.73 or prior to
2612.0.35, please upgrade before you try to compile and use cdrecord.
262
263In any case, you need to configure a kernel with ATAPI/SCSI hostadapter
264emulation. Read carefully the following instructions:
265
266In any case, you need to disable generic IDE/ATAPI CDROM support in
267order to make ATAPI SCSI emulation working.
268
269Many people ask why I use ATAPI-SCSI emulation.
270
271	The use of the naming convention "ATAPI-SCSI emulation" is a
272	little bit misleading. It should rather be called:
273		"SCSI host adapter emulation"
274
275	The ATAPI standard describes method of sending SCSI commands over IDE
276	with some small limitations to the "real" SCSI standard.
277	For this reason ATAPI-SCSI emulation is the native method of
278	supporting ATAPI devices.
279
280If you have problems to talk to the device when it is jumpered as "slave"
281try to use it  as "master". If you connect a hard disk to the same IDE
282cable as the CD writer or if you try to read/write data from another drive
283that is connected to the same IDE cable as the CD writer you may get
284problems too.
285
286NOTICE:
287
288With the newer 2.1.x or 2.2.x kernels it seems to be possible to run
289SCSI/ATAPI hostadapter emulation and generic IDE at the same time by
290selectively telling the kernel what to use for which drive.  However,
291this would not be needed if the Linux SCSI CD-ROM driver would be more
292up to date and supports standard conforming drives.
293
294J�rg Schilling <joerg@schily.net>
295
296--------------------------------------------------
297Here is a hint from Alan Brown <alanb@manawatu.gen.nz>:
298
299To allow ATAPI cd and ide-scsi support on the same machine, add
300`hd<x>=ide-scsi` to the lilo.conf append entry, or use
301`hd<x>=ide-scsi` at the bootup lilo prompt.
302
303I have my HP-7200 RW drive as the primary drive on the second IDE
304bus, so the statement used is "hdc=ide-scsi"
305
306--------------------------------------------------
307
308Hope that the following  is helpful to you.
309
310I recently purchased a HP-7110i CD-RW, which is the U.S. only version of
311what you have. The HP 7100 and 7110  CD rewritables use the ATAPI
312standard. Originally, the drives were not supported under Linux (due to
313some inconsistencies with SCSI translations between the kernel and the
314CD), but that problem has just recently been fixed. There are some kernel
315and cdrecord patches that have been made to support this device that have
316yet to be officially incorporated into cdwrite and the kernel. In order to
317get your drive supported under Linux, you will have to do the following:
318
3191. Get the proper version of cdrecord.
320
321As of this writing, I am just getting ready to test Joerg's new cdrecord.
322I am currently operational on cdrecord-1.5, so I know that works, and I
323have attached patches for that version.
324
325If you are in a hurry, you can download ver. 1.5, apply patches, and
326rock-n-roll. You may want to wait, though.  Up to you ;). The version with
327ATAPI support is cdrecord-1.6alpha5. I'm not sure if the current kernel
328patches are valid for this version, but i'll know soon enough.
329**** They are valid **** JS
330
331BTW, the new version of xcdroast now supports cdrecord - this version
332is in beta testing, too (currently uses cdrecord-1.5 but cdrecord-1.6a5
333should work with the actual xcdroast too).
334
3352. Upgrade to kernel version 2.0.31
336
337IDE/SCSI translation was first added in this kernel. Because your CD-RW is
338an ATAPI device, it will support SCSI command sets.  The translation
339allows you to map the device as a SCSI generic device. This will allow
340cdrecord to recognize it as a SCSI device.
341**** 2.0.31 still needs patches, get 2.0.35 or later **** JS
342
3433. Get the patches and apply them
344
345Attached find kernel patches for kernel sources ide.h and ide-scsi.c, and
346cdrecord source scsi_cdr.c (version 1.5 only).
347**** Get cdrecord-1.6 or later **** JS
348
3493. Recompile kernel with SCSI emulation support
350
351If you do a "make menuconfig" or "make xconfig", select SCSI emulation
352under the category "Floppy, IDE, and other block devices".
353
354WARNING:
355Do not install SCSI support as a module - there is a bug in the makefile
356structure that will cause the compile to fail.  Compile directly into the
357kernel.
358
3594. WARNING: Disable generic IDE/ATAPI CDROM support	*** JS ***
360
361If you don't do this, the SCSI emulation will not work  *** JS ***
362
3635. This is important too:
364You also need to enable SCSI and SCSI generic support   *** JS ***
365
3666. Make sure that /dev/sg* exists.
367If they are missing, create them.
368
369Dave Cohen
370dcohen@richmond.infi.net
371(Patch instructions below)
372
373-----------------------------------------------------------------
374From: Danilo Fiorenzano <shade@juliet.gppsd.ab.ca>
375
376Anyway, here's what I did, using kernel version 2.0.33  I believe this
377is the proper way to get an HP-7100i to work (and as far as I can tell,
378any other IDE CD-writer unit):
379
3801) patch the kernel as described by README.ATAPI
381
3822) save your current kernel config to an alternate file, then run
383   "make mrproper"
384
3853) run 'make menuconfig' or 'make xconfig', then choose "load config
386   from alternate file" to restore the original configuration
387
3884) In "Floppy, IDE and other block devices", disable "IDE/ATAPI CD-ROM
389   support" and enable instead "scsi emulation"
390
3915) in "SCSI support" enable "SCSI support", "SCSI CD-ROM support" and
392   "SCSI generic support", everything directly in the kernel.
393
3946) compile, install kernel/modules, reboot.  Now, if everything went
395   fine, your CDROM units should show up with a message like:
396 "hdb: HP CD-Writer+ 7100, ATAPI CDROM drive - enabling SCSI emulation"
397
3987) run "cdrecord -scanbus" to make sure cdrecord can see the unit and
399   talk to it.  The end.
400
401Don't forget that now -all- of your CD drives are seen as -SCSI- units
402by all programs (/dev/scd0 etc.), so you might want to relink
403/dev/cdrom to the proper scd<n> in order to get xcdplay or whatever to
404work again.
405
406
407-------------------------------------------------------------------------------
408NOTE:
409
4101)	Actual cdrecord releases support ATAPI
411
4122)	Linux 2.0.35 or Linux 2.1.73 or later include ATAPI support
413-------------------------------------------------------------------------------
414From whampton@staffnet.com Fri Jan 14 05:21:34 2000
415From: "W. Wade, Hampton IV" <whampton@staffnet.com>
416
417You may wish to include/append these notes to your ATAPI notes....
418
419I have my 4X Acer CD-R/RW ATAPI drive working with Linux.   My platform
420is
421RedHat 6.1 with kernel 2.2.14.  My first ATAPI CD device is a DVD with
422the second
423the CD-R.  I made the following changes:
424
425Steps:
426
4271.  Identify which device is the CD-R -- in my case the fourth ATAPI
428device, /dev/hdd.
429
4302.  Compile the kernel to include ATAPI CDROM and SCSI emulation:
431
432     Under the block devices menu:
433                Y or M     Include IDE/ATAPI CDROM support
434                Y or M     SCSI emulation
435
4363.  Build and install the upgraded kernel.
437
4384.  If you selected modules, add them to the /etc/conf.modules file.
439
4405.  In the /etc/lilo.conf file add an append line for ide-scsi, in my
441case:
442        append = "hdc=ide-scsi hdd=ide-scsi"
443
4446.  Reboot to the new kernel and make sure the ide-scsi module is loaded
445
446        /sbin/lsmod | grep ide-scsi
447
4487.  Make a link from the proper SCSI device to a symbolic, e.g.,
449/dev/cdrom:
450      In my case the DVD is the first CD, hence appears as /dev/scd0 to
451scd7
452      (cat /proc/scsi/scsi to get a full list of devices -- the first
453CD-ROM will
454      appear as scd0, etc.)  With the current ATAPI-SCSI module, each CD
455
456      device appears as 8 SCSI devices (different logical units).  If
457you have
458      two devices, like I do, you may have to make a node for the second
459device.
460      In my case I had to make scd8:
461
462            cd /dev
463            mknod scd8 b 11 8
464
465        Then make links, in my case:
466
467            ln -s scd0 cdrom
468            ln -s scd8 cdr
469
470        Note, many CD-ROM player programs expect the audio CD drive to
471        be located at /dev/cdrom (xplaycd, etc.), hence this link is
472recommended.
473
474        If you try to use /dev/hdc (or wherever your CD or CD-R is)
475after loading
476        the ide-scsi module, you may not be able to mount CD's or play
477audio
478        discs -- you have to use the new SCSI names for the device.
479
4808.  Fix your /etc/fstab file to mount the /dev/cdrom and /dev/cdr
481
482
483/*--------------------------------------------------------------------------*/
484From: Eduard Bloch <edi@gmx.de>
485
486Situation:
487   Linux: Kernel 2.2.15 (Debian package kernel-image-2.2.15)
488   Distribution: Debian Potato (deep freeze), i386
489   Devices: one CDRW-Writer, one CDROM-drive, both ATAPI
490
4911. Become root, try "grep hd.: /var/log/kern.log" to find out where your
492   ATAPI-devices are connected to (hd?-names).
4932. Edit your boot configuration file, eg. /etc/lilo.conf if you use
494   lilo or the batch-file if you boot via loadlin.
4953. Find a line where you can append additional kernel parameters, eg.
496   "append=" in lilo.conf or the loadlin-line in the batch file.
4974. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1"
498   The hdX-parameters defines devices that should be mapped to SCSI
499   latter. You may do it with non-writers too, since the emulation layer
500   is almost complete, or let them out so the devices will use their
501   native drivers.
5025. Save the file, reinstall the bootloader (ie. running "/sbin/lilo")
5036. Call "modconf", load "sg" and "ide-scsi" from the SCSI-section
5047. Reboot Debian, watch while booting, you should see a line like this
505   "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0".
506   Your old ATAPI devices virtually don't exist any longer, use the
507   SCSI equivalents instead.
5088. Become root, setup devices:
509      cd /dev
510      MAKEDEV sg scd
511      ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here
512      ln -s scd1 cdrw  # NOTE: see above, maybe cdrom
513   Check the new SCSI settings:
514      cdrecord -scanbus
515   Setup cdrecord's environment - edit /etc/default/cdrecord:
516      CDR_DEVICE=cdrw
517      cdrw=1,0,0        4       8m
518      cdrom=1,2,0       0       0m
519   Input the right values, the fields are described in the manpage
520   of cdrecord. Alternatively, you may use this values as
521   cdrecord-parameter or take a frontend with an own configuration
522   scheme, then you don't need to modify /etc/default/cdrecord.
5239. It's done! Insert a CD and try "cdrecord -v -toc"
524/*--------------------------------------------------------------------------*/
525He had constant buffer underrun problems:
526
527From: "Trenton D. Adams" <trenton.adams@telusplanet.net>
528
529I enabled DMA, and 32-bit mode on the CD-Writer using "hdparm".
530This fixed the writing problem.
531
532/*--------------------------------------------------------------------------*/
533From: "Mario Moder" <clay-man@freenet.de>
534-----
535TEAC CD-W54E
536
537I recently installed a TEAC CD-W54E (an ATAPI CD-RW-Recorder) and I had
538problems with buffer underruns and other errors when burning a CD (with
539Linux and Windows 2000). My system has an old ASUS P/I-P55T2P4 Pentium
540mainboard with Intel PCI-Bus-Master-IDE (I think the chipset is an Intel
541430HX and the IDE controller is an 82371SB). The harddisk is the master on
542the primary IDE channel, and the CD-Recorder is the master on the secondary
543IDE channel.
544
545After turning off DMA for the CD-Recorder AND the harddisk, the drive had no
546longer problems with burning a CD. You can try the following things to make
547it work, if you have similar problems with a similar hardware configuration:
548
549For Linux (Kernel 2.2.19):
550Turn off "Enable DMA by default" in the kernel (and then compile a new
551kernel), if you had it turned on or use "hdparm" to turn of DMA for both the
552CD-Recorder and the harddisk
553
554For Windows 2000:
555In the Device Manager go to "IDE ATA/ATAPI-Controller" and open the
556properties for the first and second IDE channel. There you change the mode
557of the devices from DMA to PIO.
558-----
559
560/*--------------------------------------------------------------------------*/
561
562Hints for the Linux Packet code in ide-cdrom.c:
563
564	WARNING! It seems that this driver does not allow to send all
565	SCSI commands. A command that definitely fails is READ FULL TOC.
566	For this reason, you cannot read those 'defective' audio CDs
567	with broken TOC when you use this interface.
568
569	Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first
570	code fragments for supporting the CDROM_SEND_PACKET ioctl() from
571	the cdrom.c kernel driver. Please note that this interface in principle
572	is completely unneeded but the Linux kernel is just a cluster of
573	code and does not support planned orthogonal interface systems.
574	For this reason we need CDROM_SEND_PACKET in order to work around a
575	bug in the linux kernel that prevents to use PCATA drives because
576	the kernel panics if you try to put ide-scsi on top of the PCATA
577	driver.
578
579	The code is currently in "status nascendi" but usable with some trade offs.
580
581	To use: call e.g.
582
583		cdrecord -scanbus dev=ATAPI:
584
585		cdrecord -dao -v speed=24 dev=ATAPI:0,0 ....
586
587	Be careful! This code is only needed in order to be able to use
588	PCATA CD-writers on notebooks because there is a severe kernel bug.
589	Unfortunately, this bug causes the kernel to hang (and force you
590	to reboot) if you try to call:
591
592		cdrecord -scanbus
593
594	without the dev=ATAPI: option.
595
596	In this case cdrecord will hang infintely and unkillable
597	in open("/dev/sg1", 2) => you need to reboot :-(
598
599	Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run
600			cdrecord -scanbus.
601
602

README.DiskT@2

1New driveropts= option "tattoofile=". Use together with -checkdrive
2to write an image of the right size to disk.
3
4	DiskT@2 hints:
5
6	In order to have "DISKTATTOO" listed in the "Driver flags",
7	the disk currently inserted must be usable for the DiskT@2 feature.
8	This means that there needs to be enough space on it.
9
10	You need an B&W image with 3744 pixels per line
11
12	Best start with a 3744 x 320 pixel image.
13	The correct size may be retrieved with
14		cdrecord driveropts=tattooinfo -checkdrive
15
16	To get RAW image data:
17
18	-	Take 'xv' and save the image in PBM/PGM/PPM (raw) mode
19
20	-	use a binary aware (must support unlimited linelength)
21		editor such as 'ved' and remove the header lines.
22		These lines look like:
23
24		P5
25		# CREATOR: XV Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)
26		# CREATOR: XV Version 3.10a  Rev: 12/29/94 (PNG patch 1.2)
27		3744 144
28		255
29
30		Now you should have (in case of the file above) a file that
31		has exactly 539136 Bytes.
32
33	-	Note that the tattoo image must be left to right flipped
34		(a mirror image).
35
36From a hint from "E. Robert Bogusta" <rob23@tmr.com>:
37
38Take an image, and do:
39
40  djpeg myface.jpg | ppmtopgm | pnmflip -lr |
41    pnmscale -xsi 3744 -ysi 320 | sed '1,/255/d' >myface.tattoo
42
43So:
44  djpeg extracts ppm from a jpeg. Use your favorite other way of getting
45this far is you wish.
46
47  ppmtopgm changes color to grey scale
48
49  pnmflip -lr flips left to right, the small image is faster
50
51  pnmscale makes it 3644x320 regardless of starting size. This may make it
52look really odd on the CD if it doesn't start off the right size. More on
53this after I try it.
54
55  sed strips from the first line to the line containing 255, which is the
56last header line.
57
58Note that it would be better to use the actual height of the applicable image instead
59of the maximum value of 320 and it would be even more correct to create an
60image that has the right width/height ratio for the target on CD in order
61get an undistorted view of the image on CD.
62
63For best visibility, use black text on light background.
64

README.WORM

1CD-R drives are anything but WORM drives, but older drives identify themselves
2as WORM drives.
3A Worm drive is able to write each sector once at any time without preparation.
4A CD-R drives is not and never will be able to do this.
5However some old drives identify as WORM drives.
6
7For this reason the SCSI-3 standard tells CD-R drives simply CD drives
8with multi media extensions.
9
10
11

README.audio

1Why do I hear only noise from my first audio CD?
2
3You may have a byte swapping problem, try cdrecord -swab
4but note that is is most unlikely that you need to use the -swab
5option from cdrecord unless your input files are broken.
6It makes more sense to find out why the inout files are not OK.
7
8Cdrecord assumes Motorola/Network byte order (big-endian) on input
9regardless of the byte order of the CD-Recorder. If Cdrecord
10encounters a .wav file, byte order is corrected to match the byte order
11of the .wav file.
12
13Cdrecord by default uses Track at once. This always gives 2 seconds
14pause between two audio tracks and loweres the audio quality.
15
16For best audio CD quality, use cdrecord -dao (to write in Session At Once)
17ot cdrecord -raw (to write in RAW mode). Note that there are a lot of drives
18notably from Lite-ON that have defective firmware and will write defective
19CDs if you use either TAO or SAO mode. In RAW mode, cdrecord has the
20full control over the complete CD and the chance that the CD is OK
21is much higher.
22
23The 2 seconds pause between two audio tracks is the CD ***standard***
24
25The standard says:
26	Each track starts with 2 seconds of silence
27	followed by at least 4 seconds of audio data.
28
29For that reason the 2 second pause is generated by the CD-R drive in
30Track at once (TAO) mode.
31
32CD's that have no pause between two tracks are illegal (compared to RED BOOK).
33These illegal disks may be made with Disk At Once (DAO) only.
34In DAO mode the writing software needs to send the 2 seconds pause as
35binary zeroes and therefore is able to create illegal disks by
36sending audio data instead.
37
38Some drives don't accept to write illegal disks even in SAO mode.
39In this case, use the RAW mode. In RAW mode, the drive does not even
40"know" what is going on and thus cannot prevent you from writing such
41a disk.
42
43This audio data (the last two seconds of a track in this case)
44however are part of the next track from viewing the TOC of the disk.
45Digital Audio Extraction programs that work correctly (as intended by the
46CD standard) split the content of a CD into files by including the
47pre-gap (usually holding 2 seconds of pause) at the end of the previous
48track.
49
50Joerg Schilling
51

README.cdplus

1Cdrecord allows you to create multi-session CD's with all
2supported drives. Cdrecord comes with a hacked mkisofs
3that allows you to that on even on systems that don't support
4a sectorsize 2048 Bytes (e.g. SGI IRIX and old versions of Solaris)
5or systems that don't support raw device access (e.g. OS/2 W95/W98/WNT).
6This is possible because current versions of mkisofs may
7use my scg driver to read the old session from the CD-Recorder.
8
9According to www.cd-info.com, a CD+ is a CD with two sessions.
10The first session is an audio session, the second session a data
11session.
12
13Creating a CD+ is first writing an audio session in
14multi session mode and then writing a data session.
15
16If you like to append a filesystem to a audio CD, first extract the
17CD by calling:
18
19	cdda2wav -B -vall
20
21This first audio session may be written in TAO mode with the command
22
23	cdrecord -multi -audio file1 ....
24
25or in DAO mode with the command
26
27	cdrecord -dao -multi -useinfo -audio file1 ....
28
29To add the second session that contains the data track, you need
30to create an ISO-9660 file system that starts not at sector 0.
31
32With the current mkisofs, you must use the following method:
33
34
35-	First call cdrecord -msinfo for your prepared multi-session audio CD.
36
37	you will get something like 0,12345
38
39-	Now call mkisofs:
40
41	mkisofs -o fs.raw -C 0,12345 root_directory_for_new_cd
42
43	replace 0,12345 with your actual cdrecord -msinfo output.
44
45the image in fs.raw may now be written with cdrecord as second session.
46
47See my README.multi for more info on how to create multi session CD's
48
49
50The procedure again in short form:
51
52	cdda2wav -vall -B
53
54	cdrecord -multi -audio audio_tracks ....
55or
56	cdrecord -dao -useinfo -multi -audio audio_tracks ....
57
58	cdrecord -msinfo ....
59	(output is e.g. 0,12345)
60
61	mkisofs -R -o cd_plus.raw -C 0,12345 root_dir_of_fs
62
63	cdrecord -data cd_plus.raw
64or
65	cdrecord -multi cd_plus.raw
66
67Note that most drives do not support to append the data session in SAO mode.
68For this reason, it is recommended to add the -tao option to the cdrecord
69command line that appends cd_plus.raw to the audio session.
70
71Note: If you want to create an HFS hybrid as the data track, then you must
72use the '-part' option to mkisofs. Otherwise, the data track will be mounted
73as an ISO9660/Joliet CD when used on a Mac.
74
75J�rg
76

README.cdrw

1Using CD-RW media Mini Howto FAQ
2
3CD-RW drives usually support packet writing, but as there
4is currently no usable UDF filesystem support you may only use
5the simple cdrecord approach.
6
7Cdrecord writes to CD-RW media in exactly the same way as it
8does with CD-R.
9
10You may erase a complete disk in preparation to reuse it.
11Check the man page entry for the blank= option of cdrecord.
12Not all drives support all blanking modes. Usually
13blank=fast or blank=full are working.
14

README.cdtext

1CD-Text Usage (to copy CD-Text from master CD):
2
3	cdda2wav -D 6,0 -vall -B	# To extract audio information
4	cdrecord dev=6,0 -vv -toc	# To extract CD-Text information
5
6	and then
7
8	cdrecord dev=6,0 -v -dao textfile=cdtext.dat -useinfo *.wav
9	or
10	cdrecord dev=6,0 -v -raw96r textfile=cdtext.dat -useinfo *.wav
11
12	If the CD-Text information contains more CRC errors than
13	cdrecord can correct, you need to reload the CD and to
14	re-read the CD-Text information from the master disk.
15
16	Writing of CD-Text is supported for all drives that support
17	CD-Text in SAO write mode and for all drives that support
18	to write in RAW/RAW96R mode (use -raw96r in this case).
19
20	NOTE: not all writers that support MMC SAO mode support
21		to write CD-Text in this write mode.
22		If you have a drive that does not support CD-Text
23		but supports RAW/RAW96R mode use this mode as
24		in RAW/RAW96R mode the drive does not need to know
25		about CD-Text. This way even old drives like the
26		Plextor PX-R 412C will write CD-Text.
27
28	NOTE that cdda2wav will read CD-Text and fill in the
29	CD-Text fields in the *.inf files if vou use -vall.
30
31	The new cdda2wav option cddb= allows you to tell cdda2wav to
32	retrieve CDDB information from freedb.freedb.org.
33	cddb=0 means ask if ambiguous, cddb=1 means take first entry.
34	The information in this case is filled into the fields
35	in the *.inf files.
36
37Creating a CD with CD-Text based on CDDB information from freedb.freedb.org:
38
39	Tell cdda2wav to fetch data from freedb.freedb.org, call
40
41	cdda2wav -D 6,0 -vall -B cddb=1	# To extract audio information/fetch CDDB data
42
43	and then call
44
45	cdrecord dev=6,0 -v -dao -text -useinfo *.wav
46	or
47	cdrecord dev=6,0 -v -raw96r -text -useinfo *.wav
48
49
50If you like to create your own CD-text data for a CD use the
51following method:
52
53	First extract all tracks with cdda2wav -vall (see above),
54
55	then edit the *.inf Files and add album and song titles.
56
57	Now call cdrecord as if the *.inf files contain CD-Text
58	information.
59
60	Note that it is recommended to use less that 160 characters
61	for a single string.
62

README.clone

1Hints for how to copy a CD using the clone method:
2
3Step 1 (read master CD):
4
5	Call "readcd dev=b,t,l -clone f=somefile" and the files
6
7	somefile
8	and
9	somefile.toc
10
11	will be generated.
12
13	If the disk contains many sectors that are unreadable by intention,
14	call "readcd dev=b,t,l -clone -nocorr f=somefile"
15
16
17Step 2 (write copy):
18
19	Call "cdrecord dev=b,t,l -raw96r -clone -v somefile"
20
21If cdrecord complains that your drive does not support -raw96r, but the
22drive is able to do clone writing at all, then cdrecord will propose you
23a different write mode that works with the drive.
24
25
26
27

README.copy

1Ho to copy CD's and CD-R/CD-RW's
2
3Copying audio CD's:
4
5If you want to copy audio CD's, look for 'cdda2wav'. Be sure tu use use
6at least a cdda2wav-0.95beta or later. Older releases will not read correctly
7from SCSI-3/mmc compliant drives.
8
9Copying data CD's:
10
11The best way to copy a data disk is to copy the raw data on the master CD.
12This may be done by reading the data from the raw device by using 'readcd'.
13
14
15NOTE:	All CD-R's written in Track At Once mode end in two unreadable
16	run-out sectors. If the disk has been written with a Yamaha CD-R100
17	or with a Yamaha CD-R102, there are even more run-out sectors.
18
19For this reason, you will not be able to read such a CD correctly with 'dd'.
20
21I recommend to write all disks in Disk at Once mode if your drive
22is supported in DAO mode with cdrecord. In addition, you may wish to
23add padding (see cdrecord / mkisofs man pages).
24
25If you want to copy such a CD directly with cdrecord, you may call:
26
27	cdrecord -v dev=... -isosize /dev/rdsk/c0t6d0s0
28
29But this may fail if the master gives read errors. To copy such a CD to a file
30you may use the program 'readcd' from this package
31
32Call 'readcd [target] [lun] [scsibusno]' and select function 11.
33Or call readcd -help to get alternate usage.
34To prevent readcd from reading the run-out sectors, reduce the
35number of sectors to copy by 2.
36
37Recent readcd versions may be called: readcd dev=b,t,l f=outfile
38To reduce the numbers of sectors to copy you may use the sectors= option.
39
40If the master disk is made of several partitions (like a Solaris boot CD),
41the best way to copy a CD is to use the program 'readcd'. It ignores
42the partition info and does raw SCSI reads.
43
44If you like to copy audio CD's in a way that preserves as much accuracy as
45possible, use:
46
47cdda2wav -vall -D... -B
48cdrecord -v dev=... -dao -useinfo *.wav
49
50This will preserve pre-gap sizes, indices ...
51
52
53

README.multi

1Creating multi-session CD's Mini Howto FAQ
2
3Multi-session filesystems are a trick that comes from the Kodak photo CD.
4The OS mounts the last session that contains the sum of the current session
5and all previous sessions.
6
7To test (with Linux):
8
9Create a iso-9660 filesystem image with mkisofs-1.10 or later.
10mkisofs is included in the cdrecord release (including
11SunOS/Solaris multi-session support)
12Use the -R flag to add Rock Ridge extensions (this is important).
13
14Assuming that the CD-R drive is connected to target 2 on the SCSI bus.
15
16Write the first session with:
17
18cdrecord -v speed=2 dev=2,0 -eject -multi isoimage.raw
19
20Note that all Sony drives do no support XA2 disks in firmware - read README.sony
21for more information.
22
23This must be a iso9660 image with Rock Ridge extensions (see above)
24
25Note the number of sectors written and check the disk, it should be mountable.
26
27Next step is to check if cdrecord is able to retrieve the following data:
28
29	1) The first block (sector) number in the first track of the last session
30	   This must be '0' in our case.
31
32	2) The next writable address in the unwritten session following the current.
33	   This should be the number of sectors written in the first
34	   run + ~ 11400 sectors for about 22MB lead out/in
35
36	   For the first additional session this is 11250 sectors lead-out/lead-in
37	   overhead + 150 sectors for the pre-gap of the first track after the
38	   lead-in = 11400 sectors.
39
40	   For all further session this is 6750 sectors lead-out/lead-in
41	   overhead + 150 sectors for the pre-gap of the first track after the
42	   lead-in = 6900 sectors.
43
44To get this information type:
45
46cdrecord -msinfo dev=2,0
47
48The output should be two numbers separated by a comma.
49
50	e.g.: 0,204562
51
52The first number is (1), the second number is (2).
53
54Create the image for the next session with mkisofs-1.12 or later.
55It is included in the cdrecord distribution.
56
572nd session:
58You should create a directory that contains a second directory with data in it
59for this purpose.
60
61	e.g.:
62		first_dir/
63			second_dir/
64				file_1
65				file_2
66				...
67
68call:
69
70On Linux:
71mkisofs -o isoimage_2.raw -R  -C xx,yy -M /dev/cdwriter_blk_dev  first_dir
72
73On SunOS:
74mkisofs -o isoimage_2.raw -R  -C xx,yy -M target,lun first_dir
75
76Note that the name "first_dir" is not important.
77
78If you still keep the old raw image of the first session and there is only
79one previous session on the CD you may also call:
80
81mkisofs -o isoimage_2.raw -R  -C xx,yy -M isoimage.raw first_dir
82
83
84The argument of -C is the output of cdrecord -msinfo
85-	On Linux, the argument of -M is a device that would allow you to mount
86	the current CD in the CD-writer
87-	On SunOS, target and lun refer to the SCSI target and lun of the
88	CD-R device with the same notation as for cdrecord dev=xxx,yyy .
89
90
91If you want to check, whether mkisofs make everything right, you should create
92another image by using the following command line.
93
94On Linux:
95mkisofs -o isoimage_2.raw -R  -C xx,0 -M /dev/cdwriter_blk_dev  first_dir
96
97On SunOS:
98mkisofs -o isoimage_2.raw -R  -C xx,0 -M target,lun first_dir
99
100Where xx is the first number of the pair returned by cdrecord -msinfo
101
102You may check ***this** image by mounting it with my "fbk" on Solaris
103or the loopback driver on Linux.
104
105On Linux type:
106	mount isoimage_2.raw -r -t iso9660 -o loop /mnt
107
108On SunOS type:
109	mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage_3.raw /mnt
110
111For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi)
112
113If you list /mnt, you should see all directories that have been in the first
114session and the directory "second_dir". If you try to read a file from the
115first session, you will get an I/O error or bad data (depending on the
116block address), don't worry about that. If you try to read a file from
117the second session, you will see everything correctly.
118
119To write the second session to CD, call:
120
121cdrecord -v speed=2 dev=2,0 -eject -multi isoimage_2.raw
122
123If you mount this CD, you should see the first session and the second directory
124from 2nd session added to the root directory of the CD.
125
126
127Additional check:
128
129call:
130
131cdrecord -msinfo dev=2,0
132
133The first number should be the first writable address which was retrieved by the
134first call to cdrecord -msinfo after creating the first session.
135The second number should be the first number + number of sectors of the second session
136+ ~ 11400 sectors.
137
138Note: The first lead-out is 1:30 (6750 sectors) the lead-in is 1:00 (4500 sectors)
139All following sessions need only 0:30 for lead-out (2250 sectors), the lead-in
140is also 1:00. So in theory, the can be 44 sessions on s 74 minute disk if you
141take into account that the minimum track size is 4 seconds.
142
143The total amount of the overhead is 11250 + 150 sectors for the first additional
144session and 6750 + 150 sectors for all subsequent sessions.
145The 150 additional sectors are the pre-gap sectors for the first track after
146the current session.
147
148Some notes on multi-session CD's that contain only Joliet but no Rock Ridge:
149
150Joliet is a really bad idea in general:
151
152-	There is no way to find a relation between a ISO-9660 name and a Joliet
153	name. If the file has a size, you may try to match the starting sector #
154	but if the size in 0 it's impossible.
155
156
157-	Joliet does not allow long filenames (it limits names to 64 chars).
158
159-	Joliet does not allow all (usually used) characters in filenames.
160
161	All code points between (00)(00) and (00)(1F), inclusive. (Control Characters)
162		(00)(2A) '*'(Asterisk)
163		(00)(2F) '/' (Forward Slash)
164		(00)(3A) ':' (Colon)
165		(00)(3B) ';' (Semicolon)
166		(00)(3F) '?' (Question Mark)
167		(00)(5C) '\' (Backslash)
168
169	While '/' is not a real problem ;-) other characters may cause trouble.
170
171All notes above prevent you from doing reliable multi-session if the CD does
172only contain Joliet but des not contain Rock Ridge attributes.
173
174In addition, please read README.joliet in the mkisofs directory.
175
176This is the answer to a commonly asked question is why can't I continue a
177multisession CD that has been started on a Microsoft system using mkisofs.
178
179
180Note: It is not possible to create a multi-session HFS CD. If you create
181a multi-session CD using any of the HFS options, then each new HFS
182session will ignore HFS files from any previous sessions. A warning will
183be printed if you attempt this. However, if you use the '-part' option to
184mkisofs for each session you create, then each session will appear as
185separate volumes when mounted on a Mac. In this case, it is worth using the
186'-V' or '-hfs-volid' option to give each session a unique volume name,
187otherwise each "volume" will appear on the Desktop with the same name.
188
189
190Joerg Schilling
191

README.parallel

1This file is intended to help with ATAPI <-> Parallel Port devices on Linux
2
3Before you start, read
4
5	http://www.torque.net/parport/paride.html
6
7Make sure that your parallel port device is set up to EPP mode
8from within the BIOS. In many cases it is best to set the PP delay to 0.
9
10Here is a short explanation how to make the FreeCom Traveller work
11in 4x speed on a notebook:
12
131.) Set BIOS for parallel port to 'EPP'.
14
152.) Load drivers in default mode:
16
17   # modprobe paride
18   # modprobe <driver for parallel port adaptor>
19   # modprobe pg
20
21in case of a FreeCom Traveller this is:
22
23   # modprobe paride
24   # modprobe friq
25   # modprobe pg
26
273.) Check kernel log for paride messages:
28
29   # dmesg
30   ...
31   paride: version 1.04 installed
32   paride: friq registered as protocol 0
33   ...
34   parport0: PC-style at 0x378 [SPP,PS2,EPP]
35   parport0: no IEEE-1284 device present.
36   ...
37   pg: pg version 1.02, major 97
38   pg0: Sharing parport0 at 0x378
39   pg0: friq 1.01, Freecom IQ ASIC-2 adapter at 0x378, mode 4 (EPP-32), delay 1
40   pg0:  CD-R/RW RW8040A, master
41   ...
42
434.) load module again but use different parameters:
44	'drive0=IO-Port,Protocol,Unit,Mode,Master/Slave,Delay drive1=...'
45	if you have only one drive at the parallel port
46	'drive0=IO-Port,0,0,-1,-1,Delay' e.g. for Delay = 0:
47
48   # modprobe -r pg
49   # modprobe pg drive0=0x378,0,0,-1,-1,0
50
515.) Check for optimum delay using for maximum speed using cdrecord -dummy
52
536.) Use the file rc.pp and modify for your needs
54
557.) Your CD drive now appears as /dev/pcd?
56

README.raw

1Tips for MMC RAW mode writing.
2
3	This allows to do disk at once recording on Philips drives that
4	do not support SAO.
5
6	You may write audio tracks in RAW mode. There are some new
7	and most likely transient options:
8
9	-raw16		Write 2352 Bytes sectors + P+Q Subchannel
10
11	-raw96r		Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode)
12
13	-raw96p		Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode)
14
15	NOTE that the MMC standard does not allow -dummy in RAW mode.
16	There may be drives which allow it but don't bother if it does not work.
17
18	Indices are fully supported in RAW mode.
19
20	MCN & ISRC are not yet supported in RAW mode, they are silently discarded.
21
22	If you find other problems in RAW mode or if you find
23	new bugs introduced in old write modes, please send a bug report.
24
25	Cdrecord now checks the properties of the writer. If a specific write
26	mode is not supported by the writer, cdrecord warns you and makes
27	a suggestion for a similar alternate write mode.
28
29	With the curent structure of cdrecord, it is not possible to silently
30	e.g. change the write mode from -dao to -raw96r
31
32	MMC compliant drives are automatically scanned for supported write modes.
33	This should help to make cdrecord work without manual static configuration.
34	My hope is still to have no need to know all drive properties in
35	advance, so new drives will continue to work as long as they
36	are standard compliant enough for cdrecord.
37
38EXAMPLES:
39
40	cdrecord dev=1,0 -v -raw96r *.wav
41
42	will write a audio CD in raw mode using (computed) 2448 byte sectors
43	with raw P-W subchannels. This works e.g. with Plextor drives.
44
45
46	cdrecord dev=1,0 -v -raw16 *.wav
47
48	will write a audio CD in raw mode using (computed) 2368 byte sectors
49	with raw P+Q subchannels. This works e.g. with Philips drives.
50
51
52	NOTE: The input sector size always is 2352 bytes for audio.
53
54IMPORTANT:
55
56	-	if the drive supports RAW/R96R among with other raw write modes,
57		use -raw96r
58
59	-	if the drive does _only_ supports RAW/R16, use -raw16
60
61	-	... else if the drive supports RAW/R96P, use -raw96p
62
63		The packed raw mode (RAW/R96P) is buggy in Plextor drives and
64		the RAW/R16 mode is buggy in TEAC drives. Plextor creates
65		unreadable disks and TEAC hangs the drive.
66
67		For this reason, it is important to select the raw writing
68		mode accoding to the notes above.
69
70

README.rscsi

1The Remote-SCSI protocol gives you SCSI-Anywhere features.
2
3There are three possible ways to control access to the remote users:
4
5	-	Let the remote scsi lib log in as a standard user.
6		In this case rscsi will be called via sh -c /opt/schily/sbin/rscsi
7		NOTE: In this case, rscsi must be installed suid root.
8		--- This would need to allow any valid local user to access SCSI ----
9		It could be a security problem.
10
11	-	Log in as root and call rscsi via sh -c /opt/schily/sbin/rscsi
12		NOTE that this will fore you to allow remote logins as root
13		which is considered to be a security hole.
14
15	-	Create one or more special user(s) that have /opt/schily/sbin/rscsi
16		as login shell with their own home directory.
17		You then may create special .rhosts files for each user.
18		NOTE: In this case, rscsi must be installed suid root.
19		**** This is the preferred method ****
20
21		The FreeBSD port automatically installs the rscsi binary suid
22		root and creates the user "rscsi".
23
24To enable remote SCSI via the login shell method you should do the following:
25
26	-	Make sure that there is an entry for rshd(8) in /etc/inetd.conf
27		and inetd(8) is running.
28
29	-	Edit /usr/local/rscsi/.rhosts to allow access to all users you
30		like.
31
32	-	Edit /usr/local/etc/rscsi and define access rights.
33		Without this file, rscsi will not work at all.
34
35		The template for this file is: /usr/local/etc/rscsi.sample
36
37RSCSI Security:
38
39-	When rscsi starts, it checks if /etc/default/rscsi exists.
40	If not, it dies.
41
42-	If rscsi is not called by a user listed in /etc/default/rscsi
43	it dies.
44
45-	To access a SCSI target there must be an entry that lists the user
46	rcsi hast been started from, the hostname and the SCSI target.
47
48	rscsi compares the hostname field in /etc/default/rscsi
49	to the peername retrived from STDIN:
50
51	- legal host name		IP connection
52	- "ILLEGAL_SOCKET"		Not an IP socket
53	- "NOT_IP"			Not a socket
54
55RSCSI Security hints:
56
57-	Do not generally allow other users to see your boot disk via RSCSI.
58	All people who see this disk may edit your passwd file.
59
60-	If you are in doubt, only export CD-ROM drives, scanners and similar
61	devices that are not directly security sensitive.
62
63If anybody sees a security hole in my security precautions, please send me a mail!
64
65RSCSI usage:
66
67-	To use remote SCSI devices you need to know how to access a specific remote
68	SCSI target.
69
70	-	dev=REMOTE:host: or dev=REMOTE:host
71		will allow you to do SCSI bus scanning while you log in as yourself
72
73	-	dev=REMOTE:user@host: or dev=REMOTE:user@host
74		will allow you to do SCSI bus scanning while you log in as "user"
75
76		If you use the setup described above, you should use:
77
78			dev=REMOTE:rscsi@babbel:
79
80		to do SCSI Bus scanning on host babbel
81
82	-	To access a specific SCSI device, you must specify
83		dev=REMOTE:host:<target spec> or dev=REMOTE:user@host:<target spec>
84		<target spec> is the SCSI target specification as it is needed
85		on the remote host
86
87			dev=REMOTE:rscsi@babbel:1,3,0
88
89		Will let you log in as rscsi on host babbel and open Target 3 lun 0
90		on SCSI bus #1
91
92	-	If you use cdrecord -vv ...., cdrecord will on startup print some
93		information about the remote libscg version used for the connection.
94
95-	To be able to use the remote SCSI client code from win32 you need to create
96	a file /etc/passwd with a correct entry for the user you are on win32.
97	Call 'id' to get the right user id.
98	Note that remote SCSI has not yet been tested on Win32.
99
100RSCSI speed:
101
102-	On a Ultra-10 running Solaris 8, the command overhead time is 400 usec.
103	You may achieve up to 9900 kB/s via a 100MB/s ethernet connection
104	between two of such machines.
105
106-	With 100 MB/s, 12x recording should be no problem.
107
108-	With 10 MB/s, 4x recording is the maximum. Do tests before!
109
110-	Logging into a remote machine and running cdrecord on the remote machine
111	causes the buffer cache on that machine to be trashed. The main user
112	is disturbed.
113
114-	Doing cdrecording via Remote SCSI causes only the rscsi command with less
115	than 200kB to be needed on the remote machine hosting the CD recorder.
116	The main user on that machine is not disturbed.
117	The buffer cache of the machine running cdrecord is trashed.
118
119-	It is desirable to use a Burn-Proof recorder to make sure that network
120	load will not cause buffer underruns.
121
122
123-	USER= test and test for hostname are using a pattern matcher.
124

README.solaris-x86-ATAPI-DMA

1A tip from From: Juergen Keil <jk@tools.de>
2
3Solaris 9 x86 will not allow DMA for ATAPI CD/DVD-ROM drives even if
4the eeprom command shows:
5
6	atapi-dma-enabled=1
7
8Here is a patch to the file /platform/i86pc/kernel/drv/ata
9that allows you to use DMA again. Note that you need to be extremely careful
10when applying the patch because it may completely break your installation
11if you don't do it right.
12
13% adb /platform/i86pc/kernel/drv/ata
14ata_init_drive_pcidma,10?ia
15ata_init_drive_pcidma: pushl %ebp
16ata_init_drive_pcidma+1: movl %esp,%ebp
17ata_init_drive_pcidma+3: subl $4,%esp
18ata_init_drive_pcidma+6: movl +8(%ebp),%eax
19ata_init_drive_pcidma+9: cmpb $1,+0x1ad(%eax)
20ata_init_drive_pcidma+0x10: jne +0x111 <ata_init_drive_pcidma+0x121>
21ata_init_drive_pcidma+0x16: movl +0xc(%ebp),%eax
22ata_init_drive_pcidma+0x19: movl +0x204(%eax),%eax
23ata_init_drive_pcidma+0x1f: andl $1,%eax
24ata_init_drive_pcidma+0x22: je +0x1a <ata_init_drive_pcidma+0x3c>
25ata_init_drive_pcidma+0x24: movl +0xc(%ebp),%eax
26ata_init_drive_pcidma+0x27: movzwl +4(%eax),%eax
27ata_init_drive_pcidma+0x2b: sarl $8,%eax
28ata_init_drive_pcidma+0x2e: andl $0x1f,%eax
29ata_init_drive_pcidma+0x31: cmpl $5,%eax
30^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is the check for a type 5 ATAPI device
31ata_init_drive_pcidma+0x34: jne +8 <ata_init_drive_pcidma+0x3c>
32ata_init_drive_pcidma+0x36:
33
34Here's a patch that replaces the "cmpl $5" with a "cmpl $55", so
35that all ATAPI devices will perform DMA transfers:
36
37# cd /platform/i86pc/kernel/drv
38# cp ata ata-orig
39# echo 'ata_init_drive_pcidma+0x31?W 7555f883' | adb -w ata
40
41Note that the exact position of the instruction that needs to be patched
42may vary depending on the version of Solaris you use. Be extremely careful
43when applying the patch.
44
45	IMPORTANT NOTE FOR AMD64 Systems
46
47cd /platform/i86pc/kernel/drv/amd64
48cp ata ata.orig
49adb -w ata
50ata_init_drive_pcidma,17?ia
510x50f0:         pushq  %rbp
520x50f1:         xorl   %edx,%edx
530x50f3:         movq   %rsp,%rbp
540x50f6:         subq   $0x20,%rsp
550x50fa:         movq   %rbx,-0x18(%rbp)
560x50fe:         movq   %r12,-0x10(%rbp)
570x5102:         movq   %rdi,%rbx
580x5105:         movq   %r13,-0x8(%rbp)
590x5109:         movq   $0x0,0x0(%rip)
600x5114:         movq   %rsi,%r12
610x5117:         cmpb   $0x1,0x321(%rdi)
620x511e:         je     +0x12    <0x5130>
630x5120:         movq   -0x18(%rbp),%rbx
640x5124:         movq   -0x10(%rbp),%r12
650x5128:         movl   %edx,%eax
660x512a:         movq   -0x8(%rbp),%r13
670x512e:         leave
680x512f:         ret
690x5130:         testb  $0x1,0x208(%rsi)
700x5137:         je     +0xe     <0x5145>
710x5139:         movzbl 0x9(%rsi),%eax
720x513d:         andl   $0x1f,%eax
730x5140:         cmpl   $0x5,%eax
74^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is the check for a type 5 ATAPI device
75
760x5140?W7455f883       					<<< This changes the code
770x5140:         0x7405f883      =       0x7455f883
78?i
790x5140:         cmpl   $0x55,%eax
80

README.solaris-x86-ata-DMA

1If you have a IBM IDE hard disk on Solaris x86 and did enable DMA for ata,
2then your system may hang after a reboot due to a firmware bug in the IBM
3drive. On Solaris 9 you may edit the config file /platform/i86pc/kernel/drv/ata.conf
4see also man ata.
5
6On earlier versions, you need to patch the ata driver (see below):
7
8Juergen Keil <jk@tools.de>
9
10Bruce posted a patch for this problem some time ago:
11
12http://groups.google.com/groups?q=solaris+DMA+IBM+timeout&hl=en&lr=&safe=off&site=groups
13
14http://groups.google.com/groups?hl=en&safe=off&th=28213cb0f9e4067b,8&seekm=wywvaq7dvy.fsf%40tools.de#p
15
16/*--------------------------------------------------------------------------*/
17
18> >> "Bruce Adler" <bruce.NxOxSxPxAxMx.adler@acm.org> writes:
19> >> ...
20> >> > Here's a patch that will change the Solaris 8 FCS ata driver's 0xCC
21> >> > command into a 0x66:
22> >> >
23> >> > cd /platform/i86pc/kernel/drv
24> >> > cp ata ata.SAVE
25> >> > adb -w ata<<EOF
26> >> >     ata_devo_reset+0x54?w 0xaa68  ;; was 0xcc68
27> >> > EOF
28> >>
29> >> Small typo, that should be
30> >>
31> >>   ata_devo_reset+0x54?w 0x6668
32> >>
33> >> > This should change the "pushl 0xcc" into a "pushl 0xaa" just before
34> >> > the call to ata_set_feature().
35> >>
36> >> Indeed, changing the "pushl 0xcc" into a "pushl 0x66" fixes the reboot
37> >> problem!
38/*--------------------------------------------------------------------------*/
39ata_devo_reset,50?ai
40ata_devo_reset:
41ata_devo_reset: pushl   %ebp
42ata_devo_reset+1:               movl    %esp,%ebp
43ata_devo_reset+3:               subl    $4,%esp
44ata_devo_reset+6:               pushl   %ebx
45ata_devo_reset+7:               pushl   %esi
46ata_devo_reset+8:               pushl   %edi
47ata_devo_reset+9:               cmpl    $0,+0xc(%ebp)
48ata_devo_reset+0xd:             je      +0xb            <ata_devo_reset+0x18>
49ata_devo_reset+0xf:             xorl    %eax,%eax
50ata_devo_reset+0x11:            popl    %edi
51ata_devo_reset+0x12:            popl    %esi
52ata_devo_reset+0x13:            popl    %ebx
53ata_devo_reset+0x14:            movl    %ebp,%esp
54ata_devo_reset+0x16:            popl    %ebp
55ata_devo_reset+0x17:            ret
56ata_devo_reset+0x18:            pushl   +8(%ebp)
57ata_devo_reset+0x1b:            call    +1              <ata_devo_reset+0x1c>
58ata_devo_reset+0x20:            addl    $4,%esp
59ata_devo_reset+0x23:            pushl   %eax
60ata_devo_reset+0x24:            pushl   0
61ata_devo_reset+0x2a:            call    +1              <ata_devo_reset+0x2b>
62ata_devo_reset+0x2f:            addl    $8,%esp
63ata_devo_reset+0x32:            movl    %eax,%edi
64ata_devo_reset+0x34:            testl   %edi,%edi
65ata_devo_reset+0x36:            je      +0x8d           <ata_devo_reset+0xc3>
66ata_devo_reset+0x3c:            movl    $1,-4(%ebp)
67ata_devo_reset+0x43:            xorl    %esi,%esi
68ata_devo_reset+0x45:            nop
69ata_devo_reset+0x46:            nop
70ata_devo_reset+0x47:            nop
71ata_devo_reset+0x48:            movl    %esi,%eax
72ata_devo_reset+0x4a:            shll    $6,%eax
73ata_devo_reset+0x4d:            movl    +0xc(%edi,%eax),%ebx
74ata_devo_reset+0x51:            testl   %ebx,%ebx
75ata_devo_reset+0x53:            je      +0x4d           <ata_devo_reset+0xa0>
76ata_devo_reset+0x55:            movl    +0x204(%ebx),%eax
77ata_devo_reset+0x5b:            andl    $2,%eax
78ata_devo_reset+0x5e:            je      +0x13           <ata_devo_reset+0x71>
79ata_devo_reset+0x60:            pushl   $0
80ata_devo_reset+0x62:            pushl   $0x66		<<<======== War vorher pushl $0xcc
81ata_devo_reset+0x67:            pushl   %ebx
82ata_devo_reset+0x68:            pushl   %edi
83ata_devo_reset+0x69:            call    +0x1846         <ata_set_feature>
84ata_devo_reset+0x6e:            addl    $0x10,%esp
85ata_devo_reset+0x71:            movl    +0x204(%ebx),%eax
86ata_devo_reset+0x77:            andl    $1,%eax
87ata_devo_reset+0x7a:            je      +0x11           <ata_devo_reset+0x8b>
88
89
90Note that the exact position of the instruction that needs to be patched
91may vary depending on the version of Solaris you use. Be extremely careful
92when applying the patch.
93

README.sony

1The Sony CDU-924 was the first drive that has no hardware support
2for CDROM XA2 mode 1. If you want to create a multi session disk,
3you need to switch back to -data (plain CD-ROM)
4
5If you have a Sony drive that gives you problems with multi session disks,
6please always check the following:
7
8	For some Sony drives you may need to call cdrecord -multi -data
9	if you like to create multi-session CD's.
10
11	Some Sony drives do not allow to write XA2 tracks with
12	hardware support of the drive.
13
14There is currently a bug in the Sony code (for _old_ non MMC drives)
15of cdrecord that does not allow you to have different track types
16in one session.
17
18All Sony drives that have CDUxxx type names are _old_ non MMC drives.
19	Here I expect that no XA support is in the firmware.
20
21All Sony drives that have CRXxxx type names are MMC compliant.
22	These drives should support XA-mode2-form1 as it is mandatory with MMC.
23
24NOTE: many HP CD-writers are nased on Sony OEM drives.
25
26
27NOTE: As for 18.5.2001, a fix was introduced that prevented cdrecord
28	to do multi session with new MMC compliant Sony drives.
29
30

README.sun-lofi

1Starting with Solaris 8 (2000), Sun introduced a lofi driver which is
2very similar to my fbk driver from 1988.
3
4The lofiadm command seems to implement the basic idea of my fbkset program.
5
6# lofiadm -a /var/tmp/image.iso
7/dev/lofi/1
8# mount -F hsfs -o ro /dev/lofi/1 /mnt
9# ls /mnt
10etc.
11
12To remove this, you need to:
13# umount /mnt
14# lofiadm -d /dev/lofi/1
15
16The /dev/lofi/.. string may change depending on how many other loopback
17devices you have configured.
18
19It is explained quite clearly in the man page, but you may wish to update
20the README and cdrecord man page to reflect the new way of doing this.
21

README.verify

1Mini-Howto for verifying a selfmade CD
2
31) verifying the data layer
4
5	To verify if all data on the disk can be read,
6	use SCSI verify. This can be done with the
7	sformat utility.
8
9	use: sformat -verify [target] [lun] [scsibus]
10
11	If the CD-R device is connected to target 2 on SCSI bus 0
12	sformat -verify 2  0
13
14	sformat can be found on
15
16	https://sourceforge.net/projects/schilytools/files/sformat/
17	or
18	https://sourceforge.net/projects/schilytools/files/schily-*
19
20	NOTE: Not all CD-ROm drives support verifying
21	NOTE: All TAO tracks end in 2 unreadable run-out sectors
22
232) verifying the filesystem layer
24
25	A quick check is to mount the CD and to use star to read
26	all files on the filesystem.
27
28	mount -r /dev/cdrom /cdrom      (modify for your OS)
29	cd /cdrom
30	star -cPM . >/dev/null
31
32	If no errors can be found, all files are readable.
33
34	star can be found on
35
36	http://sourceforge.net/projects/s-tar/files/
37
38
39	You also may want to compare the filesystem on the CD
40	with the original data. This can be done with star too.
41
42
43	(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v)
44
452a) verifying the iso image before creating the CD
46
47	You may check the filesystem image by mounting it with my
48	"fbk" on Solaris or the loopback driver on Linux.
49
50	On Linux type:
51		mount isoimage.raw -r -t iso9660 -o loop /mnt
52
53	On SunOS type:
54		mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage.raw /mnt
55
56For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi)
57
58	The check the filesystem with:
59
60		(cd /master_for_cd; star -cPM .)|(cd /mnt; star -diff -v)
61
62
63When doing this you have to know about the bugs in Linux/Solaris
64
65Mkisofs before 1.10 and Linux have a bug with timezones.
66If you are using mkisofs-1.10 and newer on Linux, you need to disable
67comparing times:
68
69(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v diffopts=!times)
70
71The same is needed if you are using mkisofs pre-1.10 on Solaris
72
73Solaris has a bug with hardlinks. It generates different inode numbers
74for the hardlinks to a file. This makes it impossible for star to
75check hard links. Use
76
77(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v diffopts=!hardlink)
78
79in this case.
80
81NOTE: Some operating systems have a read ahead bug that causes I/O errors for
82the last file(s) on a CD. This seems at least to be true for all Linux versions
83and for Solaris 7 FCS. For Solaris 7 there is a patch (107465-02) that you should
84install. This I/O error problem does not occur with DAO disks and with TAO disks
85that have been written with cdrecord -pad.
86
87Joerg Schilling
88

README.volmgt

1If you are on NeXT-Step/Apple Rhapsody,
2you must disable volume management before creating a CD.
3On older Solaris versions, you may also need to disable the volume management.
4
5This is needed because newer drives identify themselves correctly
6as CD-ROM drives. Unfortunately, the volume management daemon from
7Sun/Apple does not grok, that there may be a recordable medium in the drive.
8
9You do this on Solaris permanently by editing /etc/vold.conf
10NeXT-Step/Apple Rhapsody will only work correctly if you reboot while
11the CD-R drive is powered off.
12
13On Solaris you need to stop the volume management if you like to use the USCSI
14fallback SCSI transport code. Even things like cdrecord -scanbus
15will not work if the volume management is running.
16
17If the Solaris version you are running is recent enough, libscg will try to
18interace with the volume management. However, Solaris does not allow you to
19access a drive that is maintained by the volume management but does not
20include a medium. Cdrecord will mark this fact by printing a '?' during
21a -scanbus run.
22
23Cdrecord-ProDVD-Clone 2.01a23 (i386-pc-solaris2.9) Copyright (C) 1995-2003 J�rg Schilling
24scsidev: 'USCSI:'
25devname: 'USCSI'
26scsibus: -1 target: -1 lun: -1
27Warning: Using USCSI interface.
28Warning: Volume management is running, medialess managed drives are invisible.
29Using libscg version 'schily-0.7'.
30scsibus1:
31        1,0,0   100) ?
32        1,1,0   101) 'HP      ' 'DVD Writer 200j ' '1.36' Removable CD-ROM
33        1,2,0   102) *
34        1,3,0   103) *
35        1,4,0   104) *
36        1,5,0   105) *
37        1,6,0   106) *
38        1,7,0   107) *
39
40If you insert a medium and close the tray, the medium becomes visible again.
41Note that for this reason, it is impossible to use cdrecord with automated
42scripts if the volume manager is configured to include a CD/DVD writer
43as it is impossible to close the door of the drive.
44
45

readme.mk

1#ident @(#)readme.mk	1.1 07/06/13
2###########################################################################
3# Sample makefile for installing non-localized auxiliary files
4###########################################################################
5SRCROOT=	..
6RULESDIR=	RULES
7include		$(SRCROOT)/$(RULESDIR)/rules.top
8###########################################################################
9
10INSDIR=		share/doc/cdrecord
11TARGET=		README
12#XMK_FILE=	Makefile.man
13
14###########################################################################
15include		$(SRCROOT)/$(RULESDIR)/rules.aux
16###########################################################################
17