Linux Tools That Helped Me Debug My WiFi

I just recently bought a Lenovo X1 Carbon (1st generation). I love this machine. I installed Linux Mint on it right away. The only problem was, my wifi connection had serious issues on Linux.

I would notice the connection getting really flaky sporadically during the day. And interestingly, it would only happen at work. It turns out that, because my workplace has many access points(routers) all for the same WiFi network, the card would occasionally roam to a new access point. This is normal. But the problem was that this particular card didn’t handle these handoffs well, and it would render the network unusable. Bummer.

It took a while to narrow things down but in the end I learned that the Intel Linux drivers for the WiFi card were to blame, and unfortunately there is no fix in sight. I’m pretty upset that the Carbon as-is, is unusable for me as a Linux dev machine. I ended up upgrading to the newer Carbon, which I should get this week. And I’ll sell this online to try to recoup some of my costs. I’ll maybe write up a post about my thoughts on the new X1 after I’ve had it for a while. Hopefully it doesn’t give me the same issues…

I want to capture a list of some of the useful commands that helped me narrow things down this week. Here we go:

  • wavemon – for seeing a realtime display of your wifi connection information, including the signal strength.
  • iwconfig – a general purpose utility for viewing and updating wifi settings
  • iw – a newer replacement for iwconfig, although I found that iwconfig was more to my liking
  • iwlist – for viewing detailed information about your wifi
  • dmesg – for viewing log output from many of your systems devices, including your wifi card.
  • pcilist – for viewing the specific name and version of the wifi card (and any other pci devices)

That’s about it. If you’re having trouble with your WiFi connection in Linux, give some of these commands a try to get a better picture of what might be going on.

Happy Hacking! 🙂