This happens every once in a while.
I’ve spent the day trying to get my ethernet port (an Intel EtherExpress Pro/100 interface) working reliably. For several weeks, I’ve had an Internet connection in the room here just fine, but last night it just stopped working in Linux.
More specifically, it would work only haltingly—a burst of traffic would take it down with missed interrupt activity. I’ve tried the eepro100 driver, the e100 driver (two versions), multiple kernel versions, turning APIC on and off, using ACPI for PCI IRQ routing and not using it, running the system clock with the TSC, the ACPI interface, and other random things that I don’t really even recognize.
Finally something occurred to me: last night, when I’d booted into Windows to listen to the game on ‘net radio, the net in Windows hadn’t been working… with similar halting (slow and jerky at best) connectivity. I’d played around with driver settings until I noticed that “enable power saving” was checked for the ethernet interface, and when I disabled it, Windows ‘net jumped to attention and worked fine all night.
With this recollection in hand (after an entire afternoon of frustration in Linux), I booted into Windows and turned power saving back on for the ethernet adapter. Oddly enough, the network throughput in Windows didn’t suffer when I did so… it seemed to still work fine after changing the setting back.
So I rebooted into Linux. And the problem has gone away: Linux connectivity is also up to full speed. Obviously the settings in windows are playing games with settings in an EEPROM or something that the adapter is using to configure itself… and whatever “enable power saving” actually does, twiddling with it can a) break and repair Internet in Windows and b) break [if you don’t change it back] Internet in Linux. 😉
This happens every now and then… With Windows XP, if I tried to boot into Linux after a reboot none of the USB ports would work. I’d have to physically power the machine down from Windows XP, then power back on again and boot into Linux in order to get USB. That’s why I switched to Windows 2000… which seems to have introduced some network issues.
In any case, it goes to show what a house of cards computer hardware is right now. These things are all overdesigned, or “soft designed,” should I say: to spec (or often not) vis-a-vis the dozens of specifications with which they must interact, and then with lots of little imaginary “sliders” to adjust behavior this way and that (of which the driver itself is the largest “slider,” since a great deal of hardware these days are general processing designs with most of the actual behavior for the device type they’re supporting in the driver itself).
It’s “mushy” hardware compared to the days of 8-bit computing where there were either a) no drivers for hardware devices whose properties were hard-wired into the board layouts or b) drivers in ROM with hooks into BASIC via PEEK and POKE and the like.
Sometimes I think it’s a miracle that this new “mushy” world of hardware works at all, especially in combination with the “mushy” world of software and all of its standards. Computing and networks run the world, but they’re also a hodgepodge with tons of historical artifacting crowded throughout the system(s).