Linux Hardware Support Better Than Windows

Something I often hear from people that talk about Linux on the desktop is this: people want to be able to go to the store, buy hardware, and be confident that it will Just Work.

I would like to point out that things are rarely this simple on Windows. And, in fact, things are often simpler on Linux these days.

Here’s the example that prompted this post.

I have a computer that’s about 4 years old. It’s my main desktop machine at home. It was still fast enough for me, but has been developing all sorts of weird behaviors. Certain USB ports stopped working altogether a few months ago. Then it started hanging during POST whenever I’d try to reboot — but would still boot OK about 80% of the time after a power cycle. Then it started randomly losing contact with my USB mouse until a reboot. And the last straw was when the display started randomly going out. I’ve told everyone that my machine has cancer and is slowly dying.

The case is a pretty nice full tower — solid and sturdy. I have an 160GB IDE drive in it. So I figured I will upgrade the motherboard, CPU, RAM, and add a 500GB SATA drive since they’re so cheap these days and I’m running out of space. I’d also have to buy a new video card since my old one was AGP and the new motherboard only has PCI Express for video. So about $700 later from Newegg (I got a Core 2 Duo E6750), the parts arrived.

I spent some time installing it all. The motherboard had only one IDE channel, and I didn’t have any IDE cable long enough to connect both the IDE hard disk and the optical drive, so I popped in an old Maxtor/Promise PCI Ultra133 controller I had sitting around to use with the DVD burner.

Now, to recap, the hardware that the OS would see as new/different is: CPU, RAM, IDE controller, SATA controller, Promise IDE controller, integrated NIC, sound, video.

Then the magic smoke test.

I turned on the machine. Grub appeared. Linux started booting.

Even though I had switched from the default Debian “supports everything” kernel to a K7 kernel, it still booted.

And every single piece of hardware was supported immediately. There was no “add new hardware” wizard that popped up, no “I’ve found new hardware” boxes. It just worked, silently, with no need to tell me anything or have me click on anything.

Only one piece required configuration: the NIC, thanks to some udev design flaws (it got renamed from eth0 to eth1 by udev). That took 20 seconds. Debian saw the IDE HDD, the SATA drive, the Promise controller, the DVD burner, the video card, the sound, and it all worked automatically. And Debian is not even a distro that occurs to a lot of people when they think of great hardware support.

Now let’s turn to Windows.

The Windows Nightmare

I have a legal copy of Windows XP Home that was preinstalled on the machine when I got it. I resized its partition down to about 20GB so that I could use 140GB for Linux. I use it rarely, primarily for gaming, and I’ve bought about 3 games in the last 4 years. I usually disconnect the network when I boot to Windows, though I do keep it current with updates.

I did some research on what Windows was going to do when I replace the hardware. The general consensus from people on the ‘net is that you can’t just replace a motherboard and expect everything to be happy. There were generally three different approaches suggested: 1) don’t even try, just reinstall; 2) do a rescue install after you move over; and 3) use sysprep. The rescue install has to be done by booting from an XP install CD, then picking a rescue install option somewhere. It will overwrite your installed Windows with the version from the CD. That means that I’d have to re-apply SP2, though bits of it that didn’t get overwritten would still be on the hard disk, and who knows what would happen to the registry.

Option #3 was to download sysprep (must have the Genuine Disadvantage ActiveX to get the free download from MS). Sysprep is designed to be used just prior to taking an image with ghost for replication. It removes the hardware-specific config (but not the drivers), as well as the product key, from the machine, but otherwise leaves it untouched. On the next boot, you get the “Welcome to XP” wizard.

One other strike against #2 is that Compaq “helpfully” didn’t ship any install CDs with the machine. Under Windows, they did have a “create rescue CD” tool, which burned 7 CDs for me. But they are full Compaq-specific CDs, not one of them an XP CD, *AND* they check on boot to see if you’re using the same Compaq motherboard, and exit if not. Highly useless.

So I went with sysprep. Before my new hardware even arrived, I downloaded the Windows drivers for all of it. I burned them to a CD, and installed as many as I could on the system in advance. About half of them refused to install since the new hardware wasn’t there yet. I then took a raw image of the partition with dd, just in case. Finally, right before I swapped the hardware, I ran sysprep and let it shut down the machine.

So after the new hardware was installed came the adventure.

Windows booted to the “welcome to XP” thingy. The video, keyboard, mouse, and IDE HDD worked. That’s about it.

I went through the “welcome to XP wizard”. But the network didn’t work yet, so I couldn’t activate it. So I popped my handy driver CD in the drive. But what’s this? Windows doesn’t recognize the DVD drive because it doesn’t have drivers for this Promise controller that came out in, what, 2001? Sigh. Downloaded the drivers with the imac, copy them to a CF card, plug the USB CF reader into Windows.

While I was doing that, about 6 “found new hardware” dialogs got queued up. Not one of them could actually find a driver for my hardware, but that didn’t prevent Windows from making me click through them all.

So, install Promise driver from CF card, reboot. Click through new hardware dialogs again. Install network driver, reboot, click through dialogs. Install sound driver. Install Intel “chipset” driver, click through dialogs. Reboot. Install SATA driver. Reboot.

So the hardware appears to all be working by this point, though I have a Creative volume control (from the old hardware) and a Realtek one in the tray. Minor annoyance to deal with later.

Now I have to re-activate XP. I dutifully key in the magic string from the sticker on my case. Surprise surprise, the Internet-based activation fails because my hardware is different. So I have to call the 800 number. I have to read in 7 blocks of 6 digits, one block at a time. Then I answer some questions: have I activated Windows before, have I changed hardware, was the old hardware defective (yes, yes, and yes). Then I get 7 blocks of 6 digits read to me. Finally Windows is activated. PHEW! Why they couldn’t ask those questions with the online tool is beyond me.

Anyhow. Linux took me 20 seconds to get working. Windows, about 2 hours, plus another 2 hours for prep and research.

I did zero prep for Linux. I made one config change (GUI users could have just configured their machine to use eth1).

Other cool Linux HW features

Say you buy a new printer and want to get it set up. On Windows, you insert the CD, let it install 200MB of print drivers plus ads plus crap plus add something to your taskbar plus who knows what else. Probably reboot. Then the printer might actually print.

On Debian, you plug in the printer to the USB port. You type printconf. 5 seconds later, your printer works.

I have been unpleasantly surprised lately by just how difficult hardware support in Windows really is, especially since everyone keeps saying how good it is. It’s not good. Debian’s is better, in my opinion.

57 thoughts on “Linux Hardware Support Better Than Windows

  1. Linux is only better with old hardware, try anything 1 year old or newer and it’ll probably fail horribly.
    Especially with soundcards, videocards, wifi and webcams.
    Keep on growing Linux, you’re getting there!

  2. RE zaggynl
    Brand New ThinkPad T61 Installed Ubuntu 8.10
    Video (3D with Compiz config installed)
    Hot Key’s
    Hot Swap
    power management screen dimming/CPU Reduction

    Other than 3D Desktop requiring installation, every thing Just Worked.
    Ubuntu did NOT “fail horribly”

  3. Windows, just like Linux, also installs as much as it can without prompting the user to do anything. And sure, for some devices you get these wizard popups, but that’s just a few clicks and you’re done.

    Personally I’ve never experienced serious trouble with Windows and hardware support. That is not so weird: Windows owns the market, all vendors create drivers for it. Linux on the on other hand lacks a lot of support or compensates with 3rd party support. I’ve seen awfully many pc’s failing to run Linux in a stable way because of hardware support problems.

    Hardware support for Linux is far behind Windows’s, although you may be right about the neat way Linux handles all compatible hardware. I wish vendors would by default create drivers for Linux :(. I can’t use Linux now due to these problems.

  4. Try installing Linux (any flavor) on a system with older hardware and tell me that it is easier than Windows. Quite frankly, I’m fed up with the crap I’ve had to go through, and the fact that no distro of linux supports my ati graphics card nor my printer. Good luck with that. Ha.

  5. I tried. Have a pc made in 2000 or even older, it’s my aunts, she gave me it, when windows started to show the blue screen. And guess what? I tried reinstalling windows(98 then XP), it worked ok (after a few days of searching for audio and network drivers) only for about a month, then again the blue screen and finish. It wouldn’t accept even a new install. Friend gave me a copy of openSuSe last summer. I put the DVD into the pc and WOW! After the install i didn’t need to search for any drivers, didn’t have to do anything! The whole installation process took about an hour or a little more on that slow machine, while windows needed an hour just to install itself and then again a few hours to install the drivers. It just worked and a lot better then a fresh install of windows.

  6. Yes linux hardware support is far better than window’s, the only problem I see is not linux it’s self but the hardware manufacture’s current unwillingniss to support linux driver support. Window’s is a lost cause soo it’s time we leave that outdated operateing system and joined this new better operateing system – linux.

  7. I started in Computers in the 70’s. Then we shared everything we programed to make the hardware work. This was and is the basis of an OS. Since Bill Gates thought of us “hackers” as thieves, he was laughed at. Everyone in those days knew that Hardware was nothing with out Software. The two worked together to make the machine operate. The Philosophy was to share the software so all the machines would work to the best that they could. Linux continues that legacy. Windows does too. but there was problems with some hardware. They were designed Specifically to operate with a particular OS. This meant that the devices we were designing had embedded code that would only operate with proprietary software. This was an attempt to corner the PC hardware Market, such as Apple had done years past. The problem was that the devices were slower than their hardware only devices and the resources from the main CPU took a hit as well as the OS becoming slower. Linux was never allowed the information about the Drivers, but through the community drivers were developed and give freely to anyone who wanted it.

    My Point is that while a majority of people use Windows for computing and they are content with it, fine. just don’t complain to the other people that have chosen to Operate their machines in the fashion developed during the days of IBM SHARE or The Hackers Community days. Linux has a goal. and that is to offer all the software necessary to make your hardware machine work. With Millions of people around the globe working to this end, the OS is very stable.
    It might not be a game machine like Windows, but that is only one use of power of the hardware, not it sole role.
    Drivers for Linux go to the Kernel Group for testing and review. daily there is activity. Windows does not need to worry about making drivers, that is left to the hardware manufactures that want to make a profit and support the OS that will require the user to pay.
    Since Freedom has always triumphed over Totalitarianism (or socialism) A Free OS will eventually over take an Proprietary OS. The Drivers in Linux are there because we knew they need to be to make the machine work. Microsoft doesn’t need the driver in there kernel because they have Market and hardware vendors want to feed off of that market.
    Fine. Windows Users Stay where you are and do the best you can with what you can afford and what you are hoping will be a comfortable experience using your Computer.
    Free OS Users Lets continue to develop software that uses hardware effectively and share it with the world….and let’s continue to give the Windows Users some of our work too Like Open Office, Gimp, Netscape (Mozilla, Firefox, etc), Blender (used in the Movie industry for New 3D animation Films)….The ease of use is our Victory so lets share it. eventually the Freedom will be enjoyed by all. Even if they didn’t know what happened.
    I use MS, Linux, Unix OS. One by Job Requirement, the other two to exercise my freedom and to enjoy computing.

Leave a Reply

Your email address will not be published. Required fields are marked *