Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Networking Hardware

The Problem With Driver-Loaded Firmware 229

Kadin2048 writes "If you've gone to a big-box store and purchased a wireless card recently, you might have had some trouble getting it to work under Linux, or any non-Windows OS for that matter. One reason for this is that more and more manufacturers are producing hardware that are useless without proprietary firmware. While these new designs allow for lower parts counts and thus lower cost, it presents a serious problem for F/OSS software because it can sometimes guarantee no out-of-the-box compatibility. Jem Matzan has produced a detailed article, "The battle for wireless network drivers," on the subject, including interviews with manufacturers' representatives and OS developers, including Theo de Raadt. The bottom line? In general, Asian hardware manufacturers were far more responsive and liberal about firmware than U.S. manufacturers (Intel included). Look for more firmware issues in the future, as not only wireless hardware, but regular wired Ethernet cards, take the driver-loaded firmware approach."
This discussion has been archived. No new comments can be posted.

The Problem With Driver-Loaded Firmware

Comments Filter:
  • Best Buy loves Linux (Score:3, Informative)

    by slummy ( 887268 ) <shawnuthNO@SPAMgmail.com> on Monday January 01, 2007 @12:40PM (#17422566) Homepage
    I recently purchased a Dynex DX-WGDTC PCI card from Best Buy for 35 bucks, the chipset had some sort of aluminum heat sink over it. I took a gamble and bought it anyway with a feeling that it was manufactured by D-Link. Turns out I was right, it has an Atheros 5212 chipset and I was ecstatic. The madwifi [madwifi.org] drivers work spectacular with this card. A patched madwifi-ng driver will allow you to crack WEP using ARP injection *wink* I recommend you go out and buy one immediately.
  • by c0l0 ( 826165 ) on Monday January 01, 2007 @01:02PM (#17422726) Homepage
    Basically everything powered by ZyDas and RaLink-Chipsets works flawlessly with GNU/Linux and the Free/OpenBSD. You can grab those off of EBay dirt cheap in large quantities, mostly from Power Sellers/commercial shops. Big-brand vendors with "the good stuff" on their boards I've personally seen yet were GigaByte (for MiniPCI), ASUS (PCI), and a crapload of others with ZyDas and Prism (for USB - including, for instance, NetGear).
    There's also an emerging (well, maybe they exist for ages, but I've not known the company up until recently) manufacturer for networking gear called "TP-LINK" which sells virtually everything from RaLink. I happen to have a "TP-LINK TL-WN321G" (usb2 full speed) adapter which features a RaLink chip supported by the rt73-usb driver just perfectly. Cost me 9 Euro in germany.

    Hth.
  • by forkazoo ( 138186 ) <wrosecrans@@@gmail...com> on Monday January 01, 2007 @01:04PM (#17422742) Homepage


    Correct me if I'm wrong -- the problem is that the firmware doesn't come preloaded on the hardware. So basically you have a hardware platform with no driving software -- essentially one big, blank programmable ASIC with specialty hardware depending on what the card is.

    One of the major complaints seems to be that the loadable firmware is not redistributable, and anyway it's full of bugs and other crazy stuff. It occurs to me that maybe these cards are like CPU platforms -- lots of hardware, no driving software. For one particular piece of hardware -- Intel CPU's -- some bright guy named Linus wrote some "firmware" to make that platform run.

    So couldn't some bright people get together, use the programmable hardware as a starting point, and develop their own firmware? I guess you wouldn't have to develop firmware for every blank hardware platform that was manufactured. Just the ones with the neatest hardware features.

    --Rob


    Well, it's certainly a nice idea, and in an ideal world, it would be a good plan. Unfortunately, Linus couldn't have written Linux in a vacuum. He had access to an architecture reference manual or similar information about PC's and IA32. He had access to a compiler which would allow him to program in a standard language, which would automatically generate the machine code for IA32. He had access to book on how to write operating systems, and he had access to Minix to get some ideas of how it could be done.

    And it still took a few years before it was really a decent operating system.

    Now, imagine if he had access to only DOS. He didn't have any documentation about the hardware, he didn't have a compiler for it. He just had a copy of DOS. It was all he knew about PC's. It was his only example of how to do an OS. It probably would have taken more than just a few years to turn Linux into a decent OS.

    That's basically all you have when you want to write a firmware. No functional specs. No hardware documentation. Is it possible to make a working irmware for a wireless card? Sure, I don't see why it wouldn't be possible. But, when you have a variety of manufacturers making a variety of cards, and you want to support them all before they stop being relevant to the market, and it takes probably several years of tinkering for any given card, then "hackers GO!" isn't really a viable hardware support plan.

    The US FCC seems to be in no hurry to do anything that would support community efforts to write firmware, given their apparent hostility toward HAMs, and I expect it will be a good many years before the FCC is completely realigned. It isn't really a hot button issue, so I wouldn't even expect a hardcore Democrat president to bother with it just for the sake of being different from Bush. If it won't happen in this or the next administration, then it will be a minimum of six to ten years before we can even dream about regulations causing us to just be handed hardware documentation. Consequently, folks like Theo have made firmware a personal issue. I applaud them, and really hope that he is able to make some headway with this.
  • by gslavik ( 1015381 ) on Monday January 01, 2007 @01:40PM (#17422986)
    I bought a Compaq Presario V2000Z laptop. As I found out the hard way, this laptop has a whitelist of wifi cards that it will boot up with in the BIOS. Before I found out about the lock, I spent 20USD on a Ralink based card. But before I actually bought the card, I asked an HP tech if there is such a lock, I received a negative answer. Sometimes, you can't vote with your money, even if you want to.

    I have read that it is possible to edit the BIOS (decompress, edit the proper bytes in proper places, compress back and flash), the problem arises with flashing, it just doesn't want to do it. A work around I found is if I keep the system in the grub menu and switch out the card, I can still use the card in Linux, the problem is that this is a workaround and not a real solution.
  • by kruhft ( 323362 ) on Monday January 01, 2007 @01:40PM (#17422996) Homepage Journal
    Bottom line is: I would not buy Atheros-based cards, and rather go for RaLink or ZyDas.
    Atheros Communications to Acquire ZyDAS Technology Corporation [atheros.com] - Date: April 24, 2006

    Looks like RaLink [ralinktech.com] might be the only player on the block soon enough...

  • by setagllib ( 753300 ) on Monday January 01, 2007 @02:06PM (#17423228)
    There's no good way to look at it. The "problem" that you missed is not that the hardware requires firmware (which is perfectly fine), but that the firmware is extremely restricted and virtually impossible to replace. Theo wants at least the freedom to distribute the firmware blobs with free operating systems without additional restrictions on the users, and even that is being denied by many vendors, continuing to require accepting a license on a web page and forbidding redistributing the blob you receive. The common situation is that to use your wireless card, you need to go to the vendor website and accept a license agreement to download it (very, very few distributions accept restrictions to bundle even the "more" liberal firmware like Intel PRO Wireless blobs, and those that do are frequently beaten up for doing so). You can't do this without your wireless card working, so you try to find the driver CD (if there is one at all) and then tear off the firmware which is not guaranteed to match the kernel driver's expected interface anyway. If the dark lords have mercy on you, you may proceed to accept the license and install the newer, less broken firmware. Maybe.
  • by Anonymous Coward on Monday January 01, 2007 @02:25PM (#17423388)
    Original comment from five days ago [slashdot.org]

    Parent is stealing comments to salvage his poor karma. Notice his extensive "Score: 0" comment history [slashdot.org].
  • by WilliamTS99 ( 942590 ) on Monday January 01, 2007 @02:27PM (#17423400) Homepage
    Yes, there are some clear winners, the forums are great, and the compatibility list is: https://help.ubuntu.com/community/WifiDocs/Wireles sCardsSupported [ubuntu.com] As far as the router, I tend to stick with anything that is supported by DD-WRT http://www.dd-wrt.com/ [dd-wrt.com] The best is to find the wireless cards that work perfectly with network-manager right out of the box on the recent version(s) of Ubuntu.
  • Firmware != Drivers (Score:5, Informative)

    by itsdapead ( 734413 ) on Monday January 01, 2007 @03:10PM (#17423672)

    Quick clarification, seeing some of the posts here about "winmodems" and junkware-infested drivers:

    Drivers run on your computer and let it talk to the device.

    Firmware is "software" that runs on the device - typically code for on-board microcontrollers, Field Programmamble Gate Arrays (FPGA) and other "soft hardware".

    There is nothing wrong with the idea of using driver-loaded firmware - it simplifies the device (no need for on-board flash memory) and makes it easier to fix "hardware" issues with an updated driver (with less risk of "bricking" a device by muffing a firmware update). Linux can actually cope with it quite happily - A lot of digital TV cards rely on driver-loaded firmware and its all fine and dandy provided that either (a) the manufacturer offers a download of the firmware or (b) it can be extracted from the windows driver CD or (c) some evil pirate has selfishly conspired to increase the manufacturer's customer base by posting an iffy copy.

    There is an interesting question as to the status of such a "firmware blob" vis. the GPL (especialy the anti-TiVOization clauses of V3). Is it part of the software (thus tainting the free-ness of any drivers that require it) or part of the hardware (FPGA "software" is more like a circuit diagram than a program - and the "source code" might be useless without proprietary software from the FPGA manufacturer - and tweaking it might void the FCC/CE certification of the device)?

  • by jbn-o ( 555068 ) <mail@digitalcitizen.info> on Monday January 01, 2007 @03:24PM (#17423794) Homepage
    Vote with your money, folks.

    I'm all for letting cooperative organizations know why I'm purchasing their equipment and not their uncooperative competitors (and notifying their uncooperative competitors to the contrary), but I don't expect it to mean that I'm in any way "voting" or leveraging some kind of democratic control over what is essentially a private tyranny.

    However, if you read Theo de Raadt's informative talk slides [openbsd.org], you'd see another reason why "voting" with your money isn't what it is made out to be [openbsd.org] (slides 24 and 25—"The OEM problem"). Maybe if customers in the US were organized to a scale never before seen and all demanding chips with complete and unrestricted documentation, we'd have more control as a group. This is worth pursuing, and if you are calling for this I would gladly join such an effort.

    I say this is another reason because the general problem with the concept of voting by spending money means that rich people have more "votes" than poor people, so this saying tries to cast a egalitarian pall on an inequity. de Raadt addresses how much consumer power you have with regard to computer hardware by pointing out how OEMs leverage competition to insulate themselves from customer's wishes for chips we can operate without proprietary software. I mentioned this before [slashdot.org] but I didn't think it would come up as a repeat so soon.

  • by Vellmont ( 569020 ) on Monday January 01, 2007 @03:40PM (#17423922) Homepage
    The article is pretty clearly saying that the problem isn't that firmware makers aren't releasing source code to expensively developed firmware (though obviously that would solve the problem). The problem is that many chipset makers aren't providing rights to freely re-distribute firmware, and aren't providing documentation for that firmware so drivers can be written.
  • by urbanradar ( 1001140 ) <timothyfielding@gmail . c om> on Monday January 01, 2007 @04:48PM (#17424614) Homepage
    But this is exactly the problem! When people ask this question, they get details, and perhaps a link to a list or two. But there is no single up-to-date reliable hardware list that a Linux-user can really rely on. This should be a simple URL of a website that answers all hardware questions: enter a chipset or a product name, and get a list of distros on which it works. Sounds obvious, and necessary, but we still don't have it. Even such a website for a specific distro doesn't exist, to my knowledge - for example the Ubuntu wiki has lists of compatible hardware, but it isn't very convenient or accessible, I've spent a lot of wasted time on it. Also, if a particular model isn't listed, I don't know if that means it wasn't tested, or doesn't work (although some models are marked as not working). And the basic problem is that the Ubuntu wiki could be wrong - I am not aware of anyone doing serious quality control there.

    I guess for most people knowledgeable about Linux, this isn't a big issue - they know the answers or know where to get them. Still, a better solution would make things more convenient for them. And newcomers would certainly be much happier.


    You know, I'm involved with a reasonably young project that aims to do exactly that - provide a community-powered, up-to-date, comprehensive central Linux hardware compatibility listing. It was launched in autumn, but for various reason, no work was done on it for several months, and we're only just picking up on it again now. So it still needs a whole lot of work, and it could do with more contributors, too. We tried to submit it to Slashdot, but the story was refused.

    In case anyone is interested in taking a look, the URL is http://www.tuxpatible.info [tuxpatible.info].

    If you think this project has potential and is worthwhile supporting, spread the link, contribute to the website, or if you have mod points and feel like it, mod this post up so that more people may see this!
  • by urbanradar ( 1001140 ) <timothyfielding@gmail . c om> on Monday January 01, 2007 @07:15PM (#17426074) Homepage
    You're going about this incorrectly. If a piece of hardware works in one distribution, it will theoretically work in all. Granted, it will probably be easier in Ubuntu or Fedora, but just because you may have to work a little harder in Slackware doesn't mean the hardware isn't compatible. The OS is still GNU/Linux, and there are very few hardware-related tools that are propriety among any one of the big distros.

    I think you're missing the point about what exactly tuxpatible.info is meant to be.

    Yes, theoretically, something that works in one distro will indeed work in all of them. Practically, however, this is often not the case. Are you seriously claiming that all Linux distros have identical hardware support / recognition? If that was really so, hardware recognition wouldn't be such a major point in Linux distro reviews. Fact is: Not every distro includes every driver, not every distro includes the same version of every driver, not every distro is perfectly bug-free, and so on, and so on.

    Tuxpatible isn't just meant to answer the question, "Is there a Linux driver available for $HARDWARE". It's meant to answer more specific questions, like: "What distros will $HARDWARE work well with?" or "Will $HARDWARE work with my distro of choice?", or "What do I have to do to get $HARDWARE working on my distro of choice?", or "How do I fix this common problem with $HARDWARE under my distro of choice?"

It's a naive, domestic operating system without any breeding, but I think you'll be amused by its presumption.

Working...