Read from cd failure (ISO9660 haiku-r1-alpha2.iso)
|Reported by:||aldeck||Owned by:||axeld|
Read from cd failure (ISO9660 haiku-hrev1-alpha2.iso)
Reading fails on the file apps/WebPositive/libwebcore.so always at 19,922,944 (0x1300000) bytes in length.
The correct length of libwebcore.so is 20,993,020.
tail -f /var/log/syslog
KERN: ata 0 error: command failed, error bit is set. status 0x51, error 0x54
KERN: atapi 0-0 error: device indicates transfer error after dma
KERN: check_sense: Illegal request
KERN: file_cache: read pages failed: General system error
The cd checksum is valid on linux,
dd if=/dev/sr0 | md5sum
Another test: with that same cd, extracting libwebcore.so from the cd succeeds on linux (with correct size and checksum) although it fails on haiku (hrev36829 from trunk) (same machine, same cd).
This is the ISO9660 image, anyboot has no problem. Reproducible running on alpha2 (live cd installer) and hrev36829 from trunk.
Machine is a recent and reliable Q6600 / 4GB.
Attached is the result of the instructions from Ingo quoted below (cf http://www.freelists.org/post/haiku/trouble-installing-R1A2,19 )
First of all install a breakpoint where the first error message is logged (ATAChannel::FinishRequest()): breakpoints ([symbol FinishRequest__10ATAChannel] + 0x129) Then trigger the error (I guess a "cat .../libwebcore.so > /dev/null" should do). I'm not sure, if ATAChannel::FinishRequest() is executed in the same thread that requests the I/O operation. If not, find the thread ("calling periph_io") and get a stack trace. The second parameter of periph_io() is an io_operation* -- pass it to the "io_operation" command. The operation has a parent -- pass it to "io_request". This one might also have parent -> "io_request". And so on. The stack trace should also yield an IOCache or IOSchedulerSimple pointer (depending on which is used). Please pass it to "io_scheduler". Also use the address for a "dw <address> 32".
Change History (12)
follow-up: 3 comment:2 by , 10 years ago
|Component:||- General → Drivers/Disk|
|Status:||new → assigned|