Full-featured custom build for Dynalink DL-WRX36 (AX3600)

UPDATE - NEW CUSTOM NSS-ENABLED BUILD IS NOW AVAILABLE

*I have released an update to my custom openwrt build for the dynalink wrx36 that is now NSS-enabled! The original link now leads to this new build, but here is another link to it. It took a few tries to get a stable NSS-enabled build, but this build has (so far on my router) been working fantastic and is (seemingly) 100% stable with everything working as it should.

Note: If you havent already, be sure to set up usb recovery before flashing the NSS-enabled firmware. You shouldn't need it, but in case something goes wrong that makes recovery a piece of cake.

The README in the GitHub repo has been updated as well. This contains additional info, including some recommended first post-install steps to take. Ill give some of the highlights about the build here though.

Some info regarding the build

This build has been fairly heavily customized and has many features compiled in.

  1. has full wpad and all NSS packages, with 1 exception: no mesh support (even without nss). iwinfo + the full versions of iw, ethtool are also compiled in. NOTE: mesh is NOT supported with this build.
  2. usteer + 80211r/w/v are available and pre-setup and running out of the box. usteer is configured for band steering between the 2g and 5g wifi frequencies, but can easily be modified to steer to other openwrt ap's.
  3. it uses unbound+odhcpd for DNS+DHCP. dnsmasq is not installed. unbound has all the extra goodies (libpthreads, libevent....everything except python support) compiled in, and uses a customized startup script. Adblock is also pre-setup and running. adblock seamlessly integrates with unbound - it sets up an unbound blacklist and then unbound does the ad blocking).
  4. There are 2 LAN-side interfaces set up. LAN1-3 and WiFi are on interface "lan" / bridge "br-lan". LAN4 is on interface IoT. The idea is that you plug a 2nd router into LAN 4 and have IoT devices connect to that where they a) wont slow down your main network and b) will be on different wifi channels. NOTE: the firewall is setup so that devices on "IoT" can not access the router nor can they access devices on "lan". lan IP is 10.0.0.1/24. IoT IP is 192.168.0.1/24.
  5. WiFi is on the lan interface with default name "OpenWrt_WiFi" and default password "password"
  6. ksmbd is compiled in and mostly pre-setup for password-protected smb3 file sharing. user/pass/workgroup is SMBUSER / SMBPASSWORD / WORKGROUP.
  7. LUCI is compiled in, and has some extra nice status monitoring packages installed (from the "fantastic packages" github repo), plus control for nbound, ksmbd, adblock, etc.
  8. A bunch of shell tools are compiled in (bash, many coreutils, htop, atop, various compression + checksum tools, etc.). Several miscellaneous network tools / protocols (e.g., gre, rd6, ipip6 tunnels) are also compiled in.
  9. Numerous kernel-level tweaks have been made. These include (but are not limited to): making the kernel fully preemptable, increasing the interrupt timer to 1000 hz, automatic cgroup scheduling (that favors dynamic latency reduction), zswap is enabled (zsmalloc+zstd), all the crypto (except those requiring armv8.2 crypto acceleration) are either compiled in or available as a kmod, etc.
  10. chrony provides NTP service (getting the time. It defaultstop using a stratum 1 time server with NTS enabled
  11. My plex media server init script is compiled in and ready to go. It assumes that you will mount the external hdd at /mnt/PLEX, but this can be changed in the plexmediaserver UCI config.

Should you wish to try and build this yourself, the github repo includes a document that outlines my build process / instructions.

6 Likes