Build for WNDR3700v1/v2 / WNDR3800 (discontinued)

Let me start with praising you for supplying such a nice stream of ready-to-use builds for the venerable wndr3[7|8]000v[1|2] that makes keeping up to date with lede development a breeze that requires no actual firmware building from my side :wink:

I have a question regarding the IPv6/WAN6 default configuration in your builts (as I have been plagued by erratic IPv6 and DNS issues since winter); at least on my wndr3700v2 the interface name for the WAN6 interface defaults to eth1 (after a "sysupgrade -n", so I believe this to show the defaults of your builts/lede):
"config interface 'wan6'
option ifname 'eth1'
"
This seems to be sensible in that eth1 really is the ethernet interface that directs towards the internet.

But it does not work for setting up IPv6 on my "deutsche telekom vdsl50 link", resulting in a weird router state over-all where DNS (IPv6 and IPv4) is severely wonky (e.g. "nslookup www.heise.de" on the router will not work like 19 out of 20 attempts).
According to a Hans Dedecker (https://bugs.lede-project.org/index.php?do=details&task_id=668) the issue is that for links where IPv6 is negotiated over an IPv4 PPPoE link (like mine) the wan6 ifname should be "@wan" (or alternatively the wan6 interface should be nuked completely). And lo and behold with:
config interface 'wan6'
option proto 'dhcpv6'
option _orig_ifname 'eth1'
option _orig_bridge 'false'
option ifname '@wan'
option reqaddress 'try'
option reqprefix 'auto'

I get both working IPv6 and IPv4 DNS working again. So I wonder does @wan also work for users that do get IPv6 directly via DHCP, and if yes, would you consider switching the default? I have not looked into the defaults lede's stable version or snapshots, so for all I know this might be an issue with "upstream lede" as well.

Best Regards

Sorry. I use the LEDE default setting there. No personal modifications, as you can see from the diffs I provide with builds. It works for me, so I am not going to change it.

(I have native IPv6 from ISP and currently the connection is ethernet via fiber directly to the cellar, so I have no experience from PPPoX things.)

Ps. currently my old WNDR3700 is just a supporting router providing wifi coverage ;-(
I mainly use R7800.

Ah, then I will try to figure out what the rationale is for lede's default. The interesting thing is that as of last summer, things just worked, and then they stopped, but I was too busy otherwise to directly dig into this. My main puzzlement is not so much that out of the box my IPv6 did not work (I guess it is fair to having to configure it properly given the multitude of deployment schemes, it is more that IPv4 DNS stopped working reliably, which is quite an unexpected side-effect of a semi-broken IPv6 configuration). Anyway, thanks for you builds, I will try to figure out what to do upstream :wink:

BTW, I completely had forgotten about the nice diffs you supply, so sorry for not looking more diligently...

At some point the @wan default was changed into supplying the WAN netdev directly (e.g. eth1 or eth0.2). That change was done by Steven back then and I remember that I already asked for the motivation there too since it essentially turned a well working IPv6 autoconfiguration into something that failed for anyone using VLANs, PPPoE or anything else affecting the WAN layer 3 interface.

Maybe it makes sense to switch back to @wan, you could ask Hans Dedecker via mailing list or IRC as he's the one with the deepest insight into the current IPv6 userland.

Edit: I reviewed my old chat logs and the explanation given was that "it doesn't work with e.g. dslite setup".

We should maybe fix whatever is broken with dslite and switch back to the wan6 interface with @wan as this seemed to be the most reliable variant so far...

Maybe I have misunderstood something here, but I have a PPPoE connection to my ISP for IPv4 and my WAN6 interface (LEDE default) configured to get DHCP address from the ISP (I believe it goes by way of the PPPoE connection?).
I do NOT have the ipv6=1 option enabled under my WAN interface, yet my IPv6 works fine (Native with PD).
Isn't this the exact configuration you're talking about? Although, I am using a WNDR3700v1 if that has any bearing?

The only odd thing I do have, is that I have to change the ula_prefix from whatever is system generated after a factory reset or upgrade, or my IPv6 internet traffic won't work (but I do get assigned IPv6 routable addresses etc. to clients and to the interfaces in LEDE)... still haven't worked out why on that one.

1 Like

I made builds to test the FastPath - the Shortcut Forwarding Engine from Qualcomm, that is supposed to streamline NAT routing. WNDR3700/3800 family is CPU constrained with speedy internet connections, so I thought to test this myself.

Fastpath is not yet in LEDE master sources, but there is a pull request from @dissent1 , so it might get included at some point. Relevant discusion e.g. in Qualcomm Fast Path For LEDE

In any case, the download directory now contains two almost identical builds from today:

  • lede-r4668-b70a96285c-20170803-optional-fastpath has basic build but has the Fastpath packages as *.ipk files in the directory, so that they can be downloaded and installed with opkg
  • lede-r4668-b70a96285c-20170803-fastpath-built-in has Fastpath built into the firmware.

Just a quick note, FastPath does not seem to work with traffic shaping on ingress, it reportedly works with egress shaping though. (Also I believe it is not clear wether/how it interferes with cake's internal deNATing mode that allows per-internal-IP-fairness). This is not intended as a complaint, just a notification of known issues...

@hnyman

Is there any (easy) way to make benchmarks between some clients / scenarios ?

Hi, thanks for the firmware. I am coming from OpenWrt. Which version do you recommend for my WNDR3700? LEDE master vs LEDE 17.01?

Extroot is not enabled by default, right?

Both master and 17.01 are naturally successors for Openwrt. Both are stable, but 17.01 is more "guaranteed to work". But not much difference in practice, as ar71xx target still uses Linux kernel 4.4 also in the 17.01 branch.

I use master myself.

Extroot is not enabled.

1 Like

Thank you, one more question: how can i disable automount for particular device? I enabled extroot, but now my usb is double mounted (mnt/sda2, /overlay).

Keep up the good work, thank you for the build.

You might start by setting the anon_mount item to 0 in /etc/config/fstab, as that is the only change that I have done for the build. And if that does not help, set also the auto-mount to 0.

I have no experience with extroot, so wiki is yout best friend.

For kicks, I downloaded @hnyman version "WNDR3800-lede-r4668-b70a96285c-20170803-2135-sqfs-sysupgrade" which includes fastpath. I loaded it on an extra WNDR3800 to see how it would perform, and to my surprise it wasn't much different than my WNDR3800 with 17.01.2. Perhaps my expectations are off. My internet is capable of 150Mbps down. With 17.01.2 I get 80Mps over wireless. With the Fastpath firmware, I get about the same. What gives?

@hnyman

Something wrong("Clock skew detected. Your build may be incomplete) while I try to build WNDR3700-lede1701-r3506-bb6a8b2cbf-20170906-2058

is that ok ,I did not change anything

jack@jack-ThinkPad-T400:~/3700-1701-original/lede1701$ hnscripts/updateNmake.sh
...update main source...
Already up-to-date.
...update feeds...
Updating feed 'packages' from 'https://git.lede-project.org/feed/packages.git;lede-17.01' ...
Already up-to-date.
Create index file './feeds/packages.index'
make: Warning: File '/home/jack/3700-1701-original/lede1701/include/verbose.mk' has modification time 25244 s in the future
make: warning: Clock skew detected. Your build may be incomplete.
make: Warning: File '/home/jack/3700-1701-original/lede1701/feeds/packages.tmp/info/.files-packageinfo.mk' has modification time 25289 s in the future
make[1]: Warning: File '/home/jack/3700-1701-original/lede1701/include/verbose.mk' has modification time 25244 s in the future
make[1]: warning: Clock skew detected. Your build may be incomplete.
make: warning: Clock skew detected. Your build may be incomplete.
make: Warning: File '/home/jack/3700-1701-original/lede1701/feeds/packages.tmp/info/.files-targetinfo.mk' has modification time 25289 s in the future
make[1]: Warning: File '/home/jack/3700-1701-original/lede1701/include/verbose.mk' has modification time 25243 s in the future
make[1]: warning: Clock skew detected. Your build may be incomplete.
make: warning: Clock skew detected. Your build may be incomplete.

Something goes wrong with your build system's system time. Sounds like you have copied the files from a drive that uses local timezone to a drive that uses UTC, or something like that.

@hnyman
Yes it is,you are so good !

by the way, I can't build my netgear 4300 yet,please pull me out there

as your post I do the following changes

BinDir=$PWD/bin/targets/ar71xx/generic
Device=WNDR3700
Prefix=lede-ar71xx-generic

change to

BinDir=$PWD/bin/targets/ar71xx/nand
Device=WNDR4300
Prefix=lede-ar71xx-nand

cd $BinDir
mv *.manifest WNDR3700-$VersTime.manifest
mv *wndr3700-squashfs-sysupgrade.bin WNDR3700-$VersTime-sqfs-sysupgrade.bin
mv *wndr3700-squashfs-factory.img WNDR3700-$VersTime-sqfs-factory.img
mv *wndr3700v2-squashfs-sysupgrade.bin WNDR3700v2-$VersTime-sqfs-sysupgrade.bin
mv *wndr3700v2-squashfs-factory.img WNDR3700v2-$VersTime-sqfs-factory.img
mv *wndr3800-squashfs-sysupgrade.bin WNDR3800-$VersTime-sqfs-sysupgrade.bin
mv *wndr3800-squashfs-factory.img WNDR3800-$VersTime-sqfs-factory.img

change to

cd $BinDir
mv *.manifest WNDR4300V1-$VersTime.manifest
mv *WNDR4300V1-squashfs-sysupgrade.bin WNDR4300V1-$VersTime-sqfs-sysupgrade.bin
mv *WNDR4300V1-squashfs-factory.img WNDR4300V1-$VersTime-sqfs-factory.img

then do hnscripts/updateNmake.sh after making menuconfig and select WNDR4300V1

but get erros

make[3]: Entering directory '/home/jack/3700master/lede/feeds/luci/applications/luci-app-bcp38'
make[3]: Entering directory '/home/jack/3700master/lede/feeds/luci/applications/luci-app-ddns'
make[3]: Entering directory '/home/jack/3700master/lede/feeds/luci/collections/luci-ssl-openssl'
make[2]: Entering directory '/home/jack/3700master/lede'
make[3]: Entering directory '/home/jack/3700master/lede'
make[2]: Entering directory '/home/jack/3700master/lede'
make[3]: Entering directory '/home/jack/3700master/lede/target/linux'
make[4]: Entering directory '/home/jack/3700master/lede/target/linux/ar71xx'
make[5]: Entering directory '/home/jack/3700master/lede/build_dir/target-mips_24kc_musl/linux-ar71xx_nand/linux-4.4.87'
make[5]: Entering directory '/home/jack/3700master/lede/target/linux/ar71xx/image'
make[2]: Entering directory '/home/jack/3700master/lede'
make[2]: Entering directory '/home/jack/3700master/lede'
...create build info: process lede...
mv: target 'WNDR4300V1-lede-r4831-9c500db-20170915-2025.manifest' is not a directory
mv: cannot stat '*WNDR4300V1-squashfs-sysupgrade.bin': No such file or directory
mv: cannot stat '*WNDR4300V1-squashfs-factory.img': No such file or directory

Hey, just check the contents of the compilation directory and modify filenames in the scripts accordingly. Most likely you have the actual filenames starting with small caps (like in my original script), and you have replaced that with LARGE CAPS

See the difference below????

mv *wndr3700-squashfs-sysupgrade.bin WNDR3700-$VersTime-sqfs-sysupgrade.bin
vs.
mv *WNDR4300V1-squashfs-sysupgrade.bin WNDR4300V1-$VersTime-sqfs-sysupgrade.bin

But this again quite general file handling advice, nothing to with my build scripts specifically. Please just look at the files and directories and double check that you have details right in the scripts. There is no way I can remotely debug your changes........

@hnyman

Any suggestion to this error:

root@LEDE:~# opkg install kmod-wireguard
Installing kmod-wireguard (4.4.87+0.0.20170907-1) to root...
Downloading http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/packages/kmod-wireguard_4.4.87+0.0.20170907-1_mips_24kc.ipk
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-wireguard:
 * 	kernel (= 4.4.87-1-48cdaa48961822c7096597d7ef9f957b) * 
 * opkg_install_cmd: Cannot install package kmod-wireguard.
root@LEDE:~# uname -a
Linux LEDE 4.4.83 #0 Mon Aug 21 15:14:07 2017 mips GNU/Linux
root@LEDE:~#

I tried install with --force-depends, but I can't find the module in lsmod. I think it's not loaded, also modprobre wireguard says that it failed to find module named wireguard. :rage:

You can't install kernel modules from a different kernel version . 4.4.87 modules do not fit to 4.4.83. Dependency override will not help with that.

Good to know that, thanks.

What are my options? Is there any (easy) way to upgrade the kernel? Or I must forget about it?