Sunday, December 02, 2007

Another Reason I Hate Microsoft

If you have read this blog for a while, you know I prefer Linux (especially Ubuntu) over Windows. While Windows "just works" most of the time, the crashing, obscure errors, lack of good programming in the software, etc has left me wanting more...ergo I use Linux. It may not be overly flashy, but it does work pretty well, most of the time. I have installed it on laptops and desktops as well as servers. It works good enough and is much more stable than Windows, IMHO.

The other day, I was updating my dual boot (WinXP/Ubuntu Linux) machine with all the latest patches from Microsoft. I noticed there was a new NIC driver (that was 6+ months old) that I had not installed yet (from Microsoft) so I let the "Windows Update" program do its thing. Once installed I rebooted and made sure everything worked.

The next day I go to log on to the PC, but since I am using it, I log onto Linux (I do not use Windows at home very much). The machine boots and the first thing I notice is that there is no network link. The router does not show a powered on machine plugged into it. I panic, thinking the on-board NIC has failed. I gather myself and reboot the router and cable modem (not in that order though) and then reset the IP address. Nothing. I am not getting any DHCP. I reboot into Windows and oddly enough, I am able to get online, so the NIC is not dead.

I reboot back into Linux and the same thing occurs. Frustrated, I grab my laptop and start looking for answers but find nothing. Puzzled, I decided to do a backup of all my important data (what little of it was on the Linux partition) and reload the machine since it has been upgraded a few times over the original install and was acting a bit funky sometimes.
After I reload the machine, I notice I am still not getting any network. Now I am really starting to panic because I cannot figure out why a fresh install cannot detect one of the most common chipset in the world for NIC's (Realtek 8139). I unplug the router and plug the cable modem directly into the PC...same thing.

I grab the laptop and frantically search the web (Googling "realtek 8139" and "gutsy gibbon") and hit upon the answer. It seems that the new driver I installed has a "feature" that turns off the NIC until WINDOWS boots up again. The Linux kernel tries to wake up the NIC but it can't (the kernel does not have the newest driver) so it just leaves it alone. The article said I had a couple of choices. I could: recompile the kernel with the newest drivers on the Linux side, turn on "wake on LAN" from the Windows side, roll back the Windows driver, or just unplug the power from the PC for 15 seconds when I want to boot to Linux.

Since my efforts to recompile the Linux kernel have not been successful in the past and unplugging the machine seems silly and that rolling back a Windows driver can be a disaster, I decided to just turn on the "Wake on Lan" feature in Windows and live with a mild security risk.

I think this "feature"is a pile of crap. This only affects people who dual boot Windows and another OS. When Windows shuts down, it puts the NIC into a "coma" that can only be reversed if Windows boots up or you unplug the PC. Turning off your PC does not stop the flow of power into the mobo. Only unplugging does that and you need to break the power to get the NIC to clear the "coma" flag that is set when Windows shuts down.

Argh. I hate Microsoft.

No comments: