Slow wifi with Intel 7265 iwlwifi on Arch

I use my Arch powered bootable USB drive on lots of different hardware, but most often on hand-me-down laptops from work. I recently moved into a newish laptop (a Dell Inspiron 13-7352, P57G) which came with an Intel 7265D wireless card. Its a really nice 2 in 1 laptop where the screen folds back so you can use it in tablet mode, its the size I like (13″) has a backlit keyboard and a touchscreen with an i7. I don’t see myself ever using this thing in tablet mode but build quality seems good and the keyboard is very Macbook-like chicklet type which, while I’m not a huge fan is usable.

Sadly, I do need to keep the SSD drive loaded with Windows (10) since its a work machine, but I was able to take it out of secure boot mode so I could boot from USB as needed. The first few tweaks I needed was to change the resolution because the default res on this screen is only good for the under 30 set. xrandr --output eDP1 --mode 1600x900 gets me something I can live with. Since I use the USB stick on lots of machines, and I’m running i3 and using netctl I don’t have it connect automatically. Sometimes I need to manually scan (like at the library) so I have a few preset profiles I can load set up, but its just another step when I boot to manually connect up. Fn+Brightness keys work fine, as does the Fn+keyboard backlight key but volume keys do not. These are set up in the .i3/config file and I haven’t messed with those keybindings for a couple years and I haven’t looked into fixing that yet, for now I’m just using alsamixer to adjust sound. I did add a binding for screenshots:

# Screenshot bindings 170212
bindsym Print exec scrot $HOME/Pictures/Screenshots/`date +%Y-%m-%d_%H:%M:%S`.png
bindsym $mod+Print exec scrot -u $HOME/Pictures/Screenshots/`date +%Y-%m-%d_%H:%M:%S`.png
bindsym $mod+Shift+Print exec scrot -s $HOME/Pictures/Screenshots/`date +%Y-%m-%d_%H:%M:%S`.png

It wasn’t long before I realized that the network speed over the wireless was just awful when in Linux (currently using kernel 4.9.8-1). The Intel 7265 is fully supported under Linux, though it doesn’t specifically list the 7265D and there really aren’t many complaints about it out there, though there definitely are some and some of those were solved by disabling 11n, but no matter what I tried I just could not get anything faster than about 1.5Mbit/s over my 20Mb connection. The card ran fine in Win10, but even when I disabled the latest iwlwifi (22) and tried each previous version successively in /usr/lib/firmware it wouldn’t ever work right. Another possible culprit was power management but turning it off didn’t help, and most folks complaining about slow performance due to power management reported a slow-down after a certain time period (as if the radio was being powered down on a time limit). This wasn’t my case – it was just slow all the time and equally so. There definitely are some ACPI errors at boot on this machine very similar to those some folks were blaming on the BIOS. The BIOS numbering for this machine (A09) appears to be in an entirely different sequence from the one discussed there (1.4.4) though. There are a few ACPI related errors at boot and I did find a similar kernel bug reported for this kernel, and others have discussed this issue but mostly everything does seem to be working. I can shut the lid and it suspends, and opening it again it resumes and wifi and networking function properly:


ACPI Error: [\_SB_.PCI0.LPCB.H_EC.ECWT] Namespace lookup failure, AE_NOT_FOUND (20160831/psargs-359)
ACPI Error: Method parse/execution failed [\_TZ.FN00._ON] (Node f44bcfa8), AE_NOT_FOUND (20160831/psparse-543)
ACPI: Thermal Zone [THM] (56 C)
ACPI Error: [\_SB_.PCI0.LPCB.H_EC.ECRD] Namespace lookup failure, AE_NOT_FOUND (20160831/psargs-359)
ACPI Error: Method parse/execution failed [\_TZ.TZ00._TMP] (Node f44bcf78), AE_NOT_FOUND (20160831/psparse-543)
ACPI Error: [\_SB_.PCI0.LPCB.H_EC.ECRD] Namespace lookup failure, AE_NOT_FOUND (20160831/psargs-359)
ACPI Error: Method parse/execution failed [\_TZ.TZ01._TMP] (Node f44bc1b0), AE_NOT_FOUND (20160831/psparse-543)

I wish I could relate a more satisfying solution than this: I swapped out the 7265D for a 7260 wireless card out of an ASUS UX303L I have with a broken screen. A few months ago I removed the broken screen and hinges and run the laptop hooked up to an external hdmi screen. Doing so has the side effect of rendering the built in wireless non-functional since the antenna wires route around the screen. Win10 still runs fine with the 7260 (no discernable difference), and now my Arch stick is getting speeds of about 18Mbit/s (according to the command line speedtest-cli program). I was at the point where I had just about given up tweaking software settings and rebooting and if I didn’t have a spare wifi card laying around I would probably have just brought this laptop back in to work and grabbed something less sexy since the slow wifi was that much of an annoyance to me.