Like a lot of folks who run Linux, I often go months between reboots. Usually, that makes me feel all spiffy and great, but sometimes it means that I've forgotten something important along the way that will bite me when I least expect it to. Today, as you have probably guessed by now, was one of the latter sort.
I use Synergy pretty heavily here at work to share one keyboard and mouse between my Gentoo and WIn2k machines; I absolutely adore it, and it's been a huge productivity booster for me. At this point, with my current setup, I don't think I could live without it. However, it does have a small tendency to freak out every now and then, causing your mouse pointer to get lost in the cold, dark ether, and not to reappear without restarting X. Generally it's not a big deal to fix--I just switch over to a text console and do
/etc/init.d/xdm restart and I'm back in business (minus the state of my workspace). Today, though, trying to switch over into console land locked up the whole machine; based on the graphical noise that got introduced to the display when it died, I think the framebuffer may have been upset about things, causing the kernel to disappear in a puff of unhappiness.
I couldn't ssh into it from Win2k, so my only recourse left was a hard reset. Everything was going swimmingly until I saw this unlikely and ominous message during startup:
/dev/eth0 does not exist!
Now, this Linux box is a P3 450, almost six years old, so at this point I'm starting to be a little concerned about hardware starting to fail, which is something I just don't have time for this week. Panic started to sink in as I ran down the options of what might be wrong; obviously, the kernel wasn't seeing my card, but I hadn't touched the kernel in six months or more. How could it have been working all that time if it wasn't "right"? What could possibly have changed since my last reboot?
It dawned on me finally that I'd recently gotten the 2005.1 baselayout update. Which had overwritten my
/etc/modules.autoload.d/kernel-2.6 file. Which I hadn't thought was an issue, because I usually compile in everything that I will need on a daily basis. Except, apparently, for my NIC, which for some inexplicable reason had been compiled as a module. I'm sure that, back in February or whenever I rolled it that it seemed like a brilliant idea, but it's pretty freaking daft in retrospect.
A one-line change later, I am back in business and feeling pretty dumb about the entire thing.
So, kids, today's lessons are:
- Be extra careful when you apply a baselayout update
- If you need a driver all the time, compile it straight into the kernel so that you don't forget it later on
/dev/eth0 does not exist? Check out your
- Mood: relieved
- Music: Gary Numan - "A Prayer for the Unborn"