@sfx2000
Perhaps you can also include this ARM toolchain that I created three years ago for AsusWRT 56U/68U/87U in your VM image.
It's a drop-in replacement of the stock toolchain and provides NPTL and a little bit extra performance.
Docker is not really a good choice here because of multiple paths and the like, and for many folks where Linux is not their primary OS, the subtle aspects of getting docker up and running is likely more work than it is worth.
I was thinking about maybe building a VirtualBox box VM image with everything needed, and everything in it's proper place with a reproducible build environment.
Hit "like" if you're interested...
You cannot heavily customize a build. Too many precompiled components, these will not work if various settings are changed at the kernel or at the build level. That's why for instance AiMesh cannot be fully disabled at build time, or AiProtection cannot be removed either.
Asuswrt is not designed to be end-user customizable. It's a proprietary product developed in-house by Asus for their specific devices, not an open sourced project like DD-WRT where everyone can customize everything at build time. It just happens to contain lots of open-sourced parts, allowing someone to recompile it, and do some tweaks here and there.
If you need something fully customizable, your only alternative right now is OpenWRT or DD-WRT.
sanity check - Ubuntu version
sanity check - ensure not doing this as root (building as root does not work with HND for starter)
apt install xxx yyy zzz
cd ~
git clone toolchain
git clone repo
cp -ar repo buildtree
set up toolchain symlinks
There you go. Ubuntu system turned into a functional build environment, without having to distribute a 5 GB VM.
Docker is not really a good choice here because of multiple paths and the like, and for many folks where Linux is not their primary OS, the subtle aspects of getting docker up and running is likely more work than it is worth.
I support the notion of this endeavour and am willing to infuse vast sums of capital in order to build on demand as well as remove modules like LPD , NAS, u2ec and the puppies that infest the asuswrt.
Or is the compilation only going to be a mystery in the hands of the few?
It would be nice if the next gen firmware could be built without any dependencies on the legacy codebase.
Or make distribution easier: just create a script that will download and setup the toolchain and required packages on top of a pristine Ubuntu 18.04 LTS system. Setting up a Linux VM is really easy, anyone unable to do something as trivial should NOT be messing with firmware customization.
Such a script would be really trivial to do really:
Code:snip for brevity
There you go. Ubuntu system turned into a functional build environment, without having to distribute a 5 GB VM.
Hanging my head....the other problem is that some of the necessary info is now on the git repro pages instead of the wiki (for the ng toolchain setup). I ran into it when I set up to compile ng but never got back to do the cleanup.Looking back - might just be best to clean up the wiki pages - there's a bit of info that is out of date, and that's what is likely tripping up folks that might be interested.
Looking back - might just be best to clean up the wiki pages - there's a bit of info that is out of date, and that's what is likely tripping up folks that might be interested.
lol. somehow I anticipated that this will happen. I bet you haven't compiled asuswrt for years. Let the active users do their work and help each other.
Creating ASUS RT-AC68U firmware to image/RT-AC68U_384.7_alpha1.trx
TRX Image:
Total Size .... : 37310464 (36436.0 KB) (35.6 MB)
CRC-32 ........ : 2DA6EDD8
#md5sum image/RT-AC68U_384.7_alpha1.trx > image/RT-AC68U_384.7_alpha1.md5
make[3]: Leaving directory '/asuswrt-merlin.ng/release/src-rt-6.x.4708'
make[2]: Leaving directory '/asuswrt-merlin.ng/release/src-rt-6.x.4708'
make[1]: Leaving directory '/asuswrt-merlin.ng/release/src-rt-6.x.4708'
FROM ubuntu:18.10
RUN apt-get update && apt-get -y upgrade
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo "tzdata tzdata/Areas select Etc" > /tmp/preseed.txt; \
echo "tzdata tzdata/Zones/Europe select GMT" >> /tmp/preseed.txt; \
debconf-set-selections /tmp/preseed.txt && \
apt-get update && \
apt-get install -y tzdata
RUN apt-get install -y \
libtool-bin \
cmake \
libproxy-dev \
uuid-dev \
liblzo2-dev \
autoconf \
automake \
bash \
bison \
bzip2 \
diffutils \
file \
flex \
m4 \
g++ \
gawk \
groff-base \
libncurses-dev \
libtool \
libslang2 \
make \
patch \
perl \
pkg-config \
shtool \
subversion \
tar \
texinfo \
zlib1g \
zlib1g-dev \
git-core \
gettext \
libexpat1-dev \
libssl-dev \
cvs \
gperf \
unzip \
python \
libxml-parser-perl \
gcc-multilib \
gconf-editor \
libxml2-dev \
g++-multilib \
gitk \
libncurses5 \
mtd-utils \
libncurses5-dev \
libvorbis-dev \
git \
autopoint \
autogen \
sed \
build-essential \
intltool \
libelf1 \
libglib2.0-dev \
xutils-dev \
lib32z1-dev \
lib32stdc++6 \
xsltproc \
gtk-doc-tools
RUN git clone https://github.com/RMerl/asuswrt-merlin.ng
RUN git clone https://github.com/RMerl/am-toolchains
RUN ln -s /am-toolchains/brcm-arm-sdk/hndtools-arm-linux-2.6.36-uclibc-4.5.3 /opt/brcm-arm
RUN rm /asuswrt-merlin.ng/release/src-rt-6.x.4708/toolchains
RUN ln -s /am-toolchains/brcm-arm-sdk /asuswrt-merlin.ng/release/src-rt-6.x.4708/toolchains
ENV PATH=$PATH:/opt/brcm-arm/bin
RUN dpkg --add-architecture i386
RUN apt-get update
RUN apt-get install -y libelf1:i386
WORKDIR /asuswrt-merlin.ng/release/src-rt-6.x.4708
RUN make clean
RUN make rt-ac68u
Can the code be cleaned up a little?
Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!