Compile the Wild Waggle Node NVidia Jetson Bootloader (CBoot) from source to replace the bootloader provided in the NVidia L4T BSP. This allows custom changes to be made to the bootloader specific to the Wild Waggle node.
This will produce a replacement NVidia bootloader (cboot*.bin) to be used by wildnode-image to produce the Wild Waggle Node NX Build.
Requires the nvidia_toolchain to build.
Builds are created using the ./build.sh
script. For help execute ./build.sh -?
.
Note: this build must be executed on a Linux host. Executing the Linux build in a Docker container is not supported at this time.
Building requires 1 thing:
- The path to the GCC Linaro toolchain for building the ARM64 bootloader (see below).
Here is an example build command:
./build.sh -t /home/jswantek/workspace/scratch/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu
which will produce a cboot_t194_sage-<version>-<sha1>.bin
bootloader.
This build has been tested on a native "Ubuntu 18.04.4 LTS" server installation
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
$ uname -a
Linux ubuntu-laptop 5.4.0-47-generic #51~18.04.1-Ubuntu SMP Sat Sep 5 14:35:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
The following apt
packages are required to be installed:
apt-get update
apt-get install bc build-essential kmod xxd
Note: I had the above packages installed on my system when building but not all the above packages may be required.
In order the compile the kernel the Jetson Linux Driver Toolchain must be used. The NVidia Jetson toolchain has been saved to Jetson Linux Driver Toolchain GitHub.
To use the toolchain with the ./build.sh
script, download the toolchain from:
https://github.com/waggle-sensor/nvidia_toolchain/raw/master/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
and extract to a local directory.
mkdir /path/to/toolchain/
cd /path/to/toolchain/
wget https://github.com/waggle-sensor/nvidia_toolchain/raw/master/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
Then when executing the ./build.sh
specify the path that contains the ./bin
folder for the -t
argument.
./build.sh -t /path/to/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu ...
See the file CBoot_Standalone_Readme_t194.txt
within this repository for the
NVidia provided build instructions.