This guide assumes familiarity with Baserock.

There are several steps. First, making a cross-bootstrap system on the x86_64. Then, moving the cross-bootstrap system to the armv5l hardware, and using the cross-bootstrapped system to build a build system. Finally, using that build system to make an armv5l reference system. This guide details which steps of the cross-bootstrap guide to follow, which specific systems to use at each step, and things to watch out for (or things you can safely ignore) when building this system.

1. Make the cross-bootstrap system on the x86_64

In your x86_64 Baserock system, navigate to definitions and use step 2 from the cross-bootstrap guide

Beware that morph doesn't check size before building cross-bootstrap systems, so clear some room first.

The precise command to build the armv5l cross-bootstrap system is:

morph cross-bootstrap armv5l /src/definitions/ HEAD systems/cross-bootstrap-systemarmv5l-generic.morph

2. Use the bootstrapped system to build the armv5l build system

Connect an armv5l board running Baserock. Copy over the tarball, and follow step 3 from the cross-bootstrap guide.

(you can extract the tarball with tar xf).

Once this is extracted, you will then need to run the native-bootstrap script (again, see step 3). You will need quite a lot of room so this is best done on an external disk.

You should end up with a cross-bootstrapped Baserock system (don't worry if it's all in the same directory as the extracted files).

This cross-bootstrapped system is fragile and does not have the full functionality of a regular build system (eg: artifact-splitting, which is essential to create a minimal system), so now we must use the cross-bootstrapped system to create a build system. To do so, follow steps 4 and 4a) on the cross-bootstrap guide.

You can safely ignore any ldconfig-related warnings about magic bytes. If linux-user-chroot does not work at first, try leaving the board and sshing back in again, and it should work after a couple of tries. The bind-mount should be sufficient for allowing linux-user-chroot to work on this system; you should not need to move everything to another disk.

Now, you can navigate to definitions inside this chroot, and run:

morph build systems/build-system-armv5l-openbmc-aspeed.morph

Once this has built, extract it and chroot inside. You are now inside the build system and ready to build the reference system.

3. Use the build system to build an armv5l reference system

Now that you have a baserock system, you'll need to configure some other things (see step 4c in the cross-bootstrap guide, and also the quickstart page. We assume here that you are familiar enough with Baserock to know the things that normally have to be configured on a new build system, so have not gone into too much detail)

You should now be able to use this system to make the reference system. Navigate to definitions, and run:

morph build systems/minimal-system-armv5l-openbmc-aspeed.morph

Once it has built, run:

morph deploy clusters/minimal-system-armv5l-openbmc-aspeed-deploy.morph

Congratulations! You have an armv5l cross-built system!