Can I prevent an IDENTIFY PACKET DEVICE command to a specific device at boot?
- by Brian Spisak
This is related to a previous question related to installation that is now resolved. I'm opening a new question, because I still need to get my DVD drive working.
Problem:
Failed boot when my ASUS DRW-24B1/ST DVD drive is attached to my asmedia ASM1061.
Symptom:
ata8.00: exception Emask 0x52 Sact 0x0 SErr 0xffffffff action 0xe frozen
ata8: SError: { blah blah }
ata8.00: failed command: IDENTIFY PACKET DEVICE
ata8.00: cmd blah blah
res blah blah (ATA bus error)
ata8.00: status: { DRDY }
ata8: hard resetting link
Background:
The ASM1061 is a PCIe to SATA bridge providing 2 x 6Gb/s ports and is supposed to be fully compliant to SATA specs.
I just discovered in the fine print of my ASUS P8Z77-V pro motherboard that "These SATA ports are for data hard drivers only. ATAPI devices are not supported."
However, I have already installed Windows 7 using this drive and I can run the Ubuntu 12.04 installer from it as well. The only time I have a problem is during Ubuntu boot when it tries an IDENTIFY PACKET DEVICE which seems to be an ATAPI command.
I can't simply switch this device to another SATA port because they are already allocated to other devices. (My chipset's 2 x 6Gb/s are connected to my boot SSD and a fast HDD while the 4 x 3Gb/s ports are running a RAID 5 array.) If this can't be fixed or worked around, I suppose I'll have to go buy SATA add-in card. Blech.
Thoughts:
If indeed this is a device specific issue (that it doesn't support ATAPI discovery) then I can't expect - is it udev? - to work with it. But, it seems that Windows and even the Ubuntu installer work just fine. So why does udev have a problem?
At the end of the day, it would be nice to have the DVD working under Ubuntu, but I can live without it. But, as this is a dual-boot machine, I can't physically disconnect it because I want it to work with Windows. (And physically disconnecting it every time I want to boot Ubuntu is NOT an option. ;-)
Questions:
Should this be considered a bug? My feelings are that if it works with other OS that it should probably work with Ubuntu as well.
How can I work around this problem? I have a limited knowledge of linux internals, but it seems I should be able to somehow tell udev (or whatever is doing the discovery) to ignore that device. Is there a way?