And by the way, I started researching into how to compile DD-WRT myself due to macOS dropping support of L2TP over IPSec. And DD-WRT built-in SoftEther runs L2TP over IPSec which means I can no longer connect to the DD-WRT flashed device I have.
I successfully built a cross-compiler, gcc 9.3.0 (musl Libc) for ARMv7 and compiled strongSWAN 5.8.4 for the DD-WRT. But then I realised the lacking of kernel modules that rendered the strongSWAN connectable but without real communications going through. Therefore, I am digging out how to compile things from source to build things like xt_policy.ko, etc. And eventually even modifying some bits and bytes to built my own firmware binaries.
# cat /proc/version
Linux version 3.10.108-d10 (root@linux) (gcc version 9.2.0 (OpenWrt GCC 9.2.0 r10890-7d542dc804) ) #3540 Fri Apr 10 13:25:57 +04 2020
I assume that is possible to build DD-WRT with OpenWRT toolchain. I've cloned OpenWRT, built its toolchain - it has prefix mipsel-openwrt-linux-musl-
How should I configure DD-WRT to use such a toolchain? First error I get is:
ccache: error: Could not find compiler "mipsel-linux-uclibc-gcc" in PATH
musl and uclibc are two different libc implementations. I don't know much about what the DDWRT MIPS builds expect but if that's the mismatch, you can configure the OpenWrt toolchain to use one vs the other.
I have yet another problem here, I tried to compile DD-WRT for ARMv7-MUSL with the linux-4.4 kernel enclosed in the source tree. But iptables 1.3.7 failed to compile complaining of missing headers, e.g.,
I see that starting from some version of Linux 2.6, the above headers are dropped. But at the same time iptables 1.3.7 and Linux 4.4.208-rc1 is the version of iptables and Linux in my running DD-WRT. So I wonder how BrainSlayer compiled this version of firmware from the start?
Furthermore, one more question that Linux 4.4.208 in Linux repository seems to exist, *without -rc1* extra version, is -rc1 burnt from Makefile to the compiled OS instead of being a real release from Linux?
If an official build has -rc1 and the one in the repository does not, then the official build may be "older" than the most recent changeset on that directory. As far as the header issues, there is no telling what magic voodoo is going on. I'm sure the folks tinkering around with the Northstar stuff probably have a better idea. I haven't looked at their WIP.
Thanks kernel-panic! Is -rc* abbreviation of release candidate?