Sunday night I forgot to plug my laptop in, and so it was off in the morning. Not a big deal it happens all the time. Except this time, Linux wouldn’t boot.
The boot process kept hanging up here:
May 31 07:52:07 localhost kernel: Yenta IRQ list 06b8, PCI irq11
May 31 07:52:07 localhost kernel: Socket status: 30000006
May 31 07:52:07 localhost kernel: Yenta IRQ list 06b8, PCI irq11
May 31 07:52:07 localhost kernel: Socket status: 30000006
May 31 07:52:07 localhost kernel: Yenta IRQ list 0000, PCI irq11
May 31 07:52:07 localhost kernel: Socket status: 30000010
A quick check with Google showed that Yenta controls PCMCIA stuff. That concerned me a little, because in one slot I have a slug, and in the other I have a CF card reader, which when empty just registers as another slug. All of the recommendations I got were “pull your cards, reboot, and it should work”. What if I have no cards to pull? (Pulling the CF card reader didn’t help BTW).
The vast majority of the problems I found on Google seemed to be wifi related, which made me wonder if my internal wifi is still somehow connected to the motherboard as a PCMCIA device. That concerned me too, because it’s a lot harder to pull an internal device.
Well, in the end I beat it. Rather than go through all the sordid details, I’ll just post here what I did.
First, boot in single user mode.
Second, run this:
chkconfig --level 345 pcmcia off.
Third, get back into runlevel 3 with this:
telinit 3.
Log in normally and restart the PCMCIA service. In Redhat 9 that’s
sudo /etc/rc.d/init.d/pcmcia start
It hung there, but when I pressed control C, I noticed that my wifi started working (I was tailing /var/log/messages)
At this point it was fixed for me. I don’t know why, but there it is. I still needed to turn the auto start for pcmcia back on though, with:
sudo chkconfig --level 345 pcmcia on
That’s it. I’m partly posting this here because I didn’t find anything so concise with Google, and Google usually greps my blog pretty quickly. Hope it helps.