Build for Debian MIPS

Maria Matějka maria.matejka at nic.cz
Sun Apr 5 08:18:21 CEST 2020


It should probably happen shortly after we release the new version. Which is something we're usually quite lazy to do so I would expect it to happen in let's say a month or so.
Until that, it should be pretty straightforward to apply the commit on almost any recent BIRD version source as this fix is completely independent on any recent development.
Maria

On April 5, 2020 1:45:06 AM GMT+02:00, Ross Tajvar <ross at tajvar.io> wrote:
>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.
>>

-- 
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/20200405/b09cea40/attachment.htm>


More information about the Bird-users mailing list