Posted
by
timothy
on Thursday September 09, 2010 @02:40PM
from the they-sure-get-my-goodwill dept.

I'm Not There (1956) writes "Broadcom, the world's largest manufacturer of Wi-Fi transceivers, open sources its Linux device drivers. This is a big win for Linux users, as there are a lot of users that face Wi-Fi problems when they use Linux on their laptops. With these device drivers now open source, distributions can ship them out-of-the-box, and that means no Linux Wi-Fi problems for new devices and upcoming distributions at all."

Congratulations Broadcom, you have just made at least one geek very happy.

It would be more if they had done this years ago. I have many not so fond memories of trying to configure broadcom cards under linux. I can partially blame the status of my hair on broadcom wireless cards.

Even if it doesn't delay it, they could opt to ship with a "probably works" driver. A driver that might not work for all machines or that might break under certain conditions is far better than the current "no driver" situation. If it worked just well enough to connect and download an update, that would be great!

Hehe I am not a hardware kind of guy, but I've known of Broadcom chipsets for years and years, thanks to what seemed like a tireless effort to make their cards incompatible with Linux. This is a tremendous good news for the free software community. I think that we are at a place now where we should take a dysfunctional open-source driver over an apparently (!) perfect closed-sourced blob, since the latter is COMPLETELY useless in production due to the security considerations.

A great question. From the security standpoint, a working microkernel would make it possible to run some binary blobs safely, but, and this is really interesting, not a network driver. Never. Such a driver does not need to escalate anything. By definition, it already has the ultimate access to one piece of hardware that allows it to see all raw network traffic and connect in perfect secrecy to any host on the net. Secrecy from the OS, of course, not from a forensic tool down the wire, but the latter one can

Your issues assume that someone can't look at the specs online for a model that is at the store. Most brick-and-mortar computer and electronics stores actually do have websites. You can even print out the specs and take the paper to the store with you. Most of this information even happens to be on the box or in the spec book at the store. Many stores even really do have Internet (or at least Intranet to their own site which has different pricing than the public Internet site, but that problem was uncovered

Then perhaps a hybrid kernel might be better: trusted drivers run in the monolithic core, while untrusted drivers run as user processes in a sort of microkernel. See FUSE [wikipedia.org] for an example of this.

My broadcom BCM5311 has been working just fine using the b43 drivers included in Linux; they are there for quite some time..Good news for everyone though. This means new broadcom hardware support and improvement of current GPLd drivers.

I've never really understood: why don't more hardware companies open the source for their drivers? Is there super-secret special source in the drivers that they're trying to prevent their competitors from learning? Is it an issue of patents?

It seems to me that drivers are an instance where opening the source should be a no-brainer. It's not like an application, where you're trying to sell the software. People still need to buy your hardware to make use of the drivers, so it's not like your customers will be inclined to stop buying things from you. I would image you could drastically lower the cost of supporting the drivers by opening them, though. You'll probably increase quality at the same time.

Often these drivers connect to registers in the hardware that are *not* public knowledge. In the case of WiFi and other "firmware" radios the driver often contains DSP code that would normally be in Si but is now in loadable firmware, thus the manufacturers want to keep that a secret.-nB

I believe one of the reasons is that you must not be able to program your wifi cards radio to work on unauthorized frequencies. This is a FCC requirement. This is one of the reasons that the excellent madwifi driver still needs a binary blob (although the devs have access to the firmware source code, it was by NDA only).

If you have the ability to modify the firmware, you can make it violate regulations. For example, if you hack the madwifi driver you can make some cards work up to 100mW of power (limit whe

If you had the firmware source code you could all sorts of crazy stuff that would be against regulations.

Yes. I run Tomato on my WRT54G. It has an option to directly set the desired output power in milliwatts. Don't know how accurate it is, but it does do something. I actually used that feature to reduce the power output. I set it to provide good connectivity throughout the house, yet make it very difficult to get a connection outside.

Nevertheless, I don't like the idea of the FCC essentially requiring hardware vendors to keep source code proprietary when even the vendor wants to release it. That's not the

My company manufactures devices for PCs. We do NOT open source our drivers; I'll give you my two cents as to why:

1. Licensing. Our drivers include licensed code from at least two other companies - code that implements algorithms seen as proprietary and valuable by those companies. We don't have the right to publish that code, and couldn't conceivably convince them to do so.2. Competitive advantage. We have several competitors in our market. The specs that Marketing puts on our datasheets might be optimistic in some scenarios. If we open-sourced our drivers, our competitors could easily demonstrate that to potential customers - if their drivers were closed, we would not have the equivalent opportunity to prove that their liars were worse than our liars.3. Support. If we publish source, we will end up fielding all kinds of questions from all kinds of people about all kinds of aspects of our product. Even if we simply answer "Go away" to all those queries, there's a lot of time spent reading and replying (or simply ignoring) them. Considering that we sell our products to OEMs for a few dollars, there just isn't any margin for end user support.4. Security. Say what you will about "security through obscurity", it still has a huge following in the corporate world. Publishing all your source code provides all kinds of opportunities for the scoundrels of the world to take advantage, from the PHB point of view.5. Financial. There is no business case to be made to disclose this proprietary information. If I'm not going to make money from something, why should I spend the time/effort to open source it, and perhaps give away information that my competitor could use?

In Broadcom's case, there are probably others also - for example, publishing source for a Wireless card could allow operating the RF section beyond regulatory limits - transmitting/receiving out of band, transmitting with too much power, etc. This could jeopardize certification (such as FCC certification in the US) or subject the company to unwanted regulatory scrutiny.

If I had mod points I would have gladded modded you up, though only for your first point. I feel the rest are either washes (you mention bad potential problems without mentioning the potential good ones) or things that are borderline illegal (or should be).

1. Great point, can't argue this one.2. Is the spirit of fraud, if commonplace and within the letter of the law, and should not be tolerated.3. Support, if your source is good enough, other people (the community) will actually do your support for you in many cases.4. Do I actually need to pick this point apart? While it is correct that many PHB believe it, it isn't actually true.5. There are plenty of business cases to be made for doing so. Free (unpaid by you at any rate) coders improving your device, and depending on license, being required to make those improvements available to you for starters.

1. Licensing. Our drivers include licensed code from at least two other companies - code that implements algorithms seen as proprietary and valuable by those companies.

Release the rest, and provide descriptions of the missing algorithms. They'll be reimplemented in a week.

if their drivers were closed, we would not have the equivalent opportunity to prove that their liars were worse than our liars.

So don't lie.

3. Support. If we publish source, we will end up fielding all kinds of questions from all kinds of people about all kinds of aspects of our product.

Really? Do you think end users are really going to contact Broadcom? Or are they just going to go to the Ubuntu forums like they have been.

4. Security.

We all know that's bullshit.

5. Financial. There is no business case to be made to disclose this proprietary information.

But there is. Before today, if I wanted a wifi router I would only buy one with Atheros chips. Now I will seriously consider a Broadcom based product. I had never run ATI cards before they open sourced their drivers in 2007. Now I have an ATI card.

1. I should spend a month or two of engineering time to write specifications for a block that isn't part of my core competency?2. Don't take "liar" literally. Marketing is always guilty of Puffery, and in the US this is acceptable. Datasheets always have specifications which, if taken out of context or tested outside the conditions in the tiny print, can be proven wrong. In the market, to remain a viable business, you have to "puff" as much as your competitors do - look at beer, cigarette, car, computer advertising. A company that lets the Engineering department write the marketing materials doesn't survive long. Frankly, our materials are a whole lot closer to reality than our competitors - we've never published wholesale lies, to the best of my knowledge, which isn't always true of those I've competed against.3. Yes, really.4. Yes, I know that's bullshit. Tell that to my CEO and CFO.5. OK, we'll lose your business - that's $3 worth of revenue that we won't receive, once. We hope that you'll see the value of our products in the future and be willing to consider us then.

1. I should spend a month or two of engineering time to write specifications for a block that isn't part of my core competency?

Don't try to describe it all, just point out that function calls X/Y/Z are used, point them out, and talk about what they're expected to do.

I don't believe the "implemented in a week" claim, but at least someone could build a black box that might meet your needs. If you said, "This sorts the $FLORBS", or "This needs to quickly calculate checksums for integrity" or "This needs to do ${COMPLICATED_MATH} quickly on ${STUFF}", people can at least try to implement it. An inefficient but working implementation will meet some people's needs, even if your proprietary drivers use code thich has been heavily optimized for speed, reliability, or correctness. Assuming anyone cares enough to write them.

1) Uh... Don't you document your device's interfaces so you can code to them? If not...heh...remind me not to buy your company's tech... >;-D

2) Puffery is puffery. And worrying about this is in the same vein as the security argument. If you can have a bad situation because of flaws in the framework, what else is broken. I'd not use your product. Keep in mind, though, with me you're likely to be talking 10k+ units worth of revenue if I'm the guy you're talking to. If you're doing this, you may wel

1. Is usually not that easy, if it's licensed for use in the driver there might be bits of it many places. It'll take developer time and lawyer time to do, or you could risk a huge lawsuit.

2. Being the honest loser of an OEM contract doesn't put food on the table.

3. Common end users? No. But certainly some developers in the community will start asking hard questions and expect answers. If the driver isn't working well enough, the negative PR will hit the company, possibly worse than if they had no driver at all.

4. It doesn't matter if we "know" it's bullshit, as long as PHBs believe it

5. Invisible and unmeasurable sales. Nobody will know and can put in a business case that this is why you bought that router.

I see a lot of these answers, that just say "well it's not a technical problem, so it's not real". Legal liability, losing contracts, bad PR, security concerns and no proven business case are problems even if they're just perceived to be problems. Unless you'd like to buy out some of these companies and bet your fortune on these problems not being real. Yes, I'm being overly pessimistic when I answered here, but it's too easy to think all they needed was a grocery list from slashdot. That's what everyone is looking for in a business case, what's the weaknesses you didn't include and is your downsides soberly assessed? Business cases that only deal with the sunshine scenarios don't usually get through.

1) True. The right thing to do is to go open source from day one.2) Being verifiably honest is a competitive advantage.3) Perhaps, but a little bit of support time is a small price to pay for free development. It's not going to cost you more than it would have to hire someone to write it. And concerning the 2nd part of your answer, do you have an example of that happening?4) I think the OP was asking for good reasons, otherwise we could have answered him simply with "Because PHBs are assholes". That is the only real reason.5) Nobody knows whether or not a given advertisement causes me to buy an item either, but we are still saturated with advertising. An open source driver is another bullet point marketing can use to sway people.

5. Financial. There is no business case to be made to disclose this proprietary information. If I'm not going to make money from something, why should I spend the time/effort to open source it, and perhaps give away information that my competitor could use?

You might find this hard to believe but the large OEM's (HP, Dell and all the others) are demanding Linux driver compliance in their OEM selection process. Linux is huge in the server market, particularly in visualization, is taking over the cell phone market and will one day be in the home. If you don't OSS your drivers you will lose OEM contracts and likely won't be told that you lost because you didn't have Linux drivers.

Linux will one day be the dominant OS in all the backend servers, the dominant players in the largest percentage of Embedded devices (including cell phones) and in the future will dominate the desktop.

I (not the original poster) make six figures a year. I buy a lot of gear. I own my own house (etc) and I select strongly against companies that do not open source their specs and drivers. Granted I cannot avoid such things completely. But I do try and I do substantially succeed.

I work in defense contracting. My projects substantially select against hardware that doesn't open source their drivers. Granted they do not avoid such things completely, but they do dry and substantially succeed.

I think its a bit of a case by case basis. I know in the case ATI, when it was taken over by AMD, they wanted to release Open Source drivers as quickly as possible but couldn't straight away because third party companies had contributed parts of the driver software and it was under NDAs. I think it took them a little while to work around some of those issues, secure agreements, etc. In other cases, companies have things in their drivers that they don't necessarily want their competitors to be able to just g

I know in the case ATI, when it was taken over by AMD, they wanted to release Open Source drivers as quickly as possible but couldn't straight away because third party companies had contributed parts of the driver software and it was under NDAs. I think it took them a little while to work around some of those issues, secure agreements, etc.

Actually, far more than that. They gave up on "washing" the internal code base and the open source drivers are essentially written from scratch with only slight one-way code sharing. In some cases yes they look at it to figure out how to program specific bits of hardware, but that's about it. And even that almost-from-scratch rewrite has to pass through a fairly serious legal review to make sure they're not revealing too much IP. Most of the shit in the graphics drivers is caused by DRM though, they can't r

Corporate mentality. There are a lot of companies out there that just don't get it. They think that every little bit of code that they have under their control somehow gives them an advantage over the competition. The idea of giving away code after they paid to develop it just sounds wrong.

I got so sick of trying to get my broadcom card working on Mythbuntu 10.04, I just gave up and bought Windows 7. By spending $99 on Windows I saved... how many hours of frustration?

I tell friends: try linux. If it works on all your hardware without requiring you to dig through forums or edit text files, use it. Otherwise, save your time and sanity and get Windows. This action by broadcom means the people who take my advice will stick with linux:-)

It could also mean more 2.6.x kernels. Many of these devices gave you the choice of either using the binary blob drivers and a 2.4 based firmware or you could go to 2.6 and hope for the best with the reverse engineered drivers.

Yay! This is definitely nice. Granted, I luckily didn't run into a bit of trouble getting the broadcom card in my laptop to work using the NDIS wrapper last time I set it up on Ubuntu 10.04, but either way it's good to have open source drivers rather than finding quirky ways to make proprietary ones work.

and that means no Linux Wi-Fi problem for new devices and upcoming distributions at all.

Yes, because open source drivers means that they always work, no matter how strange or obscure your hardware and software combination is. That's right, just like all other open source software that never, ever, fails to live up to expectations under any situation. In fact the news is so remarkable that the sun just came out where I live, and I think some very peaceful velociraptors just woke from a very long sleep and are peacefully munching on cabbage, all thanks to this incredible news.

Tomato Firmware is still stuck on Linux 2.4 because Broadcom's driver blob hasn't been ported to 2.6, Don't know how much of a difference it'd make for my WRT54GL, really, but it'd still be nice to be more modern than ~2.4.17.

Speaking as one who routinely works on open and closed projects, believing the documentation would be tempting, but usually a mistake.

The driver reflects the reality. If well commented (particularly if it has developers venting frustration), it really reflects the reality of how that doc got implemented in reality.

Often documentation is first written, then parts fabricated/code developed. When the fabricated parts come in, often there are minor different and/or incorrect interpretations of the spec, major enough to make the doc unusable, often minor enough to work with a change to the driver. When this happens, the driver will get updated, but going back to the documentation... No, not so much.

Particularly when it comes to the 'what it could do' part, at best it's not already done because they decided not to fund it and it is simply untested and may or may not work. Frequently it's because that capability was so fubared in testing that the feature was thrown over the fence to make a schedule.

Ubuntu 10.10 is in Beta, and presumably a feature freeze -- is it possible to sneak these into the development for 10.10? If there's one thing I hate about installing Linux on my netbook, it's getting the fscking wifi drivers working shuttling files via USB thumb drive because I lost the eithernet cable or don't have access to a physical port. Yes, this is a real problem for some people, and many college dorms are starting to go wifi only, meaning you have to hijack a library or computerlab eitherne

Official support for backporting it to the 10.04 LTS release is fantastic news. I wouldn't be at all surprised to see unofficial backport support for 8.10-9.10. In this era, this is something that is just as important for laptop users as basic VGA or USB support.

One of the biggest problems I faced was using a LiveCD to show off Linux.

"Here, boot with this and check it out!""Eh, kinda neat lookin'. How do I get online?""Well, hook your laptop to the router for a bit, or download some stuff onto a flash drive with another computer. Then you have to figure out exactly what model of wireless card you have and follow these arcane steps. No, it's easy, but you have to download these tools, too, to split the Windows driver files in... Wait, why are you booting back into

The only reason ultra-cheap Chinese clones of Broadcom hardware aren't common today is because the lack of documentation. Anyone can tear the hardware apart and see what chips they are using and even, with an electron microscope, reverse-engineer a custom chip. But without the drivers and/or documentation there is no value in the hardware alone.

Now, with the complete documentation (the drivers are the documentation), there is no reason for anyone to spend more on Broadcom devices when they can just as eas

If that was true then Atheros should have gone by now. They open sourced their drivers almost a decade ago, yet they are still around. In fact, due to the excellent Linux support, I've only been buying and recommending to others the Atheros chipset WiFi cards. Not to mention all the extra abilities it gained from the OS community (like the ability to simultaneously act as an AP and client, which brought about mesh networking and community wifi).

They probably gained a lot indirectly in the form of higher sales of hardware due to this, plus the reduction in costs because they didn't have to pay a dev team all this time.

Please, when talking about what someone said, a personal blog link or a link to a journalists entry of some sort displaying the quote. When talking about government / military things, please make sure "proof" links end either in.gov or.mil and nothing else. The above link, talks about Broadcom (who has their own website) open sourcing some of their linux device drivers, yet the link takes you to OS News, which also has another link.

Now, this isn't to challenge the post itself, just how slashdot entries tend to always do this sort of thing.

I haven't looked at the source code --- I can't find it; shouldn't it be visible in in this directory [kernel.org]? --- but the announcement doesn't mention any firmware.

A lot (but not all) of wireless cards are usually embedded ARM processors with a radio glued on. The operating system driver just talks to the firmware, and the firmware does most of the heavy lifting. Some cards store firmware in flash, but some store it in RAM and it has to be uploaded from the host computer every time the device is reset.

Does anyone know whether these chipsets do require firmware, and if so whether it's included in the source release?

I had tons of linux issues with Broadcom drivers and figured out both driver software and firmware were problematic. The Broadcom binary driver for my Broadcom chip version is not available, only the general linux driver, which nearly works. Now the tricky part is the firmware. Windows drivers update firmware on the fly whereas linux drivers don't. In fact, changes in firmware cause linux driver to work intermittently. Sometimes linux driver will fail to initialize connection due to some problem with firmwa

No one is saying that device drives will magically start working flawlessly because their source code is open, although it will make it easier to track down bugs (see Linus Torvalds' quote about the number of eyeballs).

The main point, however, is that now Linux distributions can ship these drives out of the box, so wireless devices will work straight away. Until now the biggest (and dare I say only?) problem I've had with installing Linux on a laptop is finding and installing the right drivers for wireless network cards.

That's what the text says though, or do you have a problem reading the quote?

and that means no Linux Wi-Fi problem for new devices and upcoming distributions at all.

Just do a quick search for rt2x00 bugs, they've been open sourced a long time, and still has plenty of bugs and failures. It's not magic, it wont' make all problems go away. Yet, that's what the claim is.

Just do a quick search for rt2x00 bugs, they've been open sourced a long time, and still has plenty of bugs and failures. It's not magic, it wont' make all problems go away. Yet, that's what the claim is.

Well yes if the released source is crap and the documentation is equally crap so you can't figure out how to fix it then GIGO it is. But Linux doesn't have the luxury of being prioritized as highly as Windows or Mac except for server components, I would say in 99% of the cases open source is better than closed source. Then at least you can fix obvious logic errors or overflows that you don't need chip documentation to understand. This is one big step closer to installing Linux and having it all Just Work(tm

No one is saying that device drives will magically start working flawlessly because their source code is open, although it will make it easier to track down bugs (see Linus Torvalds' quote about the number of eyeballs).

Microsoft has something better than "eyeballs": the Static Driver Verifier. [microsoft.com] This has been under development for a few years, and now, Windows 7 drivers don't get signed unless they pass static verification.

This is real proof of correctness, in actual production use. It doesn't guarante

hmm.. I still have to see a driver for any wireless card that crashes linux. Worst case scenario, it just doesn't work, which was incidentally the problem I had with my broadcom adapter on an Acer Aspire One D250. but crash the OS? not really, no.

Oh, lighten the hell up guys, troll? Seriously? Just because I'm pointing out that the open drivers have their fair share of issues too? Open Source is not some magic pixie dust that makes the drivers impervious to mistakes, I'm very happy that it's open source because that means that I might be able to install Fedora on my IdeaPad without wrestling with the broadcom driver(It's sort of working now), but you can't possibly believe that open sourcing the driver will remove every issue with it?

> But apparantly all the 12 year olds with Ubuntu has mod points today, and I probably offended their religion.You really can't understand why you're getting modded down? That comment is essentially a troll.

> But apparantly all the 12 year olds with Ubuntu has mod points today, and I probably offended their religion.
You really can't understand why you're getting modded down? That comment is essentially a troll.

He understands it in terms of "it's always someone else's fault". That isn't really something you can fix despite how easy it is to demonstrate that it's wrong and a puerile way to look at things.

The big problem with Linux Wifi is not necessarily the drivers, but the usability of the rest of the stack. On Windows and Mac it's easy to connect to a wireless network; you can do it in a few clicks and enter a password, because the Wifi tool is part of the GUI. Then you are done.

On Linux, the Wifi tool may (or may not) be part of your desktop environment. There may be several possibilities for your desktop environment and included in your distribution. As a new user, you will not know which i

As a counterpoint, I found it dead easy with Ubuntu Netbook Remix on an Asus 701. It was about as many clicks and menus as it takes on OS X and WinXP. Now a given distribution may not always make it that easy for you but this should basically be solved for the distros intended for desktop use.

As a counterpoint, I found it dead easy with Ubuntu Netbook Remix on an Asus 701. It was about as many clicks and menus as it takes on OS X and WinXP. Now a given distribution may not always make it that easy for you but this should basically be solved for the distros intended for desktop use.

I agree. I found Ubuntu and also OpenSUSE both pretty painless on my Thinkpad. The only problem I had with either of them was that they wouldn't control the CPU fan (but that's a known issue with this model's embedded controller firmware.)

The only real difference between the open source driver and a proprietary one is the project manager behind it. Company X releases a driver for device Y and it is working slowly, eats memory like mad and crashes when the load is high, but it does function. It comes back to the project manager to decide "do I care enough to ask upper management to give me money to fix these issues?" and "if I do ask will upper management care?". The answer to both of these questions will likely be "NO!", reason being if y

Maybe I'm about a year behind on Broadcom on Linux, but last I looked you had to use NDISWrapper with the Windows driver to get it to work, and Broadcom had no actual driver (was using a 2007 era HP Laptop).

Wireless, for the most part, works very well under Linux. If you were unable to get the linux version to work you could always use the windows version via ndiswrapper.

In the past year alone I have seen a significantly reduced instance of wireless driver issues as the open source community has worked out so many of the problems. Though, you had to install them after you installed the distribution--you were told there were proprietary hardware drivers available (automatically). You needed only a couple clicks and a reboot to make them work.

This provides a way to have wireless work without the need to be prompted for proprietary drivers and the reboot.

If there was a reason to complain, and there was about 2 year ago, wireless is where it was at. Linux didn't bring joy all the time, especially in certain HP laptops. Even so, it seems every week I have to deal with issues with a customer's wireless device under Windows XP, Vista, or Win7 (though not as often under Win7). It isn't a joy to work with them under Windows either.

Most drivers under Ubuntu/Linux don't need to be installed. It just works. It isn't like Windows.

To address your question, I would reply that you do it the same way you do it in Windows. Connect up the wired port or use a second machine.

In the case that the drivers aren't there you often, in the case of Ubuntu, are prompted telling you that you have proprietary drivers available. At that point you can just click a few buttons and have them installed. They will automatically be downloaded and installed.

Due to some unfortunate attitudes/politics in the FOSS world, "Linux" is still only loosely defined as a desktop platform.

Without being defined more clearly with a platform spec -- including UI -- and an SDK to make app developers feel at home, the usability and fragility of the desktop-oriented features (*cough* sound *cough* graphics *cough*) will not much improve, nor will top-notch app developers feel more attracted to the amorphous non-platform.

First you say that Linux is too hard for developers, then you say that it works well for developers but not for end users.

Apart from sound (and that is not too hard a problem, given everyone uses Pulseaudio these days, and it can play ALSA and OSS stuff if the distro configures it correctly, and ALSA can also emulate OSS), I have never heard either developers or end users complain.