Comment 45 for bug 8196

Revision history for this message
Gavin McCullagh (gmccullagh) wrote :

(In reply to comment #43)
> I tried your proposal and it did work for my machine too!
>
> However the correct paths are the following:
> insmod /lib/modules/2.6.xxxxx/kernel/drivers/cdrom/cdrom.ko
> insmod /lib/modules/2.6.xxxxx/kernel/drivers/ide/ide-core.ko
> insmod /lib/modules/2.6.xxxxx/kernel/drivers/ide/ide-generic.ko
> insmod /lib/modules/2.6.xxxxx/kernel/drivers/ide/ide-cd.ko
>
> .. in this order.

Thanks. Was writing from memory but now you corrected it those are of course in
ide/
dir.

> I could install ubuntu, but now with warty installed, it also doesn't detect the
> 2cdroms anymore. Is there a way to fix
> this? The modules above are loaded... but it doesn't work :\

Out of curiosity, did you try Joe's solution:

  "turning off ide mapping for the sata drive in the bios."

We have the same problem. I didn't get time to work at it yet. However, for
what it's
worth here is my current understanding. I imagine it's flawed so please correct me.

The SATA driver loads first and grabs hold of the cdrom block device or bus
along with
the SATA one. When you load cdrom drivers there is no available device for them.
Might this even be a kernel bug? In the installer process, the system probes
everything and this is what happens. By following the above workaround, you
preload
the cdrom drivers prior to loading sata which prevents this.

My understanding of the Debian/Ubuntu boot process is not great, but AIUI the
system
boots initially using a ramdisk (eg /boot/initrd.img) rather than the main root fs.
This small root filesystem contains basic drivers (incl cdrom, sata & fs) and utils
to get up and running before the kernel switches (pivots?) root over to the real
hard disk one. If I'm correct in this, the SATA driver is loaded before anything on
the common /etc/ is even available so modifying these is irrelevant. The early
stages of the boot process are dictated by the ramdisk.

So, any workaround would have to be done by changes on the ramdisk. You can mount
it with a command like this:

  mount -t auto -o loop /initrd.img /mnt/tmp/

The only relevant file in there seems to be:

  etc/modprobe.devfs

but I'm not exactly sure what one needs to modify. You could try creating a file

  etc/modules

and putting

  ide-generic
  ide-cd

in it but I've no idea if this will actually work. It's also a poor solution
in the long run as kernel upgrades will break it again. It's a dirty workaround
at best.

If I get a chance to test this out myself I will report back.