Troubleshooting Arch Linux Wireless Using RF-kill (and Why I’m a Dumbass)

My laptop pwned me the other day, and in the process taught me all about a neat little utility called RF-kill. Here’s the story.

One fateful afternoon I carried my laptop from one room into another via walking (gross, I know) to continue working in a fresh environment. After sitting I noticed the little GNOME 3 notification shouting that I’ve been disconnected from the wireless network. Weird, I thought. I clicked on the now disconnected wireless icon in my system tray toolbar and dragged the Wireless toggle from Off to On. EasyPeasy (pun intended).

The toggle immediately jumped back to Off as if I had shoved it onto hot coals. Wtf? I grabbed my iPhone (naturally) and quickly checked to see if it was still connected to Wi-Fi. It was, so the network wasn’t down. WTF?

How did my laptop’s wireless connection disable itself during the five second stroll from one room to the next? Like Clark Kent in a phone booth I transformed into my über geek troubleshooting self and did what über geeks do: popped open terminal. First thing’s first, reboot:

sudo reboot

After logging back in, Arch Linux continued crying that it was still disconnected from the wireless network. Ugh! Time to poke around:

ip link

When the available system interfaces displayed I noticed that wlan0 was down. Mmkay, I scoffed. This’ll be all too easy:

sudo ip link set wlan0 up

“Nice try, jackass,” my system responded. Actually it was “RTNETLINK answers: Operation not possible due to RF-kill.” Not being familiar with RF-kill, I typed:

rfkill help

Based on the output – and my über geek intuition – I suspected RF-kill to be some sort of wireless interface utility, which Google quickly confirmed. Next up:

rfkill list

Now we’re getting somewhere. “Soft blocked: yes.” OK, I thought, something in the software might be blocking me from restarting the wlan0 interface.

“Hard blocked: yes.” Wait, hard block? As in, hardware block? Tilting my laptop back to look at the physical wireless switch revealed my true nemesis: the f’ing Off position. Buzzkill.

On the one hand, I was happy to have my wireless connection working again with the added bonus of learning about a nifty little wireless utility. On the other hand, I’m embarrassed that I didn’t think to check the simplest and most obvious solution first, the physical wireless connection switch. Hitting rfkill list again after flipping the physical switch back on confirmed my mistake.

Lesson learned. When in doubt, as Kelly Johnson would say, “Keep it simple, stupid.”