You know, the old thing about Linux was that it didn’t necessarily support your (new) hardware. Greg Kroah-Hartman has been trying to bust that myth with the Linux Driver Project for a while now. But recent events have proved beyond doubt that not only is he right, but installing and using new devices on Linux is now much easier than on Windows. In the last seven days, my Ubuntu 9.04 laptop encountered five new devices, and here’s what happened:
- My uncle’s camera, which he gave me to take a copy of the photos of a family wedding. I connected it via a USB cable, up popped a Nautilus window and I could drag and drop the photos off easily. On a Windows machine, I suspect I’d have needed a driver CD.
- My new Logitech Presenter (as recommended by gandalf). I plugged it into the laptop, and all the buttons just started working. Brilliant. By contrast, I plugged it into the Windows PC hardwired to the projector where I was doing a presentation, and I first got a “New hardware detected – what do you want to do?” dialog. I picked “find a driver” (well, duh) and then I got a “Enter admin password” prompt. Of course, I didn’t know the admin password and so had to advance my presentation using the Page Down key. :-(
- T-Mobile Mobile Broadband. I bought a mobile broadband stick on a £2-a-day flat rate PAYG plan for occasional use when travelling on trains and also now, while I get internet in my new place set up properly. Plug it in, a wizard asks “Who is your provider?”, pick T-Mobile and you are up and running. When, of course, you remember to switch back to Wifi, register on their website (they texted me a confirm code – doh! I had to put the SIM into my phone to get the text!) and add some credit :-) To be fair, the docs suggest it’s this easy on Windows too, although it may require a reboot.
- HP Deskjet D1560 Printer. I had to print some forms for a training day on the printer the leaders had brought with them. Plugged it in, and it turned up in the evince print dialog without even needing to restart evince. Magic.
- Hauppage Win-TV Nova-T DVB stick. I bought this three years ago, but for the last two years we haven’t had a TV licence, so I haven’t been able to use it. Getting it working last time was an enormous hassle. Now, the kernel just recognizes it. Although actually getting to watch TV has, so far, been stymied by problems further up the software stack.
A pretty good record. I don’t know if it’s relevant that all the devices were USB. But what isn’t, these days?
“further up the software stack” is the catch, of course. The world went “what on EARTH?” when GregKH declared most of the drivers were actually done and there was therefore nothing else to do … because their stuff still didn’t *work*. And that’s an example of the problem of the Linux developers seeing it as a kernel and only a kernel, and not part of an operating system.
Don’t go that far. What about video drivers?
Do you have an ATI one by any chance? Or an Intel?
This is purely anecdotal… and the thing about the camera, windows would probably have detected it as a mass storage device and popped up that one dialog that gives you the option to open explorer, image viewer etc.
Still yeah, hardware support is getting better, yet my laptop still won’t hibernate properly :-(
I also have the Hauppage Win-TV Nova-T DVB stick, all you need to do is download the firmware, plug it in, and the scan the channels in Kaffeine. Easy.
Yeah, hibernation is a nightmare. This is because ACPI was specifically twisted by Microsoft to be nearly impossible to implement outside Windows. (Smoking gun PDF from Iowa antitrust case.) Matthew Garrett in particular has done stupendous work getting ACPI to work at all in Linux.
Greg: Indeed, nothing’s perfect. But it’s not perfect on Windows either. Seriously, needing admin rights to add an extra input device which presses the same keys as the installed keyboard?
John: I think the problem could well be that I don’t have a decent enough aerial connected. But the command-line scan tools are not very friendly either. Great to hear about Kaffeine; I’ll give that a try.
My favourite anecdote is that the Aureal sound card I’m using doesn’t even have a windows driver — the company disappeared years ago — but it’s just as good as the overpriced junk Creative puts out these days.
One thing I really hated while I used Windows is the crap that its drivers force you to install. My wifi stick required a systray applet to be running just to connect, ATi’s control panel requires all the dot net junk, and the driver for my motherboard’s low-end sound card in XP was a gigantic 30MB (!) download. No wonder Windows has a reputation for being slow and buggy, its driver support is terrible…
This distinction is perfect as there will be no room for confusion. Remember, the point of the kernel driver project is all about kernel drivers.
You have to install Linux and Windows on the same hardware, to really appreciate how good Linux driver support is. And how good Linux is. Period.
Windows has crappy driver support. Always has. Always will. Any time I have to install Windows (usually because a system has become virused beyond belief) I can count on 2-4 hours worth of work.
With Linux I can usually complete an install in 1/2 an hour, largely because I don’t have to worry about drivers.
Yeah, I still do Windows installs. People pay me to install something that’s going to break within six months, even though I tell them there’s something better. Well, if they want to be stupid and keep giving me money, that’s their problem.
to prove it is better, you would have to actually try to get all these devices fully working on both OSs. otherwise it just looks like the sort of one eyed BS everyone expects from an ‘evangelist’ of one particular technology.
where linux notoriously lags behind is on brand new hardware.
The camera is probably a USB 2.0 Mass Storage Device (most digital cameras are), in which case, it will automagically just work, in much the fashion you describe, with any modern OS, including Windows XP. This is, to my knowledge, pretty much the ONLY kind of hardware that you can use in Windows without a special driver.
Now, the camera probably also comes with a CD containing wonky bug-ridden Windows-only software for transferring photos off the camera. But it’s redundant.
In general, though, Linux has been better than Windows at automatically detecting and just working with random new hardware since the late nineties. There was kudzu, and then there was harddrake, and then Knoppix came along, and the rest is history. These days even quite conservative distributions like Debian can automatically use most anything you’re likely to plug in.
The other side of the coin is that if you’ve got some esoteric hardware that simply cannot at all work without a special manufacturer driver, there’s usually a driver available for Windows. Installing it is usually a pain, but it generally exists (although, sometimes there are annoying limits on exactly what versions of Windows are supported). With Linux the odds are a lot better than they used to be, but there is still some Windows-only hardware out there.
> I don’t know if it’s relevant that all the devices were USB.
It’s relevant, but it’s a double-edged sword.
In the case of the camera, the fact that it uses a USB cable probably means it’s a USB 2.0 Mass Storage Device, which means every operating system updated in the last ten years knows what to do with it.
On the other hand, in the case of the printer, the fact that it’s USB means that it’s a cheap recent-model consumer-grade printer. Chances of getting it to work under Windows without the manufacturer’s driver are slim, although _with_ the manufacturer’s driver it’s entirely possible you could get it to work with even an old version of Windows; it would almost certainly have a driver for XP, and very likely one for Windows 98 as well. (Calculating the likelihood of getting a recent-model USB printer to work with a ten-year-old Linux distro is left as an exercise for the astute reader. Haha.)
An older printer would probably be parallel; whereas, most high-end printers these days use RJ45/cat5 for the physical connection and speak ethernet, TCP/IP, and JetDirect (port 9100) and/or PostScript, so it’s hardly even a challenge for an operating system to support them.
Then there are serial printers… serial printers are usually special-purpose jobs like receipt printers and so forth, and they usually take plain old ASCII, so no driver is required, even under plain old DOS. Just send the text out the port (with the right port settings, e.g., 9600, 8 bits, hardware flow control, no parity) and Bob is your uncle; the only thing you’ve gotta know is how many columns it can handle (usually: 40).
All of which is to say, USB printers are if anything a greater challenge to support than printers using (almost) any other interface. (I suppose SCSI printers would be worse…)
Of the hardware you list, though, the real challenges are the Presenter and the TV thing.
> Any time I have to install Windows… I can count on 2-4 hours worth of work.
I generally allocate two shifts. (I work 5 hour shifts and expect some interruptions, so that’s well more than 4 hours but less than 10.) However, I have a whole checklist of stuff that I do to get the system ready for actual use. If anyone is curious, the checklist is here:
However, getting a new Linux system ready for use generally takes me a while too. Longer, if anything. (The advantage is, once it’s installed, it’s more configurable and easier to manage. If Linux needed to be reinstalled as often as Windows does, I’d probably be faster at doing it, from all the practice.)
I love Linux and I like where its headed– stylish, user(idiot) friendly… now if only work could be redone on minimizing the kernel bloat and crating apps that can compare to Photoshop and getting huge amounts of cool game I could leave Windows forever… in the meantime, I recommend using a harddrive cloner like TrueImage for Windows and PING for Linux, you steup once and save a clone; restore when things are screwed in about 15 minutes or less… peace.