Hey Heather, it's me again.

Why is my wifi down? An occasional problem

<-- home

Hey Heather. It’s me again.

I accidentally turned off my computer when moving it around and this broke wifi. I brought this upon myself really. A few days ago I did a system update and didn’t reboot. Honestly, I just have a heedless heuristic when it comes to rebooting which goes something like this: reboot when kernel is updated or whenever I accidentally closed all tabs in the browser. I could do better. Anyway! I find this to be the most annoying problem on a laptop because you’re relegated to using your phone for search. This isn’t the first time I’ve had issues with wifi. It had been a while though so I didn’t remember what I had done. This will serve as a reminder for when it will inevitably happen again. FYI: the distro I use is Arch Linux.

Previous problem

Because it’s the most frequent case that has happened to me, it’s the first one I should check whenever wifi isn’t working. On my laptop, the F8 key toggles the wireless card. That key is right above the number 7 so I’ve inadvertently pressed it without noticing. I’ve also seen laptops with an inconspicuous switch that will also turn off the wireless card. The fact that these slips are quite subtle makes it harder to figure out what you did and just emphasizes the I don’t even know what happened! If you want to check if you’ve toggled the wireless card you can use rfkill. You can read the documentation on the arch wiki.

$ rfkill list
---------------------
2: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

If Hard blocked is set to yes, you’ll need to toggle the hardware switch. If Soft blocked is set to yes then you can use the command # rfkill unblock wifi.

What happened this time

I’m not sure anymore, I was supposed to write this two weeks ago. But I do know my initial reaction to wifi not working was But I didn’t even do anything! Once I got over that I started trying to debug the problem. I remember it was pretty straightforward to figure out what the issue was but not how to resolve it. It’s a little difficult to remember what I did exactly because now that everything is working I’m getting no error messages. Anyway I’ll go from memory and write the commands I believe I used.

First command I ran was probably netctl stop home, followed by netctl start home. I believe this would have brought up a message saying that it didn’t work and that I should check journalctl -xe and systemctl status netctl@home.service. An error message said something along the lines of firmware missing. I ran two other commands ip addr and lspci -v. The first command didn’t show my network device but it existed when I ran the second command. Here’s what the output of these commands may look like if working correctly:

$ ip addr
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
         valid_lft forever preferred_lft forever
  2: enp0s31f6: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
      link/ether 70:5a:b6:8a:a0:87 brd ff:ff:ff:ff:ff:ff
  3: wlp58s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
      link/ether 70:5a:b6:8a:a0:87 brd ff:ff:ff:ff:ff:ff

$ lspci -v
  (... this output has been shortened ... )
  3a:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
	  Subsystem: Intel Corporation Dual Band Wireless-AC 8265
	  Flags: bus master, fast devsel, latency 0, IRQ 126
	  Memory at ec000000 (64-bit, non-prefetchable) [size=8K]
	  Capabilities: <access denied>
	  Kernel driver in use: iwlwifi
	  Kernel modules: iwlwifi

At this point I knew that I needed a firmware update. Eventually I would have to run $ sudo pacman -Syu linux-firmware (unsure where I found out I needed linux-firmware specifically) but to do this I need to be connected to the internet. Thankfully I found an ethernet cable at home. So now I just needed to figure out how to connect to the ethernet. Apparently many distros have it set up so that you can connect the cable and it just works. This was not my case. After a lot of searching around I found that I had to run something like # ip link set enp0s31f6 up. I may have used modprobe too but I’m not sure if it was useful at all.

Here are some of the resources I consulted in the Arch Wiki: network configuration, /ethernet, /wireless. I had also consulted a few answers on Stackoverflow and on the Arch forum under the Newbie corner but unfortunately I don’t remember which ones were helpful. I think these notes are enough to kind of guide me (and maybe others) whenever this happens again.

Anyway this is as much as I remember. Another thing that was important was to take a break. I got pretty upset when this happened because I was in the middle of something. I hadn’t eaten so that wasn’t helping. I just want to finish this ONE thing I had said to myself and then this happens. I took some time to get a cup of coffee and some food which really helped me change my mindset from thinking of one problem and switching to another.

« Prev:Picking a pickup Next »Sleepless nights
home