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