Intel piix, ata_piix battle for hard disk and cdrom drive
Problem:
For kernels until 2.6.17 and maybe later the ata_piix controller may detect the cdrom / dvd drive but does not assign a driver letter to it. On the other hand the piix controller may detect the sata hard disk but can not use it.
Cause of the problem:
The ide controller is either handeled by the piix module or the sata_piix module. The module that is loaded first will grab the controller exclusively.
Solution:
Either make sure piix is loaded before sata_piix and hope your hard disk still works.
Or load the experimental sata atapi code by loading the libata module with the parameter atapi_enabled=1.
To do the latter you can either try to set "options libata atapi_enabled=1" in /etc/modules.conf or modify the initrd image (necessary for debian) by loading the module directly with the parameter. Add
For kernels until 2.6.17 and maybe later the ata_piix controller may detect the cdrom / dvd drive but does not assign a driver letter to it. On the other hand the piix controller may detect the sata hard disk but can not use it.
Cause of the problem:
The ide controller is either handeled by the piix module or the sata_piix module. The module that is loaded first will grab the controller exclusively.
- If piix is loaded first, your hard disks might run only in ide mode or might not work at all. The cdrom/dvd drive will work.
- If ata_piix is loaded first, your hard disks will run in sata mode but your cdrom/dvd might not work since the atapi sata code is disabled by default (it's still experimental).
Solution:
Either make sure piix is loaded before sata_piix and hope your hard disk still works.
Or load the experimental sata atapi code by loading the libata module with the parameter atapi_enabled=1.
To do the latter you can either try to set "options libata atapi_enabled=1" in /etc/modules.conf or modify the initrd image (necessary for debian) by loading the module directly with the parameter. Add
libata atapi_enabled=1to /etc/mkinitrd/modules. After that re-create the initrd via
mkinitrd /boot/initrd.img-`uname -r`Make sure the original initrd has been replaced. Another possibility would be modifying the kernel parameter line in /boot/grub/menu.list by adding
ide1=noprobe libata.atapi_enabled=1This should also be possible with a new installation of debian or ubuntu where the cdrom is not detected and the installation fails.