One problem is that WiFi is completely opaque, especially but not only on Linux. You get no low-level and no debugging information. It just connects and you get some bars, or it doesn't. I never know where to start when debugging a bad connection, and I wouldn't know where to start if I wanted to improve Linux WiFi.<p>For example, sometimes I can see a network, but can't connect. Why? I'd like to see something like "sent 100 low level packets, checksum failed on 88 of them, disconnecting".<p>Or I'd like some way to see whether receiving or sending is the problem - do I get garbled packets, or do I get good ones, but no answers to the ones I send.<p>Sometimes I know a connection is WPA2, but it stubbornly tries another encryption method. Why? Does the AP suggest it, or is it my configuration? Sometimes I can't enter a text password, it only accepts a fixed-length hexadecimal string (happens on Windows a lot). Again why? There is no good central low-level log file or debug tool that lets me see what is going on.
Right here: <a href="https://wikidevi.com/wiki/Atheros_AR5B22" rel="nofollow">https://wikidevi.com/wiki/Atheros_AR5B22</a><p>This thing works. I just buy them in bulk. I can get one for $13 off ebay. Any device I run Linux on, I replace whatever half size mpcie card it has with one. I don't fuck with the realtek or broadcom chips I get, because ath9k is all-open, no proprietary firmware, works out of the box. Drivers are in any kernel since the 3 series started, the bluetooth is just a generic HCI bluetooth adapter over PCI, shows up as a usb device and works with bluez no problem.<p>My best speeds on 5ghz with one of these has been around 20MB/s. Across my house I usually get around 8 - 10 MB/s. I think these chips are supposed to get much higher average throughput, but it works well enough I don't care. Works under Debian, Suse, Fedora, Arch, Mint, Mageia, even Slackware.<p>Ath10k makes me mad, since they are now shipping firmware blobs. Again. And they were doing so well.<p>I trust these chips so much when I'm doing IT supports and trying to advocate Linux to customers, I have been able to join <i>every wifi network I've thrown the thing at, from ancient wireless-a routers to wireless AC ASUS routers with 2GB throughput</i>.<p>Point is, different vendors have different quality. The ath drivers have been great for me, but I've only ever bought this specific chip because of the value proposition.
I stopped using NetworkManager years ago, I just use wpa_supplicant and dhcpcd directly (well I use the systemd services for these so they're started automatically). I also always name the 2.4GHz and 5GHz networks differently, and connect explicitly to the one I want.<p>Yes it would be great if NetworkManager did the right things automatically, but the task might be impossible due to hardware and driver quirks. WiFi chips are among the buggiest chips in computers today. Really, the chip. I've seen ridiculous workaround in drivers for multiple vendors' chips. Also, the drivers are complicated and buggy. And the linux drivers don't get quite enough full-time attention from the chip vendor to work solidly. Those windows and mac wifi driver teams are pretty big.
I think a big portion of the problems Linux has these days is how unbelievably bloated and overconvulated distributions have become. Every single function has three, four or more ways to do the same thing, often with different results. When trying to get something working I never know if I should run the /etc/init.d script, restart the service manually, edit a config file, use the command line config until or use the GUI settings option. Sometimes you edit a config file and get the thing to work, only to find out some other utility will overwrite it next reboot. Other times you get strange errors or just nothing at all, because it's a deprecated method and you should have used the brand new tool-du-jour instead. It's a mess.
Copy paste, printing and networking. Biggest usability misses of Linux.<p>I don't consider these technical issues...but usability issues. Things like insisting on keeping the install ISO at 750 mb, leaves seamless driver support out of the todo list because...hey, there are no drivers anyway.<p>I'm really surprised there is not a paid version of Linux with these features baked in. I would GLADLY pay for all these (as well as the royalties for mp3,flash, etc)<p>EDIT: does anyone know if systemd-networkd would make things better [1]<p>[1] <a href="https://wiki.archlinux.org/index.php/Systemd-networkd" rel="nofollow">https://wiki.archlinux.org/index.php/Systemd-networkd</a>
I discovered this for myself after converting my parents 5 year old PC from XP to Linux Mint.<p>As you can see from the bug tracker:
<a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/852190" rel="nofollow">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/852190</a>
the kernel drivers are much buggier than the GPL'd Realtek drivers. But the official Realtek drivers don't work with newer kernel versions.<p>Fortunately there is:
<a href="https://github.com/pvaret/rtl8192cu-fixes" rel="nofollow">https://github.com/pvaret/rtl8192cu-fixes</a><p>Does anyone know why doesn't the kernel adopt the official drivers? Is there anything I can do to help? What steps do I need to do?
One of a handful reasons I don't have Linux on my laptop anymore, even though I like so many things about Linux so much more. I'm not sure about this point, though:<p>> Connection time. I dislike OS X pretty deeply and think that many of its technical merits are way overblown, but it's got one thing going for it; it connects to an AP fast.<p>I remember Linux being slow (and unreliable) at this, but OSX is pretty slow too, at least on my MBP. The OS that I've always had the best experience just with connecting to APs is actually Windows.
I can sympathize with this article. Every time my kernel is upgraded, I must manually recompile my wireless driver. I'm using a patched version of a Broadcom wireless driver that some kind soul on Github has been maintaining. If I was new to linux, there would be no way that I would have been able to get my wireless interface working in the first place. Linux has made vast improvements over the years in how well it works with so much hardware. There just seems to be more of a need for better wireless driver support.
The author wrote: "a billion mobile devices running Linux and using Wi-Fi all the time". I would bet that Android has a separate implementation of some of the wifi stack to make it work better.
I recently helped a relative move an old Win XP machine to Ubuntu. I was going to move them to Lubuntu; however, the USB WiFi dongle they are using refused to cooperate -- or rather, the Lubuntu live disk I was testing refused to cooperate with it.<p>The dongle's chipset was Linux friendly and had apparently worked without major problems up to about Ubuntu 10.10 or so. Google revealed the eruption of numerous reports of problems at that time.<p>Problems that apparently persisted through several releases, for a good couple of years.<p>The solution that people found worked was to download driver source code from the chipset manufacturer (RA) and build it, with custom settings, on one's own machine. Some also found success with banning one or more apparently concurrently competing drivers from being loaded on their system. Per some descriptions, multiple compatible drivers would wrestle for control of the device, evincing symptoms matching what I'd experienced.<p>I was getting ready start a custom build and/or perhaps whacking driver loads -- after installing Lubuntu to get past the fixed Live CD configuration, when I thought to try the plain Ubuntu live disk as opposed to Lubuntu. Problem gone.<p>Working stuff breaks. Breaks persist for months if not years. Ostensibly compatible/comparable systems aren't.<p>I'm not going to complain; it is what we make of it. But still, today, we don't always do such a good job of making -- or maintaining.<p>Separately, the Ubuntu screen image on my relative's truly mass produced, 17" Dell LCD is shifted slightly to the right -- just enough to hide the rightmost few pixels. An old 17" LCD I have plugged into an old T42, has a similar shifting. Useable, but slightly annoying, particularly with respect to today's anorexic scroll bars.<p>I did a little research into the problem, months ago, but did not find a ready solution. Not WiFi, but still slightly to moderately awkward.
I would extend it out to laptops and Linux in general. I've tried a few times over the last 10 years or so to use Linux on normal consumer laptops (Dells, Thinkpads, etc.) and it's always a really bad experience. Wifi issues, battery life, etc. have major problems. In the end I just gave up trying and use a MacBook with virtualization for running Linux.
I kind of feel like some user facing stuff on linux gets developed not until it's in a good or perfect state but until it's bearable.<p>You can work with the GUIs for instance, but somehow they still feel very sluggish
I think it is unwise of him to generalize his issues to whole of Linux if he has only experience of one vendor and their drivers. Maybe the issues stem from problems in the Linux stack, or maybe they are vendor specific. Problem is that with a single datapoint you can't tell the difference.
I have 3 Linux laptops in the house. One with Intel running Ubuntu, another with Broadcom running Fedora and the third with a Prism interface running CentOS 6. All three work flawlessly.<p>We also have 3 Macbooks, a white one, a Pro 13 and a Retina 13. All three work flawlessly with our Wi-fi.<p>My wife had a corporate-issued HP laptop running Windows 7. It connected to our wireless once or twice over a year. I had a network cable for her.<p>My in-laws have a Windows 7 Dell laptop. It's now running Ubuntu, booted off a USB stick. It's doing so because Windows 7 sometimes connects to the network, sometimes doesn't and I never identified a pattern, so I simply gave up. Under Ubuntu, it works flawlessly.<p>And yet, somehow, it's the sad state of Linux wi-fi... Go figure...
I bought a Netgear wifi-to-ethernet adapter when I switched to Linux. For desktops, it's an ideal solution: zero-maintenance, the computer just knows eth0 has a connection from somewhere. It has a web interface to set up connections. The only downside - and this doesn't matter for most desktop users - no monitor mode, no reaver, nothing related to wireless at all, because as far as the OS is concerned, it's wired.<p>For laptops, there are always plenty micro-sized USB adapters with known compatibility if your built-in wifi has bad or no drivers.
Wow. So many people in this thread are missing the point. «I use Linux at home with card X and it works great when I custom-configure wpa_supplicant» or «Just buy a MBP».
So:<p><pre><code> - wireless chips are obscure and buggy
- audio chips are obscure and buggy
</code></pre>
I wish for some organized effort to bring a few set of open hardware chips to replace proprietary ones that seem to only work easily on proprietary OSes.<p>That would complement the work of guys like bunnie huang (novena laptop) and would let the linux world enjoy sound hardware for (allegedly) sound software.<p>Maybe that's just a pipe dream and the complexity emerge whether or not it's open.
"The 5 GHz signal is just as strong" Interesting. My dormitory at MIT has both 2.4GHz and 5GHz signals. The 5GHz is extremely weak but my Android devices love to pick a weak 5GHz signal over the 2.4GHz and subsequently have terrible speeds.<p>On another note, I wish that browsers and applications would keep firing spawning and firing requests at a rate beyond human perception, until one succeeds. The state of browsing the web over Wi-Fi while moving from access point to access point is equally sad. I get an IP address, but applications almost universally refuse to retry their connections until the first zombie socket times out. Seriously, I shouldn't have to wait 10 seconds after each access point change. Should be more like <0.1 second after getting an IP.<p>OSes/Applications should be thinking "This is Wi-Fi. Wi-Fi is supposed to be fast. Since no bytes came in for a full 0.5 seconds, something is wrong. I'm going to keep opening/closing sockets like hell, change networks, change frequencies, <i>whatever</i> it takes to get data to come in the next 0.3 seconds and make the user happy."<p>Building devices with dual Wi-Fi cards may also offer ways to help alleviate the handover problem.
Honestly, it's almost easier these days just to virtualize a linux guest on your MBA/rMBP/whatever windows box and let the host handle the wi-fi.
It only gets worse on headless/embedded/arm machines. The RPi list of Wi-Fi adapters gives something of a picture:<p><a href="http://elinux.org/RPi_USB_Wi-Fi_Adapters" rel="nofollow">http://elinux.org/RPi_USB_Wi-Fi_Adapters</a><p>Note the number of ones which require some additional configuration steps, downloads, patches, or other monkeying around.<p>And don't even get me started on connman and wicd.
The first laptop I got at my current job is now sitting unused because of unreliable wifi in Linux <i>and</i> Windows 7. Due to BIOS restrictions work just got me a new laptop instead of messing with trying to replace the card.<p>It's incredibly sad how shoddy modern wifi can be, and a testament to the importance of networking that flaky wifi can render a computer useless.
A main reason to use Apple products is that the hardware and software are always bundled and guaranteed to work together without any additional tweaking or messing around. You turn it on and it just works.<p>Both Windows and Linux suffer from the problem of attempting to support n different hardware configurations in a decentralized fashion, and neither has solved it very well.
I ended up blacklisting the built-in card on my ThinkPad X220 because it was too flaky to rely on:<p><pre><code> $ cat /etc/modprobe.d/blacklist-local.conf
blacklist rtl8192ce
</code></pre>
I use a USB adapter instead (SMCWUSB-N2), which, besides providing wireless internet, is a fine reminder to just get a MacBook next time.
How is it that for the last decade I've been running Linux on whatever decent machines I was primarily using and whatever random garbage I could get my hands on and I haven't had any of these problems that people are perpetually complaining about?<p>Are these people using some kind of exotic hardware? Am I just really lucky?
For my desktop use I just use a TP-Link router in "client mode", as far as my laptop is aware I'm on ethernet. For my laptop, I buy cheap TP Link Wireless USB's my laptop has a crappy internal wireless card regardless of OS. Sometimes buying cheap USB drives work better than "top notch" wireless cards. I would still agree, Wireless on Linux is configured terribly. Sometimes you get bugs that have fixes you have to hunt down on the internet, which you wouldn't be able to get on, if your WiFi isn't working at all. You'd think the biggest thing to get attention on a Linux OS is anything related to networking, the most crucial features of any OS these days.
I've never been impressed with WiFi in general.<p>Glad to see others in this thread reflecting a similar sentiment.<p>I still prefer a wired connection, where possible. Not because I like wires, but because it is more reliable and the protocol is easier to understand.
My regular laptop with Win7 gave up the other day and I have been attempting to rebuild an old laptop with Linux as a temporary solution. I bought a cheap usb wifi dongle ... and lo and behold, support nightmare ensued.<p>Eventually, I realized that I didn't make a right choice in buying that tiny dongle. So now I am on phase two of rebuilding old laptop with Linux, with a different brand of usb wifi (double the price of the first cheap one).<p>I am not a Windows fan anymore, but everything in Windows world just works out of the box. And what's with Linux on daily basis looking to install upgrade for its OS?
This. Wifi is the #1 reason by far that I ditched my $800 thinkpad to switch to a $3500 MPB. (to still be in a unix environment)<p>On my thinkpad, with one of the known, supported wifi chipsets, wifi would work about 8-9/10 times.<p>But because I'm doing web dev stuff, those 1 or 2 times would basically brick the laptop for doing any kind of productive work. And that's not worth any kind of savings or effort....<p>afaik it's a driver problem first, before a linux wifi problem, but really I have no idea why it was working or not working.<p>But if anyone is out there listening, this is how much the problem is worth to me- roughly $2500...
If you're using NetworkMangler, God help you. Shit's never worked right for me... even connecting to my home wifi it gets way fewer bars than it should, and keeps making and breaking the association.<p>Using just wpa_supplicant and dhclient, I've had far fewer problems, particularly with Intel wireless chipsets.<p>Linux would benefit from a bit of expectations management. Some of us neither want nor need a less expensive Windows, and Linux in general tends to function a whole lot better if you don't treat it as such.
Thanks god you use an Intel card. When I bought a Thinkpad, it came with a Realtek card. I'm still connecting through ethernet; never managed to make it work.
It can be somehow remedied a bit by adopting two strategies:<p>- Cherry-pick hardware, in this case cards<p>- Use very recent software stacks<p>I just plugged in a Huawei 4G LTE dongle. I spent some time making sure this particular card worked, and discarded many others. I'm running the most recent kernel, systemd, udev, etc. It was a plug & play experience. If I had proceeded otherwise, it'd have been a nightmare.
Not much better on OS X ... my brand new laptop with the most current OS X is totally unreliable about connecting to wi-fi on wake from sleep. Even on reboot half the time it fails. Maybe different cause from that highlighted by the OP's article ... but in the end not much better situation.
Imho wifi on Linux should also be taken care of by the Core Infrastructure Initiative - wifi is critical today<p><a href="http://www.linuxfoundation.org/programs/core-infrastructure-initiative" rel="nofollow">http://www.linuxfoundation.org/programs/core-infrastructure-...</a>
<p><pre><code> Why does my Intel card consistently pick 2.4 GHz over 5 GHz?
</code></pre>
<a href="http://kb.netgear.com/app/answers/detail/a_id/24246/~/what-is-the-difference-between-2.4-ghz-%26-5ghz%3F" rel="nofollow">http://kb.netgear.com/app/answers/detail/a_id/24246/~/what-i...</a><p><i>"Overall the 5GHz has shorter range compared to the 2.4GHz. It is recommended to select the 2.4 GHz if you using computers and wireless devices to access the Internet for simple browsing and email. These applications do not take too much bandwidth and work fine at a greater distance.<p>However, if you are in a place which is crowded with more wireless signals, it is advisable to use the 5GHz network to avoid interferences. Furthermore, the 5GHz is most suited for devices which require uninterrupted wider bandwidth for video/audio streaming or multimedia content."</i><p><pre><code> I can sit literally right next to an AP and get a connection on the lowest basic rate
</code></pre>
It's possible that Linux is more likely to reduce your rate in the face of increasing errors and noise, whereas other OSes/drivers might ignore the noise/errors and keep the rate the same, regardless of literally not having the advertised throughput.<p><pre><code> In any case, even the WPA2 setup is slow for some reason, it's not just DHCP.
</code></pre>
Both your DHCP client and your WPA client are not optimized for speed on Linux, they are optimized for reliability.<p><pre><code> it's not unusual at all to be stuck at some low-speed AP when a higher-speed one is available
</code></pre>
Yeah; your wireless client isn't going to change APs until it loses signal.<p>Most of these complaints are industry issues that have different proprietary fixes intended to appease consumers, but none of them are recommended or required by the industry.
> "Instead we get access points trying to layer hacks upon hacks to try to force clients into making the right decisions."<p>point-in-fact, this is how 802.11 works.<p>> And separate ESSIDs for 2.4 GHz and 5 GHz.<p>I'm not sure if the author thinks this is a good idea, or a bad one.
I never was able to make my Ralink based card (D-Link DWA-160) to work on 802.11n band. It only works with b/g. I suspect it's a driver limitation (rt2800usb), but I never got any response from the developers about it.
Maybe because I chose a laptop specifically for use with Linux (ThinkPad T530), but it works perfectly. Everything. Even WiFi, sound, suspend, Fn keys, fingerprint reader, everything.
> between the Intel cards I've always been using<p>That's probably a big part of the issue; my experience with Intel wireless on Linux hasn't been as great as with, say, Atheros chipsets.<p>Plus, NetworkManager. Good God is that terrible. To put it in perspective: on one of my laptops (a PowerBook G4 running OpenBSD), I basically run the following by hand to connect to a wireless network:<p><pre><code> sudo ifconfig bwi0 nwid $MY_SSID
sudo ifconfig wpa
sudo ifconfig wpakey $MY_WPA_KEY
sudo dhclient bwi0
</code></pre>
Even <i>that</i> - on a crappy Broadcom wireless NIC, no less - is faster and more reliable than NetworkManager connecting with a good Atheros card.
I've got this great thing where it doesn't work when I unhibernate .. well, it's OK since if I shut the lid and open it again then it works.
Literally in the /etc/rc.local of the machine I'm on now:<p><pre><code> echo "STOPPING NETWORK MANAGER. . ."
/usr/sbin/service networking stop
echo "STOPPED"
</code></pre>
wpa_supplicant is no picnic, but at least I have more of an idea of WTF is going on.
this thread (not the article itself) is one fine example of the decline "hacker"-news is going through<p>if you look at "linux" as a community of users and developers there is lots of get stuff for free attitude and not enough people capable of and willing to work on the tasks waiting (open source drivers for mobile GPUs anyone?)<p>but hey, aren't we all busy on making lots of $$$ with our übercool startups these days? call it the sad state of hacker ethics or continue to improve the free software world day by day .. choice is yours
Yep and that is the beauty, but also the pitfall of open source. People can patch to make things work for them, but also as long no one take up the task (or form a group) to fundamentally redo a driver or rewrite the architecture nothing happens. So you should take up the task to change things (find people to help you), that's the strength of open source (community driven)