The Fix

Posted on Wed 29 July 2020 in Tech

In my previous blog post, I mentioned that I had issues with my Acer laptop running Linux. It has an Atheros QCA9377 card in it, which was constantly dropping its authentication with the router, resulting in the connection dropping seemingly at random for periods of time. Well, one of the fixes I mentioned using was using the firmware-5.bin firmware instead of the firmware-6.bin one that it defaults to. People reported that working, so I thought it might help me as well. Especially since it was working flawlessly on earlier versions of Ubuntu.

Well, it didn’t work. But out of sheer randomness, I decided to try something. I grabbed an install of Kubuntu I had lying around, and sha256sumd the two firmware files on it, then did the same on the install I had on the laptop. firmware-6.bin matched…but firmware-5.bin didn’t. That was odd…

Just on a whim, I copied the version from the Kubuntu install into my working envionrment, renamed the old firmware-5.bin, and put the new one in its place, before soft-linking it to /usr/lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin. This would make sure the OS would load only that firmware.

I gave it a stress test overnight, and not a single dropped connection. It’s working flawlessly, just as it did before upgrading to newer kernels.

For the record, this is the sha256sum for the working version:

95ed94c24795c31dbdf8c97ab7278dd3a107673ea7330dfe4d01b1c65965f7a8 /usr/lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin

So yeah! Either the firmware that was installed was corrupted, or something had happened to the file, or it’s just the wrong file. Goes to show that Linux can be really weird, but weird ideas can also completely fix the problem somtimes.