Build for Debian MIPS

Ross Tajvar ross at tajvar.io
Fri Apr 3 18:53:52 CEST 2020


Thank you Clemens, this is very useful information. Unfortunately I don't
have an Edgerouter with a USB port that's not currently in production.
Perhaps I will buy a spare so I can try the process you describe.

On Thu, Apr 2, 2020 at 7:47 AM Clemens Schrimpe <clemens.schrimpe at gmail.com>
wrote:

> Hallo all -
>
> I built BIRD (1.x and 2.x) for the EdgeRouter platforms(!) myself for many
> years now and I still do. At first I used a "proot" environment with QEMU
> on a Ubuntu environment, but I have moved on to compiling it directly on
> the machines in question a while ago. EdgeRouters (especially the "XG" or
> "Infinity" types) have more than enough CPU and RAM to do it there, it's
> just the "local storage" and the way their firmware is updated, which
> prevents you from "just doing it".
>
> The solution is simple, though: Current EdgeOS versions support the
> USB-Port on those routers and you can just plug in a cheap thumb drive or
> even a real SSD/HD with a USB-Interface. Format it with ext3/ext4, mount it
> to /mnt for example, clone the current OS onto it, like so:
>
> rsync -aAXv
> --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/
> root.dev/*"} / /mnt/
>
> create shadow-mounts for the special kernel filesystems:
>
> mount --rbind /dev  /mnt/dev
> mount --rbind /proc /mnt/proc
> mount --rbind /sys  /mnt/sys
>
> and now you can chroot into your development environment:
>
> chroot /mnt /bin/bash --login
>
> and (bonus track) even start an sshd *within* this environment for easier
> access later:
>
> mkdir /var/run/sshd /run/sshd # may fail on either
>
> /usr/sbin/sshd -p 222 -o Protocol=2
>
> which runs on port 222 now (vs. the "normal" sshd, running on port 22).
>
> Depending on the EdgeOS Version (1.x or 2.x) you install additional
> packages need for development. Here are some suggestions
> (non-comprehensive):
>
> Packages for 2.x:
>
> wget
> git
> build-essential
> autoconf
> locales-all
> cscope
> ncurses-dev
> libssl-dev
> libev-dev
> liblzo2-dev
> libpam-dev
> minizip
> flex
> bison
> libperl-dev
> libreadline-dev
> libpcre3-dev
> libpcap-dev
> libldap-dev
> libtalloc-dev
> libcap2-dev
> libmemcached-dev
> libjson-c-dev
> libgdbm-dev
> libsqlite3-dev
> libssh-dev
> libssh2-1-dev
>
> binutils manuell nachinstallieren! (dpkg -i ...)
>
>
> ------
>
> Packages for 1.x:
>
>
> autoconf
> locales-all
> cscope
> ncurses-dev
> libssl-dev
> libev-dev
> liblzo2-dev
> libpam-dev
> flex
> bison
> libperl-dev
> libreadline-dev
> libpcre3-dev
> libpcap-dev
> libldap-dev
> libtalloc-dev
> libcap2-dev
> libmemcached-dev
> libgdbm-dev
> libsqlite3-dev
> libssh-dev
> libssh2-1-dev
>
>
> Why am I doing this on this "shadow root" again? Because every EdgeOS
> update wipes *everything*, except for /config (which is why I place my
> compiled "modules" (binaries), like BIRD, into /config/opt/bird/... for
> example → *./configure -prefix=/config/opt/bird* .
>
> This has been working very well for me in a while and I am compiling all
> sorts of tools all the time within this "Build jail".
>
> Tools needed to start this off (mkfs, rsync, etc.) are either already on
> the platform or can be installed through the officially supported "apt-get"
> mechanism.
>
> The above was quickly copy&pasted together from what I have on my terminal
> windows right now and and is surely lacking a step or two along the way,
> sorry. Please feel free to ask for more detailed instructions if you get
> stuck somewhere.
>
> Greeting,
>
> Clemens
>
> PS: If you want to cover the whole EdgeRouter platform you'll need to do
> this *twice* - once on an ER-Pro/ER-Infinity and once on an ER-10X (the
> only X-router with an open USB port), as the former is MIPS-BE and the
> latter is MIPS-LE ... yes, all of these can somehow be "emulated", but I
> just found it much easier to create/operate/maintain those build
> environments on their respective *native* platforms - besides: They are
> incredibly cheap - even the Infinity router (8 x SFP+, 116 CPUs - 16G RAM -
> bored beyond belief) is comparatively cheap.
>
> We've not been able to build ourselves on MIPS yet, we went into some
> strange problems last time (don't remember exactly). Were you so kind
> please and could you please help us setting up Debian for MIPS in QEMU if I
> fail to manage it once more?
> The main issue was, what hardware to choose and how to boot it. But I'll
> try once more before asking any detailed question. Then we can replicate
> your issue and probably even build and test for MIPS.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20200403/88748882/attachment.htm>


More information about the Bird-users mailing list