
The sad state of Linux Wi-Fi - tshepang
http://blog.sesse.net/blog/tech/2014-07-23-12-28_the_sad_state_of_linux_wi-fi.html
======
captainmuon
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.

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".

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.

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.

~~~
klodolph
It's opaque on Linux, but that's not the big problem. It's opaque on OS X and
Windows as well, but nobody cares because it _works_.

I wonder if we'll eventually get the kind of stability that we currently have
with ethernet drivers... once the speeds are high enough that we stop
upgrading, once the chips go into long-term production instead of changing
every few years, once things settle down...

~~~
deathanatos
I disagree. It's possible to get advanced output from various command line
tools in Linux, and it's possible to get networking information. It's much
more difficult to do that on other OSs, especially Windows. I loathe debugging
network troubles in Windows, because there is essentially no information. OS X
has most of your standard tools, though some in some odd places, e.g.,
printing the routing table not being done with `route`.

Furthermore, I care. My 2013 Macbook Pro is terribly slow to associate to even
nearby APs, and drops the connection often. I have no idea why, because it is
opaque: how do you list nearby APs? their signal strength or encryption type?
I didn't learn this until just now, and it's,

    
    
        /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
    

Seriously. There's no way I'll remember it, and if you're reaching for it, you
likely can't Google it. And it appears to be deprecated. It's a much shorter
command in Linux, and in general I find it easier to determine if the problem
is the network connection or DHCP failure. IIRC, Network Manager's icon
changes — admittedly not much – depending on which one it's on, so even
without command line tools, I have some idea what's going on.

OS X has the troubleshooter dialog, but that's never been able to fix the
problem. (In general, I feel, those things never do. They also never tell you
what they're doing. For all I know, they're just progress bars and timers.)
WiFi off, WiFi on fixes a lot of problems.

~~~
chrisbolt
Open Wireless Diagnostics in /System/Library/CoreServices/Applications, then
click Window -> Utilities. Gives lots of detailed info, frame capture,
logging, etc.

[https://www.dropbox.com/s/2ndc35q0gxynffl/Screenshot%202014-...](https://www.dropbox.com/s/2ndc35q0gxynffl/Screenshot%202014-07-23%2019.22.29.png)

~~~
kalleboo
You can access it easier by holding down the "option" key and selecting the
Wifi menu [http://imgb.mp/jxy.jpg](http://imgb.mp/jxy.jpg)

------
zanny
Right here:
[https://wikidevi.com/wiki/Atheros_AR5B22](https://wikidevi.com/wiki/Atheros_AR5B22)

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.

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.

Ath10k makes me mad, since they are now shipping firmware blobs. Again. And
they were doing so well.

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 _every wifi network I 've thrown
the thing at, from ancient wireless-a routers to wireless AC ASUS routers with
2GB throughput_.

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.

~~~
ploxiln
Much appreciated tip, thanks. I've known some atheros chips had really good
drivers, but this is more specific than my vague impressions.

I suppose a major cause of the situation is that hardly anyone buys a laptop
with the wifi chip as the first concern. Most laptops for sale don't clearly
show the wifi chip, unless you go into the online configurator where you might
be able to pay for an upgrade (yes I'm one of the weird people who considers
the wifi chip, having once worked at a wifi ap vendor). I also doubt it's
possible to replace the wifi chip on a macbook air or retina. So it's rare to
have "cult favorite" chips of this type that enthusiasts can gravitate to,
usually we just deal with whatever we end up with.

~~~
hippich
thanks to previous comment i just ordered one card on ebay for under $10 to
test my theory - any laptop with pcie wifi card can be "upgraded" to atheros
card. and i might even get few bucks back, since usually laptop-specific cards
cost more on ebay :))

in theory if pcie cards are completely interchangeable, i should be able just
swap them in and out. will see if it work out.

~~~
ac29
Lenovo laptops tend to have BIOS enforced whitelists, so if you have one, dont
be surprised if the new card doesnt work.

~~~
hippich
i have dell, will see how it work out. my current card work ok, so i always
can go back

------
ploxiln
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.

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.

~~~
javert
Contrary to what other commenters are saying, I've been using NetworkManager
on my ArchLinux Thinkpads for years and it works great. (And I don't even have
a desktop environment, I have DWM, so I am usually a "do it yourself" person.)

Whereas I could never get all the mess working to get things working well
_without_ NetworkManager.

My experience is, spend hours messing with configuration shit or just let
NetworkManager do all that automatically for you, which in my case, it does
well.

~~~
keeperofdakeys
Network Manager uses wpa_supplicant underneath, and delegates roaming and AP
selection to it. So I don't know how what should be a dump program on top gets
such a bad wrap.

Not that I don't use wpa_supplicant directly anyway, but when I have used NM,
it seems to do the same job.

------
dendory
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.

~~~
freehunter
I tried setting proxy configuration so that apt-get would work with my
employer's proxy. I put my (plain-text) username and password into a dozen
different configuration files before it finally worked. Then I changed my
password, and couldn't remember where all I had put my credentials in. I ended
up having to reinstall the whole OS because I couldn't figure out how to undo
the proxy settings that took me forever to figure out in the first place.
Skipping over the fact that I had to put the password in plain text.

So yes, I agree.

~~~
yoodenvranx
I had similar problems with Linux. This is why I have now a rather long
textfile in a dropbox folder in which I write down all
problems/solution/tweaks I had to deal with. If the same thing pops up again
after half a year I can just look it up.

~~~
aye
Great idea. I keep a folder full of Markdown files that I push to a Bitbucket
wiki.

------
sandGorgon
Copy paste, printing and networking. Biggest usability misses of Linux.

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.

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)

EDIT: does anyone know if systemd-networkd would make things better [1]

[1] [https://wiki.archlinux.org/index.php/Systemd-
networkd](https://wiki.archlinux.org/index.php/Systemd-networkd)

~~~
pwnna
Why is copy-paste broken? I never had issues.

I don't have issues anymore with printing and networking. I understand that
this stuff is per vendor so I usually do my research before buying (I have
thinkpads, and my printers are all pretty friendly). I do see many windows
computer fall over when printers connect to new wireless networks, though.

As for mp3, flash, isn't is as simple as enabling a non-free repository and
let it do its thing? If you use Ubuntu the option to enable that is right at
the installer. I've never had the issue since I switched to Linux full time
(11.04)

~~~
clarry
> Why is copy-paste broken? I never had issues.

Different programs use different conventions. For example, shift+insert does
not do the same thing in say, xterm and firefox.

~~~
zorbo
Interesting. I only noticed now that shift-insert in Firefox doesn't use
PRIMARY but CLIPBOARD. I'm so used to middle mouse button paste that I never
noticed. This is probably due to Firefox not using a native graphical toolkit.

~~~
krakensden
Don't they use Gtk2 & Cairo?

------
slacka
I discovered this for myself after converting my parents 5 year old PC from XP
to Linux Mint.

As you can see from the bug tracker:
[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/852190](https://bugs.launchpad.net/ubuntu/+source/linux/+bug/852190)
the kernel drivers are much buggier than the GPL'd Realtek drivers. But the
official Realtek drivers don't work with newer kernel versions.

Fortunately there is: [https://github.com/pvaret/rtl8192cu-
fixes](https://github.com/pvaret/rtl8192cu-fixes)

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?

~~~
zanny
If those are really under GPL, nothing should stop you from converting them
into a kmod using the kernel 802.11 architecture and pushing them upstream.
I'd imagine that since it hasn't happened yet there is something else at work
impeding it.

~~~
slacka
They ARE GPLv2. See for yourself. 4.0.2_9000:

[http://www.realtek.com.tw/downloads/downloadsView.aspx?Langi...](http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8192CU)

Converting them to the latest kernel driver interface is beyond my skills and
pvaret's rtl8192cu-fixes. Pvaret's remarks on github indicate it's a hack to
just get them running and someone with Linux networking internals experience
is needed to do a proper port.

I'd be willing to test and file bug reports. Your 'fix it yourself' attitude
is exactly the kind of response that gives Linux a bad name.

~~~
zanny
But "someone else should fix it" does not help either.

If you do not provide Realtek the financial incentives (ie, not buying their
products) for not maintaining proper Linux drivers (in kernel ones are what I
would consider proper) then _nobody in the world_ has a financial incentive to
make them work for you. If you are buying realtek products, having them not
work, and not demanding a refund for the lack of functionality, then nothing
changes.

It is disingenuous to blame kernel developers for not fixing a hardware
vendors shitty driver when said hardware vendor is not paying them squat.

~~~
slacka
Realtek provided a rock solid, stable, GPLv2 driver. The "proper" driver is a
piece of shit, requiring a reboot after a few minutes of use. They shouldn't
have changed the driver interface, leaving people like my parents with broken
hardware, if they don’t have the manpower to fix this sort of issue.

------
icambron
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:

> 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.

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.

~~~
fragmede
Which MBP do you have?

It's _fast_ on Apple products because they 'cheat', and re-use the last-given
DHCP address.

[http://cafbit.com/entry/rapid_dhcp_or_how_do](http://cafbit.com/entry/rapid_dhcp_or_how_do)
(and the follow up,
[http://cafbit.com/entry/rapid_dhcp_redux](http://cafbit.com/entry/rapid_dhcp_redux))

~~~
danudey
Essentially, they behave as if they've spent the last (however long you were
offline) without sending any packets. If their lease is still valid, they
should still be able to use the same IP address; i.e., they shouldn't _need_
to re-acquire one. That's not always the case, so they also do a DHCP request
along with that.

------
mrinterweb
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.

~~~
shock
Look into dkms[0] so the driver is compiled automatically on each kernel
upgrade.

[0] -
[https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support)

~~~
mrinterweb
Thank you. I will check that out.

------
evmar
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.

~~~
nine_k
Android is open-source. I suppose that these workarounds would make it into
the mainline kernel if they existed.

~~~
dublinben
>Android is open-source.

But none of the WiFi drivers of Android devices are. If they've found an
improved way to do WiFi, it's baked into the proprietary drivers.

~~~
tormeh
And as long as our computers don't come with Linux preinstalled it will
continue to be this way. This is what happens when your OS is a stranger in a
strange land; it doesn't feel like it belongs there.

~~~
DCKing
If desktop Linux ever became popular enough for computers to come with it
preinstalled, it would immediately go down the binary blob driver path that
Android is on.

For vendors, the reasons to close up their drivers would be identical whatever
OS their kernel drivers would run on top.

~~~
tormeh
Of course, but it would at least work.

------
pasbesoin
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.

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.

Problems that apparently persisted through several releases, for a good couple
of years.

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.

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.

Working stuff breaks. Breaks persist for months if not years. Ostensibly
compatible/comparable systems aren't.

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.

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.

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.

~~~
makomk
If it's a VGA monitor you probably need to hit the auto-adjust button on it.
Different graphics cards and drivers produce slightly different timings for
the same mode, so the monitor has to compensate, and it only adjusts its
setting when you first get it or explicitly tell it to.

~~~
pasbesoin
Thanks! I don't know about my relative's monitor, but the monitor attached to
the T42 has a dedicated "Auto" button. I think I had waded through the
separate menu choices without success, but I never tried that "Auto" button.

Pressing "Auto", the image futzed around for a few seconds and then apparently
aligned properly. It didn't even mess up my brightness setting.

Sigh... I'm getting old.

I guess I'll add that for a long time, this monitor was dual boot, and I
wasn't too interested at regaining the pixels in Ubuntu, only to lose them or
their corresponding columns on the other side, under Windows. Nowadays, no
longer a concern...

------
tdicola
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.

~~~
holri
I use Linux on ThinkPads since 1999 or so. I can not remember issues I could
not solve. Just last week I installed Debian Wheezy on a X61 and everything
worked out of the box. Works like a charm. This is a helpful resource:
[http://www.thinkwiki.org](http://www.thinkwiki.org)

~~~
keithpeter
Yup, Thinkpad X60 with Intel wifi cards seems to work OK provided you add the
non-free firmware iwlwifi package. Some of the X61 and X61s series had an
Atheros wifi card and would work from a default Debian install.

I've also had good luck with a Dell Latitiude E5420 (i5). This and similar
models have a Broadcom wifi card which is a known problem so I simply
purchased an Atheros half size wifi card and popped it in. Unlike Thinkpads,
the Dell bios will take hardware changes in its stride.

Of course, we _should not have to do these things_. Perhaps as laptop sales
decrease, a crowdfunded fully free laptop will become economically viable.

~~~
steanne
the free software foundation lists exactly one laptop that gets their
'respects your freedom' cert.

[http://www.fsf.org/resources/hw/endorsement/respects-your-
fr...](http://www.fsf.org/resources/hw/endorsement/respects-your-freedom)

------
legulere
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.

You can work with the GUIs for instance, but somehow they still feel very
sluggish

~~~
pjlegato
This is precisely the problem with Linux. Everyone wants to work on cool
kernel-level stuff or daemon-level stuff; nobody wants to bother with the
tedious, unglamorous last-mile work of actually delivering a polished user
experience around all of that cool stuff.

~~~
eridal
_linux_ is a pretty vague term which can refer to many _moving_ things

~~~
pjlegato
That's another problem with Linux. "Linux" is a kit of 50,000 mostly-
compatible little parts. If your hobby is assembling systems out of these
parts, that's great; but it's less useful to you if you want to do higher-
order work on top of an assembled computer system.

For example, tailing /proc files and compiling new kernel drivers shouldn't be
a part of getting wifi to work anymore in 2014. It should just work. Of
course, if you want to tinker it's great that you _can_ tail the /proc files,
but you shouldn't have to. You should be able to turn your computer on and
just have wifi, out of the box.

------
zokier
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.

------
rbanffy
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.

We also have 3 Macbooks, a white one, a Pro 13 and a Retina 13. All three work
flawlessly with our Wi-fi.

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.

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.

And yet, somehow, it's the sad state of Linux wi-fi... Go figure...

~~~
schmichael
a) Your personal anecdotes may not broadly apply.

b) Just because Windows is worse doesn't mean Linux isn't frustrating.

c) The post complains more about performance (rate, connect time, etc) and
complexity (numerous overlapping components) than "Does it work at all".

~~~
rbanffy
> a) Your personal anecdotes may not broadly apply.

I'd say that if we were talking about a single computer, but here I have
stories of 8 different computers with 8 different CPUs and 5 different
wireless interfaces, radios, antennas and software all connected to a single
wireless router.

If I got my numbers right, there is 81.41% chance this is not a fluke.

~~~
diminoten
You have your numbers very, very wrong. You're about 10 or 11 orders of
magnitude off.

------
mcovey
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.

For laptops, there are always plenty micro-sized USB adapters with known
compatibility if your built-in wifi has bad or no drivers.

------
bjornorn
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».

------
agumonkey
So:

    
    
      - wireless chips are obscure and buggy
      - audio chips are obscure and buggy
    

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.

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.

Maybe that's just a pipe dream and the complexity emerge whether or not it's
open.

~~~
mbq
Many chips/hardware pieces do already have a good Linux support, and the
internet is full of info what will work perfect and what may cause problems.

------
dheera
"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.

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.

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, _whatever_ it takes to get data to come in the next 0.3 seconds
and make the user happy."

Building devices with dual Wi-Fi cards may also offer ways to help alleviate
the handover problem.

~~~
aeturnum
> I wish that browsers and applications would keep firing spawning and firing
> requests at a rate beyond human perception, until one succeeds.

I do not think you would enjoy the network conditions that come with that
behavior. The point about killing old sockets early when switching wifi makes
a lot of sense, however.

~~~
dheera
Well, the problem is really that the network isn't even connected properly in
the first place. I agree that it shouldn't behave badly while actually on the
network. It's just odd that madly hitting refresh while wifi is reconnecting
actually gives me a sooner and faster page load than letting the machine load
by itself. That means there is something can be automated but unfortunately
isn't being automated.

~~~
rphlx
Network stacks are layered and even after 40+ years, on every OS I've seen, L4
(TCP) never queries nor uses any L1/L2/L3 link quality/stability/availability
information when computing retrans intervals, etc. Doing that would indeed be
an aesthetically distasteful layering violation, but it would enable much more
optimal behavior in a lot of wifi & cell network scenarios, as you've said.

It will probably happen eventually, at least in Linux, after a few more years
of commercial pressure to make it suck less.

------
bane
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.

------
mikepurvis
It only gets worse on headless/embedded/arm machines. The RPi list of Wi-Fi
adapters gives something of a picture:

[http://elinux.org/RPi_USB_Wi-Fi_Adapters](http://elinux.org/RPi_USB_Wi-
Fi_Adapters)

Note the number of ones which require some additional configuration steps,
downloads, patches, or other monkeying around.

And don't even get me started on connman and wicd.

~~~
mackal
wicd is pretty dead. It uses deprecated kernel features that will be removed
at some point and with no maintainer for wicd, it will just stop working.

~~~
mikepurvis
Right, that's the main issue with wicd— it's a dead-end, but the usability of
its curses text UI is still way nicer than connman. So you get a devil's
bargain between shipping something nice-to-use that's eventually going to
break everywhere vs. something faster, smaller, and newer which is user-
hostile and is being actively developed (ie, has some weird bugs not really
yet worked out).

------
schmichael
The first laptop I got at my current job is now sitting unused because of
unreliable wifi in Linux _and_ Windows 7. Due to BIOS restrictions work just
got me a new laptop instead of messing with trying to replace the card.

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.

------
pjlegato
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.

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.

~~~
w1ntermute
Actually, I know people with MacBooks who regularly have problems with
hibernation instability.

And the whole reason for having a choice in hardware configuration choice is
because one-size-fits-all doesn't work too well in the real world. It might be
fine for all the coders in San Francisco writing iPhone apps and Rails
websites, but there are many factors that come into play for other people.

Some people can't afford an expensive laptop, want better specs, want to play
games, want a touchscreen, want a full keyboard, etc. There are plenty of
reasons for not going with whatever Apple has decided upon from on high.

------
ghostwords
I ended up blacklisting the built-in card on my ThinkPad X220 because it was
too flaky to rely on:

    
    
      $ cat /etc/modprobe.d/blacklist-local.conf
      blacklist rtl8192ce
    

I use a USB adapter instead (SMCWUSB-N2), which, besides providing wireless
internet, is a fine reminder to just get a MacBook next time.

~~~
dnr
Yeah, the default card in my X220 was a piece of crap. I got one of these for
$15 and replaced it myself (took 10 minutes) and it's been muuuuch better.

[http://www.ebay.com/itm/Intel-Advanced-N-6205-wifi-card-
Thin...](http://www.ebay.com/itm/Intel-Advanced-N-6205-wifi-card-
Thinkpad-x220-x220i-t420-60Y3253-631954-001-/121336935951)

(I remember this was actually a customization option when I bought it and I
stupidly didn't pick it. So you don't have to get a macbook, just read
carefully when you get another thinkpad.)

~~~
elementai
It truly was an option. _Patting myself on the back_ now for taking half an
hour to research it two years ago. Although one can disassemble X200 with
(relative) ease.

------
likeclockwork
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?

Are these people using some kind of exotic hardware? Am I just really lucky?

~~~
dredmorbius
Just FYI, this response has about the same validity that refutation of online
anonymity / pseudonymity as a non-issue does: simply because you're not
experiencing a problem doesn't mean others aren't, and doesn't make their
frustrations any less valid.

I've used Unix for over 25 years, Linux for over 17. It's my platform of
choice, I very, very rarely use anything else.

And my Thinkpad T520i listing a "03:00.0 Network controller: Intel Corporation
Centrino Wireless-N 1000 [Condor Peak]" under lspci and running Debian
GNU/Linux jessie/sid has _never_ had reliable WiFi, and I run it essentially
24/7 with a Cat5 cable plugged into hardwire networking.

I've tried network manager, wicd-cli, wicd-curses, and other tools. I can
_see_ networks. I cannot connect to them. Plugging a cable in solves the
problem far faster than futzing with a nonintuitive, low-feedback/diagnostics
interface.

So yeah, you're probably lucky.

~~~
dredmorbius
And with that impetus, I've just set up ye olde /etc/network/interfaces
configuration, and I've got a WPA2 connection running. One less cord to trip
over.

Why I could never get network manager nor wicd to work ... I don't know.

------
giancarlostoro
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.

------
jingo
I've never been impressed with WiFi in general.

Glad to see others in this thread reflecting a similar sentiment.

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.

------
webwanderings
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.

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).

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?

~~~
sp332
Device manufacturers write drivers for Windows. They don't write drivers for
Linux. So it's probably (mostly) the fault of the manufacturer.

Another thing is that Windows has an abstraction layer called NDIS which
network drivers communicate to. This abstraction is complete enough that if
you have a compatibility layer for NDIS, you can usually use Windows drivers
directly on Linux. The project is called ndiswrapper.
[https://en.wikipedia.org/wiki/NDISwrapper](https://en.wikipedia.org/wiki/NDISwrapper)
Edit: to be specific, maybe it would be helpful if Linux had a similar
abstraction for drivers to use?

As for the updates, that depends 100% on your distro and your own settings. If
you're on Ubuntu, you can just uninstall the update-notifier, and/or edit
/etc/apt/50unattended-upgrades to install updates without notifying you all
the time.

~~~
webwanderings
Yup, ndiswrapper was one of the support routine. But even when things work,
they don't work optimally, as the author is correctly claiming. But on the
flip side, I should also mention that on another newer laptop with embedded
wifi chip, I never had any wifi problems. Ultimately, I believe, Linux is
probably suffering reputation - in comparison with Win/Mac - due to its
multiple flavors and plethora of developmental end points. The lack of
manufacturer support is just one of the issue.

------
awongh
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)

On my thinkpad, with one of the known, supported wifi chipsets, wifi would
work about 8-9/10 times.

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....

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.

But if anyone is out there listening, this is how much the problem is worth to
me- roughly $2500...

~~~
moonchrome
Wouldn't a simple USB WLAN solve your problems in the 2/10 case ? These things
cost a couple of $ and are smaller than a USB stick.

------
bitwize
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.

Using just wpa_supplicant and dhclient, I've had far fewer problems,
particularly with Intel wireless chipsets.

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.

~~~
schmichael
I've been using NetworkManager for years with few complaints. I love its VPN
support and have used it consistently at a couple jobs.

The moral: Anecdotes aren't very useful.

~~~
tlarimer
They can be when they are in abundance.

~~~
JetSpiegel
The plural of anecdote is not data, though.

~~~
dingaling
> The plural of anecdote is not data, though.

Of course it is.

What do you think data comprises? It's just an aggregation of anecdotes.

~~~
JetSpiegel
Are you really sure? Data is supposed to have been collected by some method,
not just randomly waiting in forums for complains about something.

------
farresito
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.

~~~
bitwize
I have a thinkpad wired into a wifi bridge. Since it almost never moves
nowadays, it's a pert-near ideal setup and sure beats the naff kernel support
for the thing's internal rtl8192se chipset.

~~~
farresito
Ah, interesting. I barely move my Thinkpad, too, so it's not that big of a
deal, but it's very sad all the situation. Someone mentioned here a github
user was maintaining a driver for the card he was using, so I decided to check
out if someone had a patched version of the Realtek I have on my computer, and
it seems that there is: [https://github.com/FreedomBen/rtl8188ce-linux-
driver](https://github.com/FreedomBen/rtl8188ce-linux-driver)

You might want to check out [https://github.com/pvaret/rtl8192cu-
fixes](https://github.com/pvaret/rtl8192cu-fixes) and
[https://github.com/dz0ny/rt8192cu](https://github.com/dz0ny/rt8192cu)

------
nextos
It can be somehow remedied a bit by adopting two strategies:

\- Cherry-pick hardware, in this case cards

\- Use very recent software stacks

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.

------
plg
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.

~~~
cerberusss
Try a different router. This helped me a great deal.

------
binaryanomaly
Imho wifi on Linux should also be taken care of by the Core Infrastructure
Initiative - wifi is critical today

[http://www.linuxfoundation.org/programs/core-
infrastructure-...](http://www.linuxfoundation.org/programs/core-
infrastructure-initiative)

------
peterwwillis

      Why does my Intel card consistently pick 2.4 GHz over 5 GHz?
    

[http://kb.netgear.com/app/answers/detail/a_id/24246/~/what-i...](http://kb.netgear.com/app/answers/detail/a_id/24246/~/what-
is-the-difference-between-2.4-ghz-%26-5ghz%3F)

 _" 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.

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 can sit literally right next to an AP and get a connection on the lowest basic rate
    

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.

    
    
      In any case, even the WPA2 setup is slow for some reason, it's not just DHCP.
    

Both your DHCP client and your WPA client are not optimized for speed on
Linux, they are optimized for reliability.

    
    
      it's not unusual at all to be stuck at some low-speed AP when a higher-speed one is available
    

Yeah; your wireless client isn't going to change APs until it loses signal.

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.

------
gonzo
> "Instead we get access points trying to layer hacks upon hacks to try to
> force clients into making the right decisions."

point-in-fact, this is how 802.11 works.

> And separate ESSIDs for 2.4 GHz and 5 GHz.

I'm not sure if the author thinks this is a good idea, or a bad one.

~~~
ytjohn
I understood it that he just wants the one SSID and let his devices connect to
the appropriate one. But his Linux system will always try the 2.4ghz first, so
he ends up creating something like "mywifi24" and "mywifi5".

Personally, I would prefer doing the two separate names so I can know what I'm
connecting to. Being a radio guy, I see it as two separate bands, two separate
physical radios. I don't see a point in trying to give them the same name.

Of course, for my home environment, I'm pretty much using just 2.4, and I give
all my access points the same SSID so I can "roam" between them. I suppose
someone could want to be able to roam between 2.4 and 5ghz (I tend to use 5ghz
for backhaul).

------
shmerl
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.

------
Mikeb85
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.

------
yellowapple
> between the Intel cards I've always been using

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.

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:

    
    
        sudo ifconfig bwi0 nwid $MY_SSID
        sudo ifconfig wpa
        sudo ifconfig wpakey $MY_WPA_KEY
        sudo dhclient bwi0
    

Even _that_ \- on a crappy Broadcom wireless NIC, no less - is faster and more
reliable than NetworkManager connecting with a good Atheros card.

------
stuaxo
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.

------
danielweber
Literally in the /etc/rc.local of the machine I'm on now:

    
    
        echo "STOPPING NETWORK MANAGER. . ."
        /usr/sbin/service networking stop
        echo "STOPPED"
    

wpa_supplicant is no picnic, but at least I have more of an idea of WTF is
going on.

~~~
fragmede
What distro are you on?

On the ones I'm familiar with, the network manager service is called
'NetworkManager' (inc caps) so I need to do 'service NetworkManager stop'

~~~
danielweber
Ubuntu 13.10. NB the process name is still "NetworkManager" despite the string
I use to /usr/sbin/service

------
eridal
when linux works, it's wonderful; when not, it's a pain in the a*^

~~~
mkesper
Did you _ever_ try to fix a Windows problem?

------
shinymbp
this thread (not the article itself) is one fine example of the decline
"hacker"-news is going through

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?)

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

------
GutenYe
That's Linux.

------
epx
Linux should simply adopt Android as default UI.

~~~
eridal
I feel you don't clearly understand what _linux_ is

~~~
sp332
Linux is a kernel deployed primarily on phone hardware.

~~~
kalleboo
And TV sets

------
roscoebeezie
And this is why I am getting a Macbook.

~~~
feld
the OSX wifi stack and drivers especially for the 802.11ac chip is garbage

------
ninjakeyboard
Upgrade to windows xp. problem solved.

------
cad71
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)

~~~
alrs
rtfm. Linux provides the architecture, the vendors ignore it and do it
themselves.

The Intel drivers require blobs. Broadcom used to require blobs that you had
to cut out of Windows drivers yourself, though I have no idea what that's like
now.

The vendors use the excuse that this stuff requires FCC certification, and if
they expose the low-level stuff some hax0rs will turn the wi-fi portion of the
spectrum into CB radio circa 1979.

The OpenBSD guys used to recommend Atheros, because the specs were open. I
have no idea what the current wisdom is. I run Thinkpads, which are BIOS-
locked to only Lenovo provided cards, so I've been in iwl-land for a long
time.

~~~
serf
which thinkpad are you using which locks to intel cards?

I know that's a pretty common occurrence of thinkpads, but I hadn't heard one
that was strictly manufacture specific. Most thinkpads i've encountered are
"Use Intel 5400AGN OR Broadcom'blahblahblah',not 'Use Intel Only', and all of
those thinkpads i've experienced that with have had BIOS reflash available to
work around that particular problem.

p.s. this message isn't intended for snark, it's intended to allow me to skip
whichever thinkpad it is that's locked down. My bets are on one of the thin
cant-take-the-battery-out ultrabook 'ThinkPads', but we'll see!

~~~
alrs
Locks to "Lenovo provided" cards, I said. That leaves Lenovo-branded iwl or
some rando Lenovo-branded Realtek(?) card that has terrible support.

