Ath79 builds with all kmod packages through opkg [flow offloading]


Hey there!

Thank you for this firmware @juppin!

I have Archer c7 v4 already openwrt installed. I am using this as a main router and I suffer from the speed issue discussed before. I would like to try your firmware on my device but I see that there is no support available. I tried to sysupgrade with -F flag over my existing AR71xx installation, and I bricked my device. Luckily, I have enough power user capability to restore it via TFTP.

If you have your github repository for your project, I'd really like to access it to try to compile it for device. If it's not possible, could you please add support for Archer c7 v4 (AC1790)? I can try this firmware. Should something goes wrong, I can easily restore my firmware. I already have snapshot release with openwrt with 4.9.14 kernel.

Thank you!

[GCC 7.2 BUILD] Optimized TP-Link Archer C7 V2 AC1750 LEDE Firmware

No im just a user who may help to test builds for dir-505


I'm having trouble setting dnscrypt up. Some issue with libsodium.
Anyone else having this issue (testing on an Archer C7V2)

Error relocating /usr/lib/ explicit_bzero: symbol not found


Unbound is crashing also. Something is borked, getting a similar error

Error relocating /usr/lib/ getentropy: symbol not found
Error relocating /usr/sbin/unbound: getentropy: symbol not found


I can't install it on my wndr3800... the sysupgrade is an invalid image


@juppin it seems that libc/libgcc are compiled with slightly different flags in trunk. Particularly the HAVE_EXPLICIT_BZERO (a safe memory clear). Could you compile-in libsodium as well next time you do a release?

The relevant code is here: libsodium source


nevermind, I learned, installed fine, setting MTU in LAN to anything except default crashes the firmware on the WNDR3800

flashed stable 18.06.1
resetted everything in the GUI
then copied THIS firmware into the router
and then flashed with only the -F flag


Did you figure this out?


The C library in these builds uses slightly different configuration. It's fine for most packages, but not for libsodium particularly. My guess is that we'd either need juppin to compile these packages together or start using the same build flags as trunk. I might end up building my own firmware, which I did when gwlim first posted the fastpath patches. It's just a bit of a hassle to get everything, but it might be worth it (or not, my connection is not even close to gigabit, so I'm fine without offloading).


Building your own firmware is not particularly hard, specially if you are already familiar with Linux. This guide is a little older, but it's a little more complete than the new one.

@juppin, could you share your .config file in your website as well, so those of us who need different packages can just modify it?


@juppin I would like to test it on

It's 9132rev2 but there is not a dts of its own.

I would like also to test it, because it works with kernel 4.4 but not with kernel 4.9 (18.06.1) due to some strange SPI/mtd/jffs2 errors installing packages. Maybe 4.14 it's working fine

thank you


But how do I use the normal packages from TRUNK with @juppin 's Ath79 build? I built my own Ath79 for archerC7 v2 but now I cannot use any of the packages.... Also Why isn't the Ath79 the standard build for all of these hardware's at this point. Who can we talk to about making it the standard build for these devices so @juppin doesn't have to support it alone anymore.


The idea is that you should be able to simply use opkg to install the packages. The problem is that some packages like unbound and libsodium use specific functionalities that seem to be missing from juppin's builds (getentropy and explicit_bzero). My guess is that either his compile flags (-nomips16) or simply because we are using a different arch (ath79 instead of ar71xx) cause these functions not to be compiled in.

From what I understand, juppin sets his firmwares to point to his repo for the kernel module packages and for the openwrt snapshots for the other packages. You should be able to do the same by editing the /etc/opkg/distfeeds.conf file.

At least in libsodium's case, explicit_bzero is not necessary for it to work, but since the version from trunk was compiled assuming the function was present, it fails when it doesn't find it. If you compile the firmware

My guess is that ar71xx is considered stable (and well tested) and available for all supported boards, so they are keeping it there. It is also possible they're planning another point release before the next openwrt version (19?), so they'll keep things as they are.


Any chance to add WD My Net N750 support? I think it needs to be added to ath79 in general (ar71xx already works)


I'd love to get @juppin's firmware support for WD My Net N750 router as well, please. As fair I as know it is very simillar, almost identical to TP-Link WDR4300 it ust has additional 8 MB of FLASH so it has 16MB of flash.



I'm running

Firmware Version: OpenWrt SNAPSHOT r7966-01793e8752 / LuCI Master (git-18.232.74480-b93d3f3)
Kernel Version: 4.14.67

on my Archer C7 v2 which should be 2018/08/29 (4.14.67-1-b35fbde0a7eb854da54ccd985ccb2705) build linked as current build in this thread.

Performing a
opkg update && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
via ssh leads to an error while upgrading netifd but successfully upgrades all packages after a second run. But I cannot reach the router via ssh nor via LUCI after a reboot.


Are the symptoms when you do this that it halts seemingly midway through the upgrade process and then after a hard reboot you're unable to SSH or connect via the web interface?

If so, I suspect that the upgrade script that you're using is consuming all the storage space you have on your limited flash. Maybe try the failsafe option to login (, clear some packages and then reboot normally to see if that gets it to a workable state again?


Sorry for the cross-post but I think this is the correct thread and audience
I am adding support for tl-wr841-v8 in tiny targets
Apart from the work needed for dts and etc scripts, the target have been added in with this entry:

define Device/tplink_tl-wr841-v8
  ATH_SOC := ar9341
  TPLINK_HWID := 0x08410008
  SUPPORTED_DEVICES += tl-wr841-v8
TARGET_DEVICES += tplink_tl-wr841-v8

doing so the image generation works, but I only get:

menion@Menionubuntu:/media/storage/das1/temp/openwrt_ath79/bin/targets/ath79/tiny$ ls -la
total 3512
drwxr-xr-x 1 menion menion     280 Oct 16 16:52 .
drwxr-xr-x 1 menion menion       8 Oct 16 15:24 ..
-rw-r--r-- 1 menion menion     824 Oct 16 17:18 config.seed
-rw-r--r-- 1 menion menion    2893 Oct 16 17:23 openwrt-ath79-tiny-device-tplink-tl-wr841-v8.manifest
-rw-r--r-- 1 menion menion 3580071 Oct 16 17:23 openwrt-ath79-tiny-tplink_tl-wr841-v8-initramfs-kernel.bin
drwxr-xr-x 1 menion menion    3220 Oct 16 17:19 packages
-rw-r--r-- 1 menion menion     323 Oct 16 17:23 sha256sums

This, looking at the size, should be sysupgrade, but shouldn't I get a factory and sysupgrade image, named with these suffix? I think that for some reason it stops before generating full sysupgrade, so most probably it miss of metadata


I figured it out: the image was too big due to the attempt to add wpad full, and the makefile ignore this errors
Anyhow reverted to wpad-mini I made the image and it works.
Basic things so far are there, except for the image default leds and switch config, that apparently is not pick up
I have modified 01_leds

diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index f04eb7f5c6..e1bc34fbce 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -78,7 +78,8 @@ tplink,tl-wr941-v4)
        ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
        ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
        ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"

and 02_network

diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 56eb42f65c..34e94b00c6 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -159,7 +159,8 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
-       tplink,tl-wr842n-v2)
+       tplink,tl-wr842n-v2|\
+       tplink,tl-wr841-v8)
                ucidef_set_interface_wan "eth0"
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"

But the leds config is empty and there is no switch entry in network (and thus no switch entry in LuCI)


Anyone else having problems with the package mirror?

# opkg update
Collected errors:
 * opkg_download: Failed to download, wget returned 4.
 * opkg_download: Check your network settings and connectivity.

I was trying to debug why i can't connect to a PPTP VPN, despite having the necessary modules installed and having nf_conntrack_helper enabled.

If anyone has a hint regarding either of these issues, i would be grateful