Always remember, that you can still use corrupt CD-ROMs as coasters. :-)
Please check first, that the writer works under the software it is shipped with (=under another operating system). Concretely:
If "it doesn't even work" with the accompanied software you have a hardware conflict or defective hardware. If it works and you use loadlin to boot Linux, then that is a problem with loadlin. Loadlin makes a warm-boot with most of the hardware already initialized and that can confuse the Linux kernel.
Under Linux, some versions of the C-library are incompatible (buggy), so that an application linked against one version will not work with another. An example for an error triggered by pre-compiled binaries is the following:
[root@Blue /dev]# cdrecord -eject dev=0,6,0
cdrecord: No such file or directory. No read access for 'dev=0,6,0'.
The solution is to install a newer C-library.
Try to use Linux. Installation and configuration of SCSI drivers for DOS is the hell. Linux is too complicated? Ha!
Most likely those errors are caused by
Under various circumstances SCSI devices dis- and reconnect themselves (electronically) from the SCSI bus. If this feature is not available (check controller and kernel parameters) some writers run into trouble during burning or fixating the CD-R.
Especially the NCR 53c7,8xx SCSI driver has the feature disabled by default, so you might want to check it first:
NCR53c7,8xx SCSI support [N/y/m/?] y
always negotiate synchronous transfers [N/y/?] (NEW) n
allow FAST-SCSI [10MHz] [N/y/?] (NEW) y
allow DISCONNECT [N/y/?] (NEW) y
Some people reported problems with playing their self-written CDs. Very old audio players or car devices can have problems with CD-Rs, although this is extremly rare. Quite frequent are problems with CD-RWs, because they don't reflect the laserlight as good as CD-Rs and factory-pressed "silver" discs.
By inserting the SCSI-hostadaptor emulation, the naming of SCSI devices changes. If your scanner was /dev/sg0 before, it might be /dev/sg1 or /dev/sg2 now. Prominent kernel developers did not think this is completely braindead and denied solutions like devfs in the past. But that is another story, the first thing you should try is to set the link /dev/scanner to point to the actual generic SCSI device. Examples:
cd /dev
ls -l scanner # shows current setting
ln -sf sg2 scanner
# test the scanner
ln -sf sg1 scanner
# test the scanner
# and so on
Application developers should carefully think about support for this dangerous and error prone naming scheme. Please consider at least to use intermediate solutions like the SCSI coordinates used by cdrecord.