Useful links
How to cross bootstrap Baserock to another architecture
Foundations and preconditions
Before we start our work, we don't have any board with 64bit ARM big-endian system running on it.
HP Moonshot is the hardware we are going to use.
We got one node with the M.2 SSD formatted and partitioned.
We have got a functional 64bit ARM big-endian kernel.
We have set up a devel Baserock system following Create a Baserock VM already.
Checkout definitions from the master branch (on the devel VM)
git clone git://git.baserock.org/baserock/baserock/definitions
cd definitions
Create system definition for armv8b64 cross build
create file
cross-bootstrap-system-armv8b64-generic.morph
with the contents:name: cross-bootstrap-system-armv8b64-generic kind: system description: A system that produces the minimum needed to build a devel system arch: armv8b64 strata: - name: build-essential morph: strata/build-essential.morph - name: core morph: strata/core.morph - name: morph-utils morph: strata/morph-utils.morph - name: cross-bootstrap morph: strata/cross-bootstrap.morph
commit the new file created.
Generate a bootstrap Baserock tarball
It will tell where the tarball is stored after building is completed.
morph cross-bootstrap armv8b64 file:///src/definitions HEAD cross-bootstrap-system-armv8b64-generic.morph
Note: 8G RAM or more on the VM is recommended to run the cross-bootstrap, if the RAM is not big enough, the VM may be aborted during the process.
Netboot the crossbuild system
Copy the tarball to the M.2 SSD, and extract the tarball onto a top level of a partition with enough space,
tar -xvf /path/to/store/tarball /path/to/extracted/tarball
Setup netboot to allow the node to boot from the crossbuild system. As how to set up netboot is outside the scope of this page, I am not going to the details of this step.
Native build bootstrap system.
boot into the node.
run native-bootstrap script:
./native-bootstrap
Note: it will take quite long to run this script, and it won't keep the progress if it has been interrupted. So make sure you won't interrupt it during running. If it does happen, run:
rm -r /*.dist
to clear directory, and re-run the native-bootstrap scripte.
Prepare bootstrap system to build a devel-system of baserock.
WIP