Build for Debian MIPS

Ross Tajvar ross at tajvar.io
Sun Apr 5 01:45:06 CEST 2020


Thank you Maria! When will that update reach the Debian source repo, so I
can build the package?

On Sat, Apr 4, 2020 at 7:27 PM Maria Matějka <maria.matejka at nic.cz> wrote:

> Hello!
> Hopefully fixed in current master, commit 2928c5bcc7
> The affected test was broken itself, yet it accidentally somehow worked on
> little endian.
> Maria
>
> On April 4, 2020 1:42:58 AM GMT+02:00, "Maria Matějka" <
> maria.matejka at nic.cz> wrote:
>>
>> Hello!
>>
>> I've just replicated the bug via the proot approach. Thank you a lot for
>> your help!
>>
>> Maria
>>
>> On April 2, 2020 1:47:32 PM GMT+02:00, 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.
>>>
>>>
>>>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20200404/b8713908/attachment.htm>


More information about the Bird-users mailing list