I have a CentOS 4.2 system that had a bad CD-ROM drive. Every time I inserted a CD, the system would hang (no kernel panic, but no response to mouse, keyboard, or even the network - all I could do was hit the reset button). Today I replaced the CD-ROM drive with another I had lying around. The new drive is a 24x10x40 CD-RW. I don't know the exact model of the motherboard (I should have looked while I had the case open earlier this afternoon), but I know it's an Intel desktop motherboard that's at least 5 years old with a 1.7 GHz Pentium 4. Anyway, to make a long story short, now the system won't even boot! Here are the last few lines on the screen:
Starting udev: [ OK ] Initializing hardware... storage network audio done [ OK ] Kernel panic - not syncing: drivers/ide/pci/piix.c:394: spin_lock (drivers/ide/ide.c:c037bb68) already locked by drivers/ide/ide-iops.c/ 1234
Any ideas how I can work around this? I've booted from the CentOS 4.2 CD #1 into rescue mode, but I don't know what I should look for next. Other than removing the CD-ROM drive, what can I do to fix this problem?
Thanks in advance for any help, Alfred
On Dec 27, 2005, at 18:09, Alfred von Campe wrote:
Any ideas how I can work around this? I've booted from the CentOS 4.2 CD #1 into rescue mode, but I don't know what I should look for next. Other than removing the CD-ROM drive, what can I do to fix this problem?
I'll answer (well, update) my own post. Removing the CD-ROM drive definitely fixes the problem. So, is this CD-ROM drive just not compatible with my motherboard? If so, is there a way to make it compatible (i.e., some jumper settings)? If more details are needed, I can disconnect the computer again, remove it from under the desk (not an easy place to get to), and get the motherboard and CD-ROM drive details. I really want to get this to work. For now, I can live without the CD-ROM. If I need to go an buy a new (compatible) CD-ROM drive, that's OK. I just need to know what I'm looking for.
Thanks, Alfred
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Tue, Dec 27, 2005 at 10:22:55PM -0500, Alfred von Campe wrote:
On Dec 27, 2005, at 18:09, Alfred von Campe wrote:
Any ideas how I can work around this? I've booted from the CentOS 4.2 CD #1 into rescue mode, but I don't know what I should look for next. Other than removing the CD-ROM drive, what can I do to fix this problem?
I'll answer (well, update) my own post. Removing the CD-ROM drive definitely fixes the problem. So, is this CD-ROM drive just not compatible with my motherboard? If so, is there a way to make it compatible (i.e., some jumper settings)? If more details are needed, I can disconnect the computer again, remove it from under the desk (not an easy place to get to), and get the motherboard and CD-ROM drive details. I really want to get this to work. For now, I can live without the CD-ROM. If I need to go an buy a new (compatible) CD-ROM drive, that's OK. I just need to know what I'm looking for.
You might want to first check your BIOS settings for the CDROM drive, and then the data cable. I really don't think there is such a thing as an incompatible CDROM, but I have seen some BIOS settings making CDROM drives behave weirdly.
- -- Rodrigo Barbosa rodrigob@suespammers.org "Quid quid Latine dictum sit, altum viditur" "Be excellent to each other ..." - Bill & Ted (Wyld Stallyns)
On Wed, 2005-12-28 at 01:35 -0200, Rodrigo Barbosa wrote:
You might want to first check your BIOS settings for the CDROM drive, and then the data cable. I really don't think there is such a thing as an incompatible CDROM, but I have seen some BIOS settings making CDROM drives behave weirdly.
Don't forget you can completely _disable_ the sucker in the BIOS. Yeah, you can't boot from it, but you only need that during an install.
In fact, I keep some old Promise Ultra33 PCI cards around, with the BIOS DIP package yanked off, explicitly for problematic CD-ROMs that have issues during the POST or early in the on-chipset support.
Thanks for all the responses.
You might want to first check your BIOS settings for the CDROM drive, and then the data cable. I really don't think there is such a thing as an incompatible CDROM, but I have seen some BIOS settings making CDROM drives behave weirdly.
What type of BIOS settings are you talking about? The system is currently up and running, so I can't easily check it (but I'll probably reboot it later today).
Don't forget you can completely _disable_ the sucker in the BIOS. Yeah, you can't boot from it, but you only need that during an install.
Doh! Why didn't I think of that?
I would recommend checking the master/slave jumper settings. Is the cdrom drive the only drive on the cable? On what positions does the bios report the drive (primary/secondary channel, master/slave?). changing DMA settings for the drive may help too. How does Linux recognize the drive (dmesg + /proc on which, as which drive hda, hdb, hdc, hdd?)
The master/slave setting is set to exactly the same setting (slave) as the CD-ROM drive it replaced (there is another drive on that same cable). And how do I change the DMA settings? I think this is what may be causing the problem. Linux currently doesn't recognize the drive, as it is disconnected. But I believe it's /dev/hdb (although it might be /dev/hdd). There are two hard disks at /dev/hda and /dev/ hdc that are mirrored together and mounted as /home.
Alfred
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, Dec 28, 2005 at 08:24:08AM -0500, Alfred von Campe wrote:
You might want to first check your BIOS settings for the CDROM drive, and then the data cable. I really don't think there is such a thing as an incompatible CDROM, but I have seen some BIOS settings making CDROM drives behave weirdly.
What type of BIOS settings are you talking about? The system is currently up and running, so I can't easily check it (but I'll probably reboot it later today).
DMA, Access mode, IRQs, IDE controle related settings. It will depend on your exact BIOS version and brand.
I would recommend checking the master/slave jumper settings. Is the cdrom drive the only drive on the cable? On what positions does the bios report the drive (primary/secondary channel, master/slave?). changing DMA settings for the drive may help too. How does Linux recognize the drive (dmesg + /proc on which, as which drive hda, hdb, hdc, hdd?)
The master/slave setting is set to exactly the same setting (slave) as the CD-ROM drive it replaced (there is another drive on that same cable). And how do I change the DMA settings? I think this is what may be causing the problem. Linux currently doesn't recognize the drive, as it is disconnected. But I believe it's /dev/hdb (although it might be /dev/hdd). There are two hard disks at /dev/hda and /dev/ hdc that are mirrored together and mounted as /home.
Having a Slave drive in a interface where a Master drive is nor present violates the ATA standard, and can cause problems with some chipsets. Unfortunately, that is a very common practice.
[]s
- -- Rodrigo Barbosa rodrigob@suespammers.org "Quid quid Latine dictum sit, altum viditur" "Be excellent to each other ..." - Bill & Ted (Wyld Stallyns)
DMA, Access mode, IRQs, IDE controle related settings. It will depend on your exact BIOS version and brand.
Well, I couldn't find a way to change any of these settings in the BIOS, as the drive was set to "autodetect". Then I changed it to be "CDROM", and that did change some settings (like disable DMA), but didn't fix the problem. Lastly, I downloaded the latest BIOS for my motherboard (an Intel Desktop Board D850GB), and that seems to have fixed the problem, as I didn't change any other settings.
Having a Slave drive in a interface where a Master drive is nor present violates the ATA standard, and can cause problems with some chipsets. Unfortunately, that is a very common practice.
But I do have a master drive on that channel. Like I mentioned before, there are two hard disks in /dev/hd{a,c}, and the CD-ROM is / dev/hdb (like I suspected).
Anyway, thanks for everyone's help. I am up and running with a CD- ROM drive again.
Alfred
Alfred von Campe alfred@110.net wrote:
But I do have a master drive on that channel. Like I mentioned before, there are two hard disks in /dev/hd{a,c}, and the CD-ROM is / dev/hdb (like I suspected).
That's never a good idea -- both performance and stability-wise. When you have a DMA ATA device, put it on its own channel. The master/slave design was for old EIDE using PIO ATA.
On Wed, 2005-12-28 at 08:24 -0500, Alfred von Campe wrote:
Thanks for all the responses.
You might want to first check your BIOS settings for the CDROM drive, and then the data cable. I really don't think there is such a thing as an incompatible CDROM, but I have seen some BIOS settings making CDROM drives behave weirdly.
What type of BIOS settings are you talking about? The system is currently up and running, so I can't easily check it (but I'll probably reboot it later today).
look for DMA settings for the drive. turning DMA off could help
The master/slave setting is set to exactly the same setting (slave) as the CD-ROM drive it replaced (there is another drive on that same cable). And how do I change the DMA settings? I think this is what may be causing the problem. Linux currently doesn't recognize the drive, as it is disconnected. But I believe it's /dev/hdb (although it might be /dev/hdd). There are two hard disks at /dev/hda and /dev/ hdc that are mirrored together and mounted as /home.
As this does not seem the cause of the problem, I would tend to suspect the cable. Is the cable Ultra-DMA capable (high density 80 wires)? In any case, replace it with anUltra-DMA capable cable
Louis
Louis Lagendijk louis@lagendijk.xs4all.nl wrote:
look for DMA settings for the drive. turning DMA off could help
Of course, that turns off DMA for the _entire_ channel.
If you're shunting the ATA channel into PIO (e.g., for an ATAPI device like a CD-ROM), back to DMA (e.g., for an ATA device like a fixed disk), then back to PIO, etc..., that's the best way to absolutely destroy performance on your ATA channel.
Remember what ATA is -- it's a "dumb," 16-bit [PC/]AT Attachment (ATA) channel with integrated drive electronics (IDE) on the end-devices themselves. If the master IDE and slave IDE are radically different, they will constantly reset the ATA bus when each takes control in the best case, or have grave compatibility issues in the worst case.
When you use your CPU to do Programmed I/O (PIO) -- the IDE isn't as much of an issue. But when the IDE is not bothering the CPU to do Direct Memory Access (DMA), that's a serious concern. Especially if one device is doing DMA, and then the other device is doing PIO.
As this does not seem the cause of the problem, I would tend to suspect the cable. Is the cable Ultra-DMA capable (high density 80 wires)?
The majority of ATA device IDEs autodetect the type of cable. During the post, if they don't detect the extra 40 conductors (80 total), they will reduce signaling to 8MHz maximum. I.e., - UltraDMA mode 2 = 16-bit x 8MHz DDR (33MBps) - PIO Mode 4 = 16-bit x 8MHz (16MBps)
In any case, replace it with an Ultra-DMA capable cable
Hate to be anal, but that's a misnomer and an incorrect description.
It is commonly referred to as an Ultra66/100/133 capable cable.
Standard 40 conductors are capable of 8MHz, including the 4.17, 5.5 and 8.33MHz DDR signaling (8.3, 11 and 16.6MHz, effective) used in UltraDMA modes 0 (16MBps), 1 (22MBps) and 2 (33MBps) -- commonly and collectively referred to as Ultra33.
It's only when higher signals are used for UltraDMA modes 3 (50MBps), 4 (66MBps), 5 (100MBps) and 6 (133MBps) that you need the 80 conductor. I don't know what the signaling is, but I assume it is 12.5 (3), 16 (4), 25 (5) and 33 (6) MHz DDR, respectively. I could be mistaken on Ultra133, and maybe 133MBps is 16MHz QDR.
On Tue, 2005-12-27 at 22:22 -0500, Alfred von Campe wrote:
On Dec 27, 2005, at 18:09, Alfred von Campe wrote:
Any ideas how I can work around this? I've booted from the CentOS 4.2 CD #1 into rescue mode, but I don't know what I should look for next. Other than removing the CD-ROM drive, what can I do to fix this problem?
I'll answer (well, update) my own post. Removing the CD-ROM drive definitely fixes the problem. So, is this CD-ROM drive just not compatible with my motherboard? If so, is there a way to make it compatible (i.e., some jumper settings)? If more details are needed, I can disconnect the computer again, remove it from under the desk (not an easy place to get to), and get the motherboard and CD-ROM drive details. I really want to get this to work. For now, I can live without the CD-ROM. If I need to go an buy a new (compatible) CD-ROM drive, that's OK. I just need to know what I'm looking for.
I would recommend checking the master/slave jumper settings. Is the cdrom drive the only drive on the cable? On what positions does the bios report the drive (primary/secondary channel, master/slave?). changing DMA settings for the drive may help too. How does Linux recognize the drive (dmesg + /proc on which, as which drive hda, hdb, hdc, hdd?)