I have a CD-ROM and a CD-RW drive in my system; ATAPI drives, known to Linux as /dev/hdc and /dev/hdd respectively. The CDROM can also be referred to as /dev/cdrom by means of a symbolic link. To make xcdroast work, these devices must appear as SCSI devices to xcdroast. Of course the drives (at least the CD-ROM) must remain usable with CD-music players like workman or xmcd, and be mountable as data drives (on mount points /cdrom and /cdrw respectively).
OK this is what I did:
1. Compiled kernel (in my case, 2.2.18pre21) with the following options:
2. Changed /etc/fstab, where it used to say
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0 /dev/hdd /cdrw iso9660 defaults,user,noauto 0 0
to
/dev/scd0 /cdrom iso9660 defaults,ro,user,noauto 0 0 /dev/scd1 /cdrw iso9660 defaults,user,noauto 0 0
3. In the /dev directory, where cdrom used to be a symlink to hdc, I made it a symlink to scd0. Ditto for cdrw which now points to scd1.
4. In /etc/lilo.conf, I added a line
append="hdc=ide-scsi hdd=ide-scsi"
And then, of course, re-ran lilo.
The result of this is that the IDE devices /dev/hdc and /dev/hdd seem to have disappeared, to be replaced by the SCSI devices /dev/scd0 and /dev/scd1. In actual use, there is no difference, other than that xcdroast now works. /cdrom can still be mounted, and also used by workman, as before; and so can /cdrw. xmcd must be told about the new state of affairs (that the CDROM is a SCSI one) by means of xmcdconfig. It all works now.