The Problem With Driver-Loaded Firmware
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."
You do not _have_ to purchase the cheapest NIC or the lowest-cost USB controller and with today's tendency to integrate everything into the mobo the problem might eventually solve itself.
Wouldn't the creation of free firmware be a better (and maybe more generic?) solution? Isn't it a case of relatively few WiFi chipsets being used with multiple drivers where each vendor uses it's own firmware?
This will not offer a solution if all/most firmware is written by the chipset manufacturers though....
I have always wondered if part of the reason this sort of thing is so popular might be because it curries favor with MS. I'm certain MS is NOT displeased with this sort of thing. Can we say "winmodem"?
It's the Return of the WinModem!
Proud member of the American Non Sequitur Society. We might not make much sense, but boy do we love pizza!
Oh yeah, I remember the good old days when I could pick up a USB drive and be able to plug it in and simply move files back and forth as it was intended. Simple. Bought a USB drive from Best Buy and it was garbage. It wanted to - for my convenience - load crap software on my computer and generally was a pain in the ass trying to use it for what I wanted. Next USB flash drive I bought I had to sit there for twenty minutes to find one, more expensive, that would allow me to use it without having all that crap software/spyware on it. Definitely not an improvement.
Enjoy your Karma, after all you earned it. Feel your Karma Joe, feel it burn.
Why can't we have firmware loaded drivers instead?
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 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.
Look for more firmware issues in the future, as not only wireless hardware, but regular wired Ethernet cards, take the driver-loaded firmware approach.
If you think problems with those are bad, you should see the "license" problems with a lot of bluetooth devices.
Push Button, Receive Bacon
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
Towards the Singularity.
This is the same thing that happened years ago with modems. For desktop computers it's not that big of a problem because it's still cheap and easy to get cards that work, although kind of a bummer if you can't use something you've already bought. The times when it's a real problem though is with a laptop, if you've bought a laptop and the onboard networking or wireless is like this you're usually just fucked if you want to run linux, you'll have to buy another external interface for USB or Cardbus or whatever -- a real pain with a laptop.
The Battle for Wireless Network Drivers1 2/27/0230246
December 27, 2006 @01:18AM
from the mind-the-nazgul dept.
http://developers.slashdot.org/article.pl?sid=06/
Simple. Start a Free Hardware Foundation.
Now don't say it's not possible, since there's really difference in producing SW or HW for free from the economical point of view.
If you think there is, you are wrong.
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.
Let's take this from a slightly different perspective:
In general American hardware manufacturers were far more pigheaded and close-mouthed about firmware than Asian manufacturers (Intel especially.) Look for more firmware issues in the future, as Asian corporations continue to take over the remnants of the U.S. manufacturing sector, with U.S. companies stubbornly trying to hang on to their "intellectual property".
Maybe if these idiots stopped listening their legal teams (and Microsoft!) so much, started worrying less about developers using their oh-so-precious "intellectual property" to make their own products useful to even more customers we wouldn't be in this fix. American tech companies are shooting themselves in the foot, having forgotten that continuous innovation and fresh ideas, not hordes of attorneys, are what drive a tech sector to competitiveness. Meanwhile, China is walking off with the the entire candy store.
There are only two ways to beat your competition in the modern world: out-lawyer them or out-think them. We used to be in the latter camp (Yankee ingenuity, and all that) but not any more.
Rather depressing, really.
The higher the technology, the sharper that two-edged sword.
The only real issue here is vendors who try to restrict distribution of the firmware with open drivers. Otherwise, this is how it has always been, except instead of firmware being loaded from a flash chip, it's loaded from the disk drive by the driver. This is by far the more sensible way to handle it, and removes a redundant component from hardware.
According to the article, there are three companies that have actually worked with the free software community on drivers. Here is the list:
Ralink Technology
Atmel Corporation
Realtek Linux drivers here
Vote with your money, folks. If you would like to see companies cooperate with the free software community, reward the companies that do so by buying their products.
If you know of a particular piece of WiFi hardware that works particularly well in Linux or BSD, please follow up here so we all know what to buy. (See also this list.)
Firmware is often large. Think "megabyte".
For an OS to drive the hardware, it has to include the firmware. That's no serious problem for driving a few devices after you've installed the OS.
Problem is, the OS doesn't just support YOUR devices. It has to support ALL devices, with ALL hardware revisions and board layouts. So, how many devices could exist...?
Now you're talking about real disk space. This could get into the gigabytes.
What about at install time? It's all going to have to fit.
These articles are always frustrating to me, because I can read about chipsets that work, but not about which cards support them. It's hard to go to newegg and buy a card, because many of the cards that have the good chipsets come in different versions with bad chipsets.
My ancient orinoco silver pcmcia card stopped working with ubuntu as of edgy. I don't know why. It works with other distros. But it's not 802.11g, and it doesn't do WPA, and although it's not important to me, it's not great for scanning.
So I want to buy a card. I'd order one today, but I don't know what to get.
I know our buying power as a community is small, but I'd think that some no-name card manufacturer would find it worthwhile to make a card that has a picture of a penguin on it, and that is fully supported by free software. I'd pay a little more for a card that I know will just work, and that will continue to work.
Is that it leads to dupes.
It's official. Most of you are morons.
Remember winmodems? LOL. There's really no excuse for this.
I hate sigs.
Building a standards compliant intelligent machine is often more expensive than building an ad hoc machine, if for no other reason than the cheapest parts can always be used, and there is no need to support all users. The flip side is that a specific driver must be created for each device.
I had an incident that nicely illustrated this point. I bought a very cheap digital camera a few couple years ago. Now, any standard camera with a USB port should work with my Mac with no additional drivers. Perhaps not all the bells and whistles, but the PTP should work. As it turned out, this camera was not standards based, and, even worse, had undergone a revision so, even thought the model number was the same, it did not work with the drivers I did have. There only way to determine that this camera was not in fact the same camera was to open the hermetically sealed bomb proof packaging, open the camera, and use a magnifying glass to inspect the product code.
Which just shows that if one wants the cheapest products, then MS Windows is the way to go. Manufacturers can design to the platform, write a few drivers, and sell to the masses. So the point of *nix, and perhaps the Mac,is not to provide the cheapest product, but instead long term stability. I have every reason to believe that Canon camera will work with my computer for a long time, because I am not going to lose connectivity when the next OS upgrade comes around. The standards will still be supported. I have SCSI devices from the OS 9 days that still work perfectly with OS X. I have no idea if those same devices, which required a special driver for MS Window, have continued support for current MS products.
So really all that can be said is don't buy the cheap products. If one has a choice between the standard printer and generic printer, pay the extra money for the generic printer. Support the standards that will allow *nix to prosper.
To specifically address the wireless thing, the standard is certainly in flux, and no one can be expected to support a standard that does not necessarily exist. That said, it should still be possible to assemble a standard compliant box that is not targeted towards the MS Windows OS, perhaps at additional costs.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
How is this really news? This problem has been known about for years... Winmodems, anyone?
I don't know if this article is a dupe, but the problem is.
If you don't remember the WinModem problem, this might seem absurd. This has been a problem for a long time. It never really went away. People just started using networks connected to telephone supplied DSL modems, cable modems, or cheap external USB modems, and forgot about the problem.
Madwifi drivers are not free, as they require a binary-only, proprietary Hardware Abstraction Layer (HAL, not to be confused with freedesktop.org HAL/hald) running, which is in fact even worse than platform-agnostic firmware which is just shoved over the bus to the device and running on an ASIC there. The HAL needs to be present and compiled for every Platform you're going to run the Atheros-powered card on.
The OpenBSD-folks have developed a free as in speech replacement for the binary-only HAL provided by Atheros, but madwifi did not care to adopt it at all - which leaves their true intentions somewhat dubious to me (and a few concerned others).
Bottom line is: I would not buy Atheros-based cards, and rather go for RaLink or ZyDas. Though watch out, as the latter company recently has been bought by Atheros, therefore suggesting that either their future devices will come with equally dumb restrictions/dependencies applied on their drivers, or their excellent product line vanish completely.
:%s/Open Source/Free Software/g
YTARY!
This could potentially be a way for HW companies to document their interface specifications for open source drivers. This would require:
To be clear, I'm talking about opaque firmware blobs that get downloaded to the device, and then run entirely on the device. I'm not talking about the sleezy OS-level blobs used by some HW companies (NVidia, etc).
Some people may complain about the appearance of running non-free software (the firmware blob) on their computer. FWIW, there are many other non-free firemware blobs already running on your computer -- most are buried in disc controllers, keyboard/mouse controllers.
Also, people seem to be forgetting that the "miniscule marketshare" of Linux equates to millions of users, so you question should really be: "Why should they expend a minimal amount of time and effort in order to attract the custom of millions of potential customers and the subsequent recommendations from those that the less tech-savvy hold in high esteem?", which should be pretty much a no-brainer
Despite what the fine article seems to lead the reader to understand, the ar5k open "HAL" is not functionally equivalent to the Atheros/Sam Leffler HAL. The proprietary HAL has support for multiple VAP structures (IE, you can have the same card be an AP, and a station, and a monitor all at the same time.) The proprietary HAL also supports more chipsets and more of the cool features like XR, and quarter and half bandwidth channels. There are some internal political reasons that Madwifi uses the Atheros HAL, and I don't expect or desire it to change soon.
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.
Looks like RaLink might be the only player on the block soon enough...
Listen to my music.
That was such a PITA do deal with and these morons want it back... and it will always come back over and over because some corporations are left unsupervised.
It seems we need standards for everything. And we need to work closer to hardware makers to ensure easy Linux compatibility, by helping them make their products, not just waiting on their good will to their release specs (which NDAs can anyway forbid them to do).
To that end, we probably should find a way to easily identify those hardware makers -- maybe with a sticker, just like M$ does. I myself find it difficult to buy Linux-compatible hardware... I know all good sites: linuxcompatible, linuxprinting etc. But it's very hard getting web access in the middle of a store to check a product's compatibility.
We should also discuss codec compatibility, which was the subject of last week's ESR article. Although I find him a very sophisticate and deep-thinking writer with a number of succesful essays, I cannot say I agree with everything he proposes. But we really need to make Linux compatible with commercial activity, lest we keep seeing "winmodems" pop out everywhere.
Also, have in mind the following, which is very interesting (since they don't take their own medicine): proprietary folks always chant the low TCO rhetoric, by which you spend more on their products to save on other expenses. But they will gladly and joyfully incur on higher costs to get the control such products without firmware can provide them. That is, they will always want OS-based drivers. This is bad for h/w manufacturers but these can't really have a saying in the decision about having cross-platform working hardware.
The odds are extremely good that you have a RealTek NIC on your machine if it's an integrated part.
There's several reasons for this.
It's cheap.
It works VERY well, though not the best that money can buy.
It's completely open in it's documentation and relatively easy to design with.
Those three things make me think of using their part first- especially the open information part.
It's no different for any other engineer. I can assure you, they're about to get a batch of people
on the scene that are customers that will insist on this stuff being the case. Customers that are
are going to be big enough to not ignore and won't take "NO" for an answer as they'll find someone
else if they get it.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Why don't we learn from our mistakes? Other than cost, what's the benefit of this? None that I can think of.
Different creatures, these and winmodems. These are drivers that load firmware to chips on the cards that actually *do* something. A winmodem was really just a lousy sound card integrated with a DAA and thus could be plugged into a phone line. Nearly *all* of the signal processing was done by the host processor. No firmware was downloaded to winmodems, because nothing (or very little) was being done on the card itself.
With these, the cards actually still do processing for themselves, but the manufacturer decided to spare themselves the cost of the EEPROM/flash to store the firmware image, so they make the host download it to them.
Either solution is craptastic if you ask me, but winmodems were a different critter. At least with a winmodem, it would be possible to write your own drivers (in theory), since all you need is a good solid background in signal processing theory, some reasonably cool telco test gear, and all of the modem modulation specs. The hardware was relatively simple to figure out. With these, the hardware is a black box, likely riddled with bugs and gotchas, that would be almost impossible to reverse engineer without spending a good deal of time/money (possibly down to reverse-engineering the silicon itself).
They're called wireless bridges, and there are plenty on the market, no need to email random people looking for one unless you want that one specifically . http://www.wi-fiplanet.com/tutorials/article.php/1 563991
Incidentally, Fry's near me has a Netgear display showing off their "zoned" multi-antenna gear, didn't look at the gear itself, just gawked at das blinkenlights on the display.
Not only that, I have written OS/2 and FreeBSD drivers for it outside of work hours (but with permission).
There is ABSOLUTELY NO REASON why a FOSS driver cannot install the firmware. This is NOT the problem. There MAY be a problem with distribution rights, or with documenting how to load the firmware, but these are NOT what TFA described.
While one might like to have the spec for writing one's own GPL firmware, and I dont see prob;lems with that, I do see a problem with expecting $100,000 worth of firmware development for free, when the hardware can be replicat4ed for a $10, and the combination normally sells for $100. Ie there are products on the market where the majority of the value is in the firmware. and Yes, it does sometimes take more than three man-years of $100/day consultants to write firmware for a product with a predicted lifetime of 8-months. (Graphics card, anyone?)
Sent from my ASR33 using ASCII
I'm actually in the market for a wireless card for a desktop PC running Ubuntu Edgy right about now, actually.
Any clear winners? Does it matter which router I will be using? For that matter, I need to get a router as well.
(I figure I might as well ask here, since the topic is here. I would otherwise have just gone to the Ubuntu forum.)
Help! I'm a slashdot refugee.
The Amiga used to use drivers on the ROMs of a Zorro II/III cards all of the time. It was proprietary card slot design so since it would only work on AmigaOS 2+ it wasn't a problem. Treating Windows the same way with a PCI slot should be a problem since PCI slots aren't Windows or even an x86-specific specification. (Does anybody remember the PowerPC Common Hardware Reference Platform specification? PCI was in there.)
Virtual machines are becoming more and more common. One approach is to think of Windows as part of your machine's firmware, and run your real operating system in a VM.
I'm on my way to BestBuy now!
Homebrew Wifi Router, here I come.
Hardware makers have done a huge disservice to their customers by not producing stable chipsets. They'll have several revisions of say the "Linksys USB11" and each one using a different chipset. You go to Amazon and buy it and yet have no idea which version you'll be getting. To be fair there have been some new standards like WPA etc that possibly would have required a new chipset, but the vendors just went way overboard in their lack of regard for stability in their product lines.
I must have half a dozen wirless nics from PC Cards, to PCI cards, to USB versions and I think one of them is detected automatically without major problems in linux. And of course the one that is detected won't do WPA in linux so it is 100% worthless. Good thing I don't use Linux as my main desktop OS anymore. While things have gotten better, support for hardware on linux still sucks just as bad now as it did many years ago.
If you wanna get rich, you know that payback is a bitch
Original comment from five days ago
Parent is stealing comments to salvage his poor karma. Notice his extensive "Score: 0" comment history.
I have had fairly good luck in computer stores gaining temporary web access on one of their machines to check on hardware, I just ask them if they have a box I can use and that I am interested in purchasing this whatever, but need to find out and make sure first. In fact, thinking about it, I haven't been turned down yet. Granted, it's not something they get asked a lot, but to make a sale, especially if they are those floor sales people who need their little commissions, they usually got some machine some place, even back in an office, they'll let you use. It helps if you keep a list of which websites to check first though so you aren't sitting there surfing/searching from scratch. Sometimes they even have a demo machine right out in the aisle running on the web, use that one. This has been both at the big box chain stores and the mom and pop whitebox stores.
With that said, ya, maybe the slashdot editors or OSTG can open a page/site where all they have is open source hardware reviews and lists. *hint* *hint*
I have a Meade DSI astronomical CCD. I bought it in 2005, it a USB device with an uploaded firmware. I was simple to figure out how to upload the firmware to use the camera from Linux, but the CMYK de-bayer matrix is causing me grief. I can decode an "image" but it isn't pretty.
that is exactly what MS wants - make sure NO computer can run without having some windows installed.
Would your real name happen to be Ballmer?
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)?
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Also, anything with an Atheros chipset also works very well with the MadWifi drivers.
"It ain't a war against drugs.it's a war against personal freedom" --Bill Hicks
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, you'd see another reason why "voting" with your money isn't what it is made out to be (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 but I didn't think it would come up as a repeat so soon.
Digital Citizen
enjoy
Maybe the ASUS WL-107g CardBus card will work for your needs. Newegg carries it for about $30 or so. I got one of these running on gNewSense GNU/Linux, a GNU/Linux distribution that places software freedom as a higher priority than trying to work with every device out there (and the concomitant need for distributing non-free software). To this end, they strip out non-free firmware and non-free drivers from their distribution. So, I can try running any device with that OS and know that if it works there it ought to work anywhere in freedom.
I've heard the D-Link DWL G122 USB wireless network adapter works with free software drivers and without any firmware, but I don't have one of them to test first hand.
I agree with you that we need an actively maintained list of makes and models of things to buy, not just chipset lists. Makes and models are what people can ask for by name in stores.
Digital Citizen
So long as the manufacturer distributes firmware freely (and they generally do, so they can distribute new firmware versions), it's no problem for drivers regardless of OS to load that firmware onto the device. It's generally about the easiest device function to implement. Linux has a standard mechanism for the kernel to get the firmware from userspace.
It's a bit of a pain if the manufacturer doesn't allow redistribution of the firmware, because it means your brand-new wireless card doesn't work until you've got network to download the firmware, but that's a relatively minor issue (and they generally have a CD containing the correct file if you buy a card).
It's a lot more of an issue that manufacturers don't document how to use the device at a hardware level in general, and card manufacturers often give completely unrelated hardware exactly the same name. So it's hard to tell what driver to use, and whether there is a driver for the device. Then there's the issue that most internal modems these days are actually sound cards with phone-line I/O, and the OS is supposed to play the right sound onto the phone line. (Which is lame, but things are coming along for handling it.)
But the need to send a file you can get to the device before it will do stuff isn't really a big deal. I'm actually posting this with a Wifi chipset (ipw3945) that requires firmware, which was automatically handled by Linux (Gentoo), and the firmware is completely independant of operating system, processor architecture, or really anything outside the device.
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.
AccountKiller
This is not a bad thing
Lets say for instance you are BroadCom. You create a NIC or LOM chip set, lets say all the firmware is built in. Later you discover a bug, not super critical, but its enough of a PITA to cause you support problems, well then what? You now have several million cards or chipsets out there that need fixing. BIOS flash? PROM patch? Most all of those need to be applied with nothing happening on the card and bare bones system running, ie: A Bootable diskette ( when is the last time you saw a floppy drive in a machine if you did not specificaly order it ), or a bootable CD image. Now basic CD-ROM burners are pretty much on every new machine, but that leads to lots more complications, now they have to distribute something that will boot ( Free-DOS, Micro Linux Kernel, whatever ) and then that CD has to be burned. Again this is a PITA for the end user.
So without going through comparisons to WinModems, this is a good idea. Download the update, on windows install and re-boot, on Linux, Netware or another *nix just re-start the ethernet system, and bug fix applied, life is good.
BroadCom does in fact provide Windows, Linux, Netware, FreeBSD, Solaris. DOS, OS/2 and SCO drivers for:
As for the other mentioned, a quick look at the Intel web site shows me tons of drivers for Linux, FreeBSD, etc. etc. So I fail to see what everyone is bitching about. I have loaded several Distro's on various hardware and it just works. Performance is more then satisfactory.
Case in point. I have a old IBM thinkpad A-21M. I loaded NLED 9.x on it and the only thing that was a problem was the built in ATI video system. One call to the Novell's FREE support line and it was fixed in under 30 seconds. I stuffed a Netgear wireless card in it ( WG511T to be exact ), and it booted and ran perfectly.
Now all of that being said, I do understand some peoples desire to have Open Source drivers for these cards. There are lots of really good open source programmers out there that arguably could construct a better driver then the manufacturer, but I am thinking people with those kind of chops are fairly rare ( how many Linus's are there?? ) and they have lots bigger fish to fry.
I have yet to see a NIC or wireless chipset that there was just ZERO Linux support for. Would life be better and easier if support for EVERY OS out there was just perfect, well yes it would. Is that an economic reality? Not by any means. If it were the case BroadCom and Intel would be providing drivers for BeOS ( which I personaly love ), Amiga, DR-DOS, MS-DOS, PC-DOS etc., for their latest and greatest tech, but they don't because it takes 1000's of man hours ( read BIG dollars ) to do so and the last time I checked these companies were not charitiable organizations.
Now to the point of them providing the specifications for their products. Yes life would be nice if every interface was published and nicely documented and I really have no idea WHY they are being cluby about this. it would be totaly in their benefit to do so, for the following reasons:
All in all, I see providing detailed interface specifications to their hardware as being a total upside for them and I don't see a downside.
Hey KID! Yeah you, get the fuck off my lawn!
From http://www.theory.physics.ubc.ca/transit.html:
This card [M-Audio Transit] needs to have firmware downloaded to the card on the USB bus to work. It uses a non-standard "DFU" method which seems to have some problems with Linux. It also mixes its Type I and Type III endpoints to confuse the software. I have found (with the help of and software written by Clement Ladisch and Takashi Iwai.) a way to make this card useable.The card requires firmware to be downloaded to the card first for it to work as a soundcard. While it appears on the usb bus with Vendor/ProductID of 0763/2806 this is a very primative usb device that does nothing except wait for firmware.
A firmware loader for M-Audio audio devices is available at http://usb-midi-fw.sourceforge.net/. Interestingly enough, the set-up procedure involves copying the firmware bin file from the Windows driver installation, which is subsequently used by the firmware loader.
Anyways, TFA makes some interesting points:
Unrestricted redistribution of firmware files is satisfactory for some open source operating system projects like OpenBSD, FreeBSD, and many varieties of GNU/Linux, but others like Fedora Core and Debian demand an entirely free software environment, so redistribution of the firmware without the ability to modify and distribute the source code is prohibited.The firmware, although its being loaded to the device, is still firmware. Do distributions that demand an entirely free sofware environment ship drivers for devices with proprietary firmware? Of course they do. I'm not convinced that this should be any different.
I think that Theo de Raadt, of OpenBSD, has it right:
So instead of lobbying for documentation to write open source firmware, de Raadt would prefer to simply have the right to freely distribute necessary proprietary firmware files with his operating system, along with correct firmware interface documentation so that a driver can be created, and information from the manufacturer regarding bug workarounds.-azzurro
The parent makes a distinction that's VERY important to understand to know what's going on here.
The only thing I disagree with is the method of distribution of firmware (and is one of the central complaints of the article). Unless distributions have the ability to freely re-distribute firmware, they're sunk. It's just simply too difficult or too much a pain-in-the-ass for end users to go find firmware from a windows CD, a manufacturer, etc. I'm no stranger to Linux and have been using it for 10+ years now all the way from user to administrator to programmer, and even _I_ hate that kind of nonsense. I'd rather just have the damn thing work and not have to screw around with it.
AccountKiller
US and European history is littered with lawsuits over patent infringment. Patent suits go back to the creation of patents. Because in quite a few cases a patent owner has been defrauded of their creation because the law and the courts have not been enough to protect their property they've taken a path of protecting their property with obscurity.
You could work with the http://www.gnu.org/software/gnuradio/ and come up with a generic framework that could run most any kind of dsp related tranceiver be it wireless or wired.
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
What, we must install an OS from Blu-ray or HD-DVD now?
FYI, a cheap and semi-compatible (single-layer, single-side) DVD is something like 2 to 5 GB depending on type.
Normal OS installs are meant to work from CD media, which is about 700 MB. Often, the install is meant to run from a ramdisk.
Storage space isn't the only problem here. Reading all that data takes time.
Even if I do have well over 100 GB of drive space, I'd rather not devote a few percent of that to firmware for devices I don't even own. In other words, these manufacturers are collectively stealing a few percent of my disk space.
The only way companies that hold things so close to the chest can be influenced is by hurting their cash flow. This is capitalism in action. If they realize they are pissing people off with their attitude, and it is costing them money, then they will change. Until then, you can howl at the moon until the cows come home and they won't stop actively shutting out open source developers.
I would suggest that it might be an option to use the collective IT experience and position of Slashdotters to effect a boycot of firmware products from companies that only cooperate with MS based products. Or any hardware manufacturer that does this. If you have input to your company purchasing 5 or 5 million wireless cards (in this example) and TI or Intel is one option versus Realtek or Ralink or Zdas on the other... ***and they all do the job you require*** (regardless of whether you are installing them on an MS box, an Open Source box, or other) use your influence to buy from the group containing Realtek or Ralink or Zdas, or other manufacturer that supports open source. (Again, regardless of whether you are currently going to install them on a Windows box, Linux Box, Mac, OpenBSD, whatever... as long as it meets your needs, and they have a product that will also work on an open source box.)
If you aren't prepared to make the offending companies hurt in the pocketbook, then to quote Jim Carrey in the movie "Liar Liar", all you guys are:
end of story.-- I ignore anonymous replies to my comments and postings.
Nobodies safe anymore, not XP, not Linux.
Free software advocates won't install non-free firmware because that software is non-free. All of the arguments about free software apply to discussions of "firmware" because firmware is software. For those who want their freedom, proprietary software on their systems is not "wonderful".
Theo de Raadt's requests are quite clear: he's not asking for gratis firmware development (and how much that development costs is wildly overestimated so long as people are willing to do this unpaid). He and other OpenBSD hackers are willing to write that software themselves (including maintenance and bugfixes probably for longer than proprietors). He's asking for complete and correct documentation to hardware, and he has also previously stumped for a license to distribute proprietary firmware. This strikes me as a position no proprietor can argue with, yet some do.
Digital Citizen
Why don't hardware makers build cheaper, non-state-of-the-art hardware for open source operating systems, with open source designs and drivers? If they're modern enough to get decent performance they'll sell a ton of them and they'll work for the open source community.
Call me crazy, but paying for a top of the line Nvidia or ATI card that will never have the driver support it needs to be utilized seems like a waste of my money. The same goes for any other piece of hardware that isn't/won't be fully supported by the manufacturers.
While I respect the fact that there are at least a handful of projects underway to develop open source hardware, it's a tough field to enter and likely when they do hit production each batch will sell out before most can get their hands on one. The hardware makers obviously have the resources and financial incentives to make a lower-end, open piece of hardware. The fact that they don't stinks to high heaven.
Am I wrong in thinking that a card with slightly older tech using open source drivers that can actually be optimized to spec is better than a state of the art card with poor drivers (be they open or proprietary)?
-HobophobE
Nothing laughs forever.
I connect my desktop to the internet by wireless because running cables to the cable modem is very difficult. After trying to get Linux to work with my wireless PCI card, I finally decided that it is much simpler to use a wireless router as a bridge and connect my desktop to the bridge by ethernet. A cheap wireless router is $40. That's not much more than a wireless PCI card. It's even possible to install Linux on many routers and have quite a bit of control over the configuration of the router.
A little off topic... but, if you need Linux to work with WiFi and other gear that only has Windows drivers, you can run in a virtualized environment like VMWare. No, it's not the right answer, but it's here now and it works. I can't be bothered to fiddle with WiFi drivers just to get into Linux for a few minutes here and there... it's nice to have it just work with the virtualized network drivers provided by VMWare - especially now that VMWare Server is free as in beer.
Funny thing is. All my various wireless cards (which have a Atheros chipset) all work out of the box on Linux distributions that have wireless. I didn't even know this was that much of a issue.
I know with some other chipsets (like broadcom), it's just requiring you to install some package that contains extracted firmware images.
Now Windows on the hand (XP SP2, 2k3 sp1), never had a single wireless card in my experience that worked out of the box with it, ever.
Change is certain; progress is not obligatory.
I'm no Computer Scientist.. but as near as I can tell, my Gigabyte GA-K8N51GMF-9 motherboard gets it's firmware from the OS. It's got onboard VITESSE 8201 gigabit lan. I deduced this from the fact that I cannot reboot from XP to ubuntu (if I want LAN). I have shutdown, then physically unplug the power supply, wait 30 seconds then power up and boot linux. Otherwise LAN driver wont work in linux.
Kinda sucks.
Just let me clarify: these mass retailers have no support both for Windows and Linux.
As a matter of fact, the very few employees available can only do basic things, like fetch missing items from inventory, check prices, inform about payment options and similar.
They don't understand a-n-y-t-h-i-n-g about PCs, headsets, DVDs, TV inputs etc.
Exceptions occur when the PC maker itself hires a demonstrator to stay at the market and answer the customers. But it's not like you're going to get an impartial view...
I have a built-in Broadcom BCM4318 wireless card. I actually found Linux drivers for it. To use it, I needed to extract the firmware from the windows drivers. After that (and tinkering) I could actually connect and send packets. But, alas, any request was painfully slow and had a lot of duplicate packets. So, I just gave up and went with Ndiswrapper. Oh well...
I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
Free software advocates won't install non-free firmware because that software is non-free.
That makes no sense at all.
All hardware interfaces have magic bits that the driver has to set as part of the device initialization. Uploading a non-free binary firmware blob is no different to this at all --- it's just a longer device initialization.
Theo's issue with blobs not being freely redistributable *does* make sense, since a free O/S can't be complete unless it can carry the driver's binary firmware blob in its distribution. But that firmware blob doesn't need to be free at all, as it's merely a magic incantation for device initialization.
It's not as if the firmware blob had to run on the main CPU, as is the case with the far more evil nVidia and ATI graphics blobs, which are not firmware but binary modules. That would be extremely different.
One issue you ignore is that firmware blobs could, potentially, contain backdoors or spying software connected to whatever bus(es) they're connected to. While it's certainly possible for hardware to be directly bugged, it's much easier (and cheaper) to allow for upgradeable bugging. Truthfully, main CPUs could fall under this same problem. But I think in the long term, the desire is to open as much as possible so that users of a system can better trust the system. Getting hardware to work in the first place without some huge hurdle for users is merely a first step. It is, after all, the case that people buy hardware for the functionality the hardware can perform well. So, I don't think there's a reasonable fear of them becoming obsolete. They just have to fear not gaining as much profits or perhaps being associated with the shoddy programming of other developers (at least one reasonable reason for why they might wish to only have their own code be used; whether the adversarial approach of keeping code closed and being as tight-lipped about hardware as possible is reasonable is another issue).
Eurohacker European paranoia, gun rights, and h
Who cares about HAL? Do you want to reprogram chip to use frequencies not allowed in your country?
I don't care.
Otherwise Atheros drivers are free - BSD and GPL licensed.
The bottom line is ... well the bottom line in dollars.
... if you can get the firmware running.
Programming embedded CPUs and DSPs can do the same tasks cheaper than larger silicon when there is a large number of units produced, bugs can be fixed without recalls, and new features can be added.
It's better for everybody
--I thought I was wrong once, but I was mistaken.
Similarly, owners of wireless devices have paid for, and the wireless device vendors have sold and received money for a permission to download the firmware to the device. I doubt the wireless vendors have any right to force users to use Windows or the Windows driver to send that firmware file to the device.
In many countries, specifically in Norway, where I live, there are laws to protect the right to do reverse engineering. Any license agreement not to do reverse engineering is invalid here. The laws say explicitly that these provisions cannot be overruled by agreeements between the parties. It should be possible to extract the firware from the driver in a country that allows this.
I strongly doubt that distributing the firmware code to owners of the corresponding devices can properly be seen as distribution against the permission of the copyright holder. It may even not be considered to be "distribution" in the sense of the IP laws. While companies may try to convince judges about anything they see convenient, especially if they have secret arrangements with a monopolistic software vendor, it is not too likely that the courts will believe them.
I am more uncertain about the inclusion of the firmware blob in e.g. Linux distributions. Instead linux distributions could be equipped with software that automatically searches the net for the binary blob. Such software would only work if the computer has another way of getting connected. On the other hand, the software could be made to do this under Windows too.
Here I am talking about the firmware, not the driver. As more functionality is moved into the driver, it probably becomes more difficult to reverse engineer the device driver even if the firmware blob can be successfully loaded into the device. Still it should be doable, while reverse engineering the firmware is next to impossible.
There is no substitute for common sense. Especially, no body of rules will do.
There are sound economic reasons to use firmware that must be loaded at boot time rather than the slightly more expensive EEPROM, and a good technical reason as well. Ever since Intel's embarrassment over the Pentium's infamous bug, microprocessors have included the ability to load microcode patches at boot. Engineers learned from that experience that there must be a way to fix HW problems with firmware patches. If you have ever upgraded the firmware on a device only to have a power failure at the critical time that the EEPROM was being reflashed, you know what the technical advantage is.
Since the device itself may have information about its internal state that isn't disclosed to the CPU, there should be a mechanism for it to signal the host that it needs a fresh copy of its firmware overlay. I'm sure that systems programmers can think of a few other items to go on the list. Now all we need is a working group of the major players to come up with a standard. Maybe it could be done as an extension of Open Firmware.
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
If opening up specs for the hardware made the hardware *necesarily* break FCC regs, then the hardware is inherently breaking regs.
I'll give you an example of why (which also shows why this idea isn't the reason either):
Install a wireless device.
Go to the japanese driver page.
Download japanese firmware.
Install japanese firmware.
Your system now breaks US or UK emissions regs.
See?
If you posit that you cannot do this then your lappy will break regs in the UK if you're from the US.
IF FCC regs were the reason not to open up the firmware specs then they are already breaking things. That neither the FCC nor the manufacturers have changed the scenario shows that this cannot be correct.
In the past, firmware was usually on a flash chip onboard the device. Often it was still loaded from there into the device's ram by the driver (I know, I've written drivers that did just that). There's no significant difference between loading the firmware from a flash chip and loading it from disk, except that you don't have to pay for a flash chip.
It seems the marketplace of ideas continues to drift away from Lunix. Hardware vendors are realizing the benefits of using software for big cost savings... while Lunix users continue to chase Microsoft's tail lights.
Oh... I have an idea! Maybe Lunix can come out with a Hardware Compatibility List. You know, a concept MS did over 10 years ago?
Poor little Lunix. Always having the world pass it by.
This is much like the inkjet ink and toner cartridge problem. Almost all the toners are actually the same or extremely close and compatible. But the manufacturers keep brining out new models of cartridges for new models of printers so that they can sell the razor blades. Incompatibility drives up the prices, and even the costs, for everyone. It is dumb marketing, not good business.
ndiswrapper: this is what I am using right now to post via a Linksys WUSB11 v.4 with sompe strage chipset. It was 0.99 on ebay.
DriverLoader: commercial driver loader. The people that make it also make kernels for FC6 with 16K stack size so that the driver will load.
realkiwi
There have been attempts made to produce hardware specifically for the Linux market, when there has been a perceived demand and a lack of products coming from the Windows side. Specifically, there is a company producing HDTV tuner cards specifically for Linux.
The company could be a model, I think, for the type of "open hardware" development that you're talking about. They went out and designed a card specifically to be compatible with Linux, including using parts that were well documented, working with manufacturers, writing open-source drivers, etc. The company's name is pcHDTV.
The result? It's a bit of a mess, actually. In fact, I've had people recommend to me that I use a Windows TV tuner card, rather than the pcHDTV one, because -- get this -- the drivers are better. That's right: the drivers produced by a company doing all the right things, and in good faith (as far as I can tell), are widely assumed to be worse than the reverse-engineered ones for undocumented Windows tuner cards. And in their defense, it's not really their fault. The open-source drivers they release do work at the time of their release, but tend to get broken in time, and the developers don't have the resources to keep up with the interface changes. Because the product is seen by the community as being 'commercially supported,' the drivers don't get the same attention by other parties as the reverse-engineered ones do, and the end result is they end up not working as well.
A comment made by one of the driver developers on their technical support Forum is telling:
I hesitate to quote this guy, because it's obvious he's responding to a frustrated user, and I don't want to get him in trouble, but I think the point he makes is an important one. Linux is widely perceived as a difficult platform not to develop on per se, but to maintain software on. Even with a company that's ideologically motivated to support Linux, working with the community can be very difficult.
There are a shortage of examples that you can really point to as models for Linux "open hardware" development. Before we can even think about making something as complex as a WLAN card, the basic issues at play here with pcHDTV need to be worked out. Nobody wants to develop hardware and promise to support it, for a platform that's constantly in flux. Users don't want to buy hardware that's not supported at least at a basic level with their chosen OS/distro. And so you have a chicken-and-egg problem.
"Open hardware" would definitely be a solution to the rapidly-closing world of commodity hardware, which promises to only cause more grief to alternative OSes in the future (barring some sort of governmental action, which seems unlikely); however, for th
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
QLogic includes firmware in their drivers. It's not so bad, as they have reasonable Linux support.
Sure, they *might* be able to prevent them from distributing the firmware itself, but the hardware owner already has that as part of the vendor supplied driver. The OSS driver can simply harvest it from that.
Which works well but has a severe draw-back : it only exist for the few platforms nVidia choose to release it on (mostly x86 running Linux ; maybe x86-64, and if you're lucky a couple of BSD variants, and that's all. No way to use it on anything else : be it PPC, Sprac, SuperH processors running Haiku or Plan 9, etc.)
It's normal that ATI and nVidia can't support every possible combination of architectures under the sun, that'll require too much work for realy small markets.
BUT, they aren't doing anything that could help hobbyist to develop their own drivers. That'll need the hardware specification being released, but that's not the case.
for ATI, specs are only available up to R2xx (Radeon 9250), R3xx and R4xx (9500 to X850) had to be reverse engineered, and R5xx (X1300 and up) still lack any opensource implementation.
for nVidia the situation is even worse, a lot of work is still needed to make the Nouveau drivers work
only Intel seem to have a long history of supporting open-source implementation for it's graphic chipsets.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]