Monday, August 08, 2011

Mixed-Up Confusion: How I solved Mac Book Air's Wireless Disconnection Problem

That the world is screwed should not be news for you. People are dying of hunger in Somalia, riots break out in London, political fringe groups in the USA set the agenda for the whole wide world  and the we-know-it-all politicans in Europe are driving the contient to bankrupcy. People are looking for safeheavens.

If there is a safeheaven, speaking financially, it must be Apple Inc. You've probably read already, that it has more cash than the American government. Yet, even with Apple there is something that is not right...

When I was coding for a research project back in the old days of my PHD, we were working with a modified Mobile IP stack. Not only the code itself was in development phase, but also we were modifying the code here and there to match our needs. For sometime we observed a weird phenomenon. Everything worked fine as long as there was some traffic between the clients and the server. As soon as the traffic died out, we had to restart everything from scracth.

As it was customary for such R&D projects, there was a demo coming in a few days, so we had to come up with a quick and dirty solution. We wrote a shell script that pinged the server every now and then to solve the problem. We knew it was a lousy solution and we had to solve the actual problem. And thats what we did eventually.

My girlfriend bought a shiny Mac Book Air recently. Everything worked fine, except the one thing that has to work bullet proof in Mac Book Airs: Wi-Fi. See, Mac Book Airs don't have ethernet connections, they work on Wi-Fi only. No Wi-Fi no internet. No internet, to system updates...

For some reason, our Mac Book disconnected and searched for an alternative access point at random intervals, even though there was nothing wrong with the signal quality.

The first entry on Apple forums on this issue is dated March 18 2008 [link to the entry]. Come 2011, there is still no official fix [link to the current questions]. I tried everyhing in this troubleshooting webpage[link] (not by Apple), from giving  a static IP address to flushing DNS cache without any success.

So I tried out keeping the connection alive solution (called a heartbeat in geek talk), and the problem melted away. I wrote a simple shell script:
ping -i 5 -n
and saved it as a shell file ( If you run this file with the terminal application, it pings the wireless AP every five seconds.

I still can't believe how Apple can let a bug go unfixed this long, that resembles the bugs I had when I was a PHD student, and be the richest organization in the world. Surely there are millions of annoying bugs that goe unfixed. There is definetely a Mixed-Up Confusion somewhere!


Engin Kurutepe said...

I didn't have this problem with my MacBook Air but had it with my 13" MacBook Pro. In that case it was related to the Router firmware, even though AVM Fritz strongly rejected it. Updating the router to the unreleased beta firmware solved the problem.

It seems that, either Apple is not implementing the 802.11n standard not very well or too strict so that there are some incompatibilities with some router firmwares.

Ahmet C. Toker said...

whats troubling is that this problem is known since 2008, thus not specific to lion.

the mac book air in question had no problem with other routers. so it is definitely a router compatibility issue. but what is not compatible is not the router, but mac book itself. 20 or so notebooks connected to the router i have without a problem, including mac book air and iphones. if there is an issue, its with apples developers.

i turned off the n/g option, so router is working in g mode only. not being able to comply with g after all these years seems impossible to me.

what I think this is a result of the Apple worldview. They'd rather have all Mac Book Air owners buy Mac wifi access points. And this is exactly why I am very skeptic about Mac products, no matter how visually seductive they are.

Frank C said...

If you close Terminal, will it stop running? How do you make it to where it "runs in the background" so you don't have to have the Terminal window open?



Ahmet Cihat Toker said...

unfortunately i am not an active apple user, thus i don't know how you can make the script run in the background.

Duvte Dudug said...

hi ahmet, this worked for me for a few weeks (thank you) but now it's dropping intermittently again. (although not as frequently as before)

i've tried

- changing ping to (google dns)
- changing ping back to my router and increasing frequency to 1 second

but no luck?

this is such an annoying problem! i love my macbook pro in every other respect but this