Problem with reading CD-R/W written in TAO mode

From: Borsenkow Andrej (Andrej.Borsenkow@mow.siemens.ru)
Date: Sun May 05 2002 - 09:00:00 EST


I am using Mandrake kernel 2.4.18-13mdk (based on 2.4.19-pre7). There is
strange problem in raw-reading some CD-R/Ws (e.g. to verify checksum
like md5sum /dev/cdrom) reported by several people - read aborts with
I/O error at the end.

Experimenting with different CD-R/Ws lead to conclusion that CD-Rs
written in DAO are read correctly and those written in TAO (and possibly
multisession) give an error. Printed CD-Rs never show any error. It does
not seem to matter what program has been used to create CD - identical
problem appears using mkisofs/cdrecord and Nero (I cannot verify DAO
with cdrecord because it is not supported for my CDD-3610).

My first thought was that for some reason wrong CD size has been
reported, so I added printk to cdrom_read_toc() to verify the real size
it gets (toc->capacity). To my surprise bot DAO and TAO written CD-RWs
report identical capacity but reading disk written in TAO consistently
ends with error. There are no problems using both CDs as far as I can
tell.

Here are results of writing the same image:

-rw-r--r-- 1 root root 22118400 May 4 14:24 mindi.iso

once in DAO/close disk and once in TAO/leave disk open:

{pts/0}% dd if=/dev/cdrom of=/dev/null bs=2048
10800+0 records in
10800+0 records out
{pts/0}% dd if=/dev/cdrom of=/dev/null bs=2048
dd: reading `/dev/cdrom': Input/output error
10788+0 records in
10788+0 records out

and in dmesg:

{pts/2}% dmesg | grep 16:0
blkdev_size: dev = 16:00 size = 4294967295
ide-cd capacity = 10800 dev = 16:00
blkdev_size: dev = 16:00 size = 21600
ide-cd capacity = 10800 dev = 16:00
blkdev_size: dev = 16:00 size = 21600
end_request: I/O error, dev 16:00 (hdc), sector 43152
end_request: I/O error, dev 16:00 (hdc), sector 43156
end_request: I/O error, dev 16:00 (hdc), sector 43160
end_request: I/O error, dev 16:00 (hdc), sector 43164
end_request: I/O error, dev 16:00 (hdc), sector 43168
end_request: I/O error, dev 16:00 (hdc), sector 43172
end_request: I/O error, dev 16:00 (hdc), sector 43176
end_request: I/O error, dev 16:00 (hdc), sector 43180
end_request: I/O error, dev 16:00 (hdc), sector 43184
end_request: I/O error, dev 16:00 (hdc), sector 43188
end_request: I/O error, dev 16:00 (hdc), sector 43192
end_request: I/O error, dev 16:00 (hdc), sector 43196

errors are:

hdc: command error: status=0x51 { DriveReady SeekComplete Error }
hdc: command error: error=0x54
end_request: I/O error, dev 16:00 (hdc), sector 43152
hdc: command error: status=0x51 { DriveReady SeekComplete Error }
hdc: command error: error=0x54
end_request: I/O error, dev 16:00 (hdc), sector 43156
hdc: command error: status=0x51 { DriveReady SeekComplete Error }
hdc: command error: error=0x54
... etc

Please, tell if I can provide any more info.

regards

-andrej

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue May 07 2002 - 22:00:24 EST