Being for the benefit of those-who-Google
In summary
With a firmware extracted from their router and the 4.13 kernel, the Asus PCE-AC88 WiFi card works well under Ubuntu.
The story so far…
Because I’m an inveterate tinkerer I’ve got a server box at home. Because consumer WiFi routers are an astounding collection of out of date software necessarily exposed to the Internet at large I’ve been considering folding routing duties into my server box.
Because I’ve internalised the need to check explicitly for Linux support, I hit up wikidevi. I’ve had bad experiences with a Realtek device, and heard good things about Broadcom, so I looked up high-end Broadcom chips and found the ASUS PCE-AC88. Lo! It has a mainline driver, brcmfmac, and the PCI ID was seen in Linux 4.4, the kernel that Ubuntu 16.04 LTS uses. Excellent!
I dropped it into my server, powered it on, and indeed the brcmfmac driver binds to it! Unfortunately, it binds to it, and then promptly asks for the brcmfmac4366c-pcie.bin firmware file. linux-firmware has brcmfmac4366b-pcie.bin, but not 4366c.
So, down the rabbit hole it is.
Google leads to a page on the Arch Wiki1 which points to this post on the Ubuntu forums about extracting the firmware from the RT-AC68 router, which uses the same chip and runs Linux2. The most recent router firmware has a different offset and size for the firmware, but following the detailed instructions you’ll end up with a file like this brcmfmac4366c-pcie.bin.
Sticking it in /lib/firmware/brcm/brcmfmac4366c-pcie.bin results in… it still not working, even though it worked on the LiveUSB image.
Oh, that’s right, the Artful LiveUSB was using the 4.13 kernel. Installing the linux-generic-hwe-16.04-edge package pulls in the 4.13 kernel. A reboot later, and everything’s working, stably, at good speeds:
Addendum
I’ve been emailing ASUS support to try and get them to submit the firmware to linux-firmware so the summary can be “this card Just Works™”. The current status of that is: “PCE-AC88 only supports Windows 7 and Windows 10”.
[1] | Because of course there’s a relevant page on the Arch wiki. |
[2] | Like every other consumer router in the last decade. |