: Reading through the linux newsgroups, some people are having trouble
: getting their Sony 55E to work. Some people have succeeded, but
: (who is also having problems), I have a CMD PC10640 PCI/IDE
: controller, so that may be the source of the difficulty.
: After compiling 1.1.94 with the relevant settings (define
: CONFIG_PCI, CONFIG_BLK_DEV_IDE, CONFIG_BLK_DEV_IDECD; undef
: CONFIG_BLK_DEV_HD, CONFIG_BLK_DEV_XD, CONFIG_PCI_OPTIMIZE), and after
: running MAKEDEV.ide to set up the relevant /dev/c* files, I get as far
: as having the kernel probe and recognize the cd, but then it times out
: without mounting. The messages from a typical boot attempt appear
: below. Basically what happens is the kernel tries to mount the cdrom
: for a while, the LED on the cd drive turns from green to orange, and
: eventually the kernel gives up. I don't have a clue where to find out
: what the status and error codes mean, and I haven't managed to get my
: cheapo mail-order company to send me a manual for the cd drive yet.
: linux, my workaround was to copy the Slackware diskette directories
: (a1, a2, etc.) onto my hard drive using MSDOS, then run the
: installation from my hard drive. Obviously not ideal, but
: it beats downloading it all from the net over a modem line!]
Yes, I have the solution! Indeed the problem appears to be with the CMD
card so ther simplest solution is probably to replace it! Anyway the
alternative (which worked for me at least) was explained in the
following message from the author of the IDE-CD stuff (Scott Snyder):
(although note it IS the CMD card that causes the problem)
- The hd is seeing commands meant for the cdrom, and is issuing an
interrupt itself before the cdrom can respond. I notice you have
a Quantum drive, and i've noticed a bit of badmouthing of Quantum
hardware in the hd driver code, so i wouldn't be completely
surprised
if that's the culprit. I'm not familiar those beasts myself,
though,
so i can't say for sure. One interesting thing to do would be
to modify the driver so that if it sees the device busy after an
interrupt, it waits for another interrupt rather than giving up.
One way of doing this would be to insert something like this before
the OK_STAT test near the start of cdrom_decode_status (warning:
this
is completely untested...):
if (stat & BUSY_STAT) {
if (rq->cmd == READ)
ide_handler[dev->hwif] = cdrom_read_intr;
else
ide_handler[dev->hwif] = cdrom_pc_intr;
return 1;
}
(+ appropriate forward decls of cdrom_read_intr & cdrom_pc_intr)
This won't work reliably for `drq_interrupt' devices, but i don't
think the Sony is one of those, anyway...
--
Paul S. Aspinwall Tel: +1-607-255-4711
Newman Lab of Nuclear Sciences FAX: +1-607-254-4552
Cornell University
NY 14853
U.S.A.