D-Link DIR-860L rev. B1
The DIR-860L rev. B1 is a Mediatek-based first generation 802.11ac router. Unlike other 802.11ac hardware from more established players, Mediatek's MT7612EN radio does not require a large firmware to operate. This makes it a great candidate if good FOSS support is a requirement for you (the mt76 driver is actually written and maintained by one of the leading LEDE developers). The other obvious choice - Qualcomm/Atheros (QCA) - choose to capitalise on the reputation of the open 802.11an ath9k driver, which was largely developed by the same developer, by naming their 802.11ac driver ath10k; however, at the same time QCA happily closed things up and moved a lot of driver functionality into the binary firmware with its 802.11ac driver. Much like Broadcom and Marvell, they offer a Linux 'driver' which is mostly just a wrapper around those binary firmware blobs. This way, they can claim Linux or FOSS support, while you're still buying a black box. If you want more info on the state of wireless drivers on Linux, this video might interest you.
By now, it's probably clear I picked this router because it has the most open 802.11ac driver available. If you're interested, keep in mind Mediatek so far does not offer anything more than two-stream solutions - if you need more than two spatial streams, you'll need to look elsewhere. I just have two AC capable devices (laptop and smartphone), so two-stream is fine for me. Another thing is the 2,4 GHz radio seems to perform badly in noisy environments (ie with lots of other 2,4 GHz radios). Mediatek has put a newer radio on the market that should perform better (MT7603), but this won't make its way into the DIR-860L anymore. I rely on 5 GHz only myself, so this does not affect me.
The DIR-860L B1 is very cheap at the moment (prices around 75 EUR or less), which makes it a very affordable upgrade from 802.11an. LEDE (and OpenWrt) fully support it - so it was a no-brainer to upgrade from my trusty Netgear WNDR3700.
At this time, the router is running a LEDE 17.01+ build. I have enabled a Cake SQM instance to fight the dreaded bufferbloat - the SoC has no issues handling my 50 Mbit down (25% load maximum on a single core). However, shortly after the network started going down, and the LEDE logs revealed kernel oopses, and sudden reboots. After talking to one of the bufferbloat guys, I disabled some of the offloading; this seems to cause problems frequently. For this, you need
ethtool, but it's a bit quirky as querying the actual settings prints the full names, and disabling the specific setting requires you use the abbreviation:
Querying the offloads:
# ethtool -k eth0|grep offload tcp-segmentation-offload: on udp-fragmentation-offload: off [fixed] generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: off [fixed] tx-vlan-offload: on l2-fwd-offload: off [fixed]
You want to disable
# ethtool -K eth0 tso off gso off gro off
After that, SQM shouldn't cause any more system instability.
- MediaTek MT7621AT SoC dual-core MIPS 1004Kc V2.15 880 MHz (with SMT)
- 16 MiB flash
- 128 MiB RAM
- MediaTek MT7621AT 5 port Gigabit Ethernet switch
- MediaTek MT7602E 802.11bgn 2x2:2
- MediaTek MT7612E 802.11an+ac 2x2:2
- USB 3.0 port
- Serial port
system type : MediaTek MT7621 ver:1 eco:3 machine : D-Link DIR-860L B1 processor : 0 cpu model : MIPS 1004Kc V2.15 BogoMIPS : 586.13 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb] isa : mips1 mips2 mips32r1 mips32r2 ASEs implemented : mips16 dsp mt shadow register sets : 1 kscratch registers : 0 package : 0 core : 0 VCED exceptions : not available VCEI exceptions : not available VPE : 0
(This is the first of four cores the kernel sees.)
Always nice to see...
BusyBox v1.25.1 () built-in shell (ash) _________ / /\ _ ___ ___ ___ / LE / \ | | | __| \| __| / DE / \ | |__| _|| |) | _| /________/ LE \ |____|___|___/|___| lede-project.org \ \ DE / \ LE \ / ----------------------------------------------------------- \ DE \ / Reboot (17.01-SNAPSHOT, r3107+7-f81eec11fa) \________\/ ----------------------------------------------------------- root@lede:~#