Slashdot Mirror


The OSS Solution to the Linux Wi-Fi Problem

tobs writes "Matt Hartley of MadPenguin.org fame has published an open source way of solving the Linux Wi-Fi problem. He writes, "For intermediate to advanced users, who are willing to track down WiFi cards based on chipsets, live without WPA in some instances or have opted to stick with Ethernet, buying a new notebook for the sake of improved wireless connectivity may seem a little overkill. When a new user faces problems jumping through the NDISWrapper hoops, tracking down WiFi cards from HCLs and other related activities, the end result is almost always the same — they give up. What so many of us, as Linux users, fail to grasp is that projects like OpenHAL are critical to long-term development. The education on what to expect and what not to expect remains a complete load of hot air when articles claim how easy it is to setup wireless Internet on Linux machines. It's downright misleading."

8 of 204 comments (clear)

  1. Weird... by mdm-adph · · Score: 5, Insightful

    It's like I RTFA, but then again I don't feel like I RTFA. Anyone else notice that? Is there some "Page 2" button I'm missing?

    --
    It is by my will alone my thoughts acquire motion; it is by the juice of the coffee bean that the thoughts acquire speed
  2. Atheros by Brian+Lewis · · Score: 5, Informative

    After spending hours on breaking and re-breaking wifi on my laptop, I went out and bought a $20 wifi card with an Atheros chipset. It has worked flawlessly sense, without having to jump through the ndiswrapper hoops.

    And any time someone new the *nix asks me about wireless, and why it isn't working, I always insist they spend the $20 on the Atheros chipset, as, again, it is damn near flawless.

  3. What's the REAL Solution though? by eldavojohn · · Score: 4, Interesting

    The OSS Solution to the Linux Wi-Fi Problem I'm confused, this article did not propose an OSS solution for the Wi-Fi problem at all. In fact, it just told me things I already know from first hand experience that I've posted about before.

    What confuses me so much (and I really am ignorant in this department) is why the ethernet chipsets were seemingly conquered right off the bat? I tried my first Linux distro (debian) in 2001 and ever since then no matter what the machine, no matter what the distro, no matter how confused I was the NICs always came up ready to go when I installed Linux. I've done this on a lot of machines, from obscure to well known Dells and used most of the major distributions. They just 'worked' and it was good.

    Now, wireless is here and for some reason, there must be a thousand different manufacturers with their own proprietary chipsets with completely different drivers & BIOS data on the flash memory stored in those chips because I've only had Ubuntu work once out of the box on a Linksys PCI WiFi card. Why? Why isn't that standardized? What do the companies gain from that? Is it because of the ever changing standards that the chips are so wacky? Is it because the A, B, G, N, etc. protocols? I don't understand this because I've never coded drivers.

    I understand what MadWiFi & OpenHal are trying to do. I now know to look for "Atheros" chipsets when I buy my wireless stuff but they are often more well known brands and more expensive. A reason I switched to Linux was to save money in college, not spend more on the hardware.

    Maybe a more helpful article would be detailing the real underlying issue--that these no name brands that get huge rebates at CompUSA or where ever (Hawking Technologies, generic boxes, etc.) are targeting Windows because of the number of users. How do you change their minds or show them a market for an OSS driver? Is there a way to even open up a channel of communication with them to discover how to write drivers for their chispets? How do you convince them it's worth their time/resources?

    That would be a solution moving forward.

    The next best thing would be to post an article about how to get started making these drivers. I'm a coder (though not the greatest one) with a little bit of free time. How do I start? How do I get access to the BIOS pages on the chipsets? What do I do with that, how does the Linux kernel use it? What books do I read that teach me how to start with a chipset I know nothing about, have no resources on the data or mechanics and then poke it, prod it until I know enough about it that I can set it up for the kernel to use it?
    --
    My work here is dung.
    1. Re:What's the REAL Solution though? by david.given · · Score: 5, Informative

      Now, wireless is here and for some reason, there must be a thousand different manufacturers with their own proprietary chipsets with completely different drivers & BIOS data on the flash memory stored in those chips because I've only had Ubuntu work once out of the box on a Linksys PCI WiFi card. Why? Why isn't that standardized? What do the companies gain from that? Is it because of the ever changing standards that the chips are so wacky? Is it because the A, B, G, N, etc. protocols? I don't understand this because I've never coded drivers.

      Because wireless hardware is really complicated.

      Typically a wireless card is a microcontroller with ROM, RAM, and a CPU --- usually an ARM. One end is plugged into the radio, of which there are a zillion different varieties. The other end is plugged into your computer.

      Some wireless cards don't have their software on ROM --- which means that in order to make it work, the first thing you have to do is to upload the software from your PC. This is the infamous 'binary blob' problem. That software is highly proprietry and really, really hard to write. So far (although I could be wrong) there are no open source firmware replacements.

      Even once you have the card programmed and running, you still need to talk to it. This usually involves a driver that needs to know how to talk to the wireless card's host hardware (the bit between the microcontroller and your computer), the firmware itself (which may have different command sets for different versions of the firmware), and sometimes you even need to know implementation details of the radio chipset. That's a lot of information you need access to, and it all interacts in rather horrible ways. (Also, FCC regulations may mean that the vendors aren't allowed to give you information that could be used to, say, make the card operate on unauthorised frequencies...)

      It also doesn't help that the Linux wireless layer isn't terribly well designed: the abstraction layers are in the wrong place, which means that in order to write a driver you have to duplicate a lot of code. That's one reason why the BSD operating systems typically have better wireless support. Their driver framework makes it a lot easier to write wireless drivers.

      The good cards usually have well-designed firmware on ROM with a sufficiently abstract interface that implementation details aren't exposed. They're easy to support, because the vendor can change the implementation without having to change the driver. The bad cards have firmware that's loaded at run time that exposes lots of implementation details that the vendor can't tell you about because the third party whose radio chipset they're using made them sign an NDA. (Or just because they don't want to. Broadcom fits this category.) They require lots of unpleasant reverse engineering.

      So, in short, wireless drivers are hard because wireless cards are really complicated.

    2. Re:What's the REAL Solution though? by grahamm · · Score: 4, Insightful

      Typically a wireless card is a microcontroller with ROM, RAM, and a CPU --- usually an ARM. As wireless cards are intelligent with their own processor it should have been relatively simple for a high level API to have been defined (in a similar way to VESA for display cards) by which all wireless cards communicate with the host computer.

  4. Re:Scientist's viewpoint by Walpurgiss · · Score: 4, Interesting

    I remember feeling that way around when the internet was gaining traction. It was so hard to find a linux compatible modem in stores since almost everything at the time was a winmodem piece of trash that let windows control everything and had almost no on board processing. I couldn't believe how many hardware vendors wouldn't be bothered to make standalone modems, instead opting for the cheaper windows only idea. Though with my current laptop I got lucky, had an atheros chipset that was supported by madwifi. Took some tooling around to get WPA-PSK to work; but it's ok now.

  5. Take the time to buy the right hardware... by Kludge · · Score: 5, Insightful

    a complete load of hot air when articles claim how easy it is to setup wireless Internet on Linux machines


    I just installed Fedora 7, and I am managing multiple wireless networks with NetworkManager, no configuration at all. Zilch.

    Of course, I have a 5 year old Dell. People think they can buy whatever hardware they want and just have it work. No. You have to be selective. That's why my 3D desktop runs on Intel video.

    Buy companies that support open source from the beginning, dammit, or other companies will never see the use of providing drivers or specs PERIOD.

  6. Re:Atheros names/brands/sources would be nice by Roofus · · Score: 4, Informative

    http://linux-wless.passys.nl/. Just search the complete listing and look for the Atheros chipset.