Awesome
Piksi Multi Buildroot
Buildroot configuration and packages for building the Piksi Multi system image.
Overview
piksi_buildroot
is a Buildroot project targeting the Piksi Multi GNSS receiver. It consists of
- Buildroot, as a git submodule
- An external Buildroot tree in the top-level
piksi_buildroot
directory:- Buildroot configuration in
configs
- Custom packages in
package
- Board-specific files (rootfs overlay, device trees, scripts, etc.) in
board/piksiv3
- Buildroot configuration in
Fetching firmware binaries
To build a production system image, the build process expects the following firmware and FPGA binaries to be present:
firmware/prod/piksi_firmware.elf
firmware/prod/piksi_fpga.bit
firmware/microzed/piksi_firmware.elf
firmware/microzed/piksi_fpga.bit
You can use the following command to download these binaries from S3. Note that
this requires awscli
to be installed and AWS credentials to be
properly configured.
make firmware
Check fetch-firmware.sh
to see which image versions are being used.
Note that these binaries are only used by the production system image. In the development system image they are instead read from the network or SD card.
Building
Linux Native
Ensure you have the dependencies. See Dockerfile
for build dependencies.
Run
# Initialize submodules
git submodule update --init --recursive
# Download firmware and FPGA binaries
make firmware
# Build the system image
make image
Images will be in the buildroot/output/images
folder.
Docker
Install Docker for your platform.
Run
# Initialize submodules
git submodule update --init --recursive
# Download firmware and FPGA binaries
make firmware
# Set up Docker image
make docker-setup
# Build the system image in a Docker container
make docker-make-image
Images will be in the buildroot/output/images
folder.
Incremental Builds
It is possible to rebuild individual packages and regenerate the system image. Note that Buildroot does not automatically rebuild dependencies or handle configuration changes. In some cases a full rebuild may be necessary. See the Buildroot Manual for details.
Linux Native
# Enter buildroot directory
cd buildroot
# Set BR2_EXTERNAL to the piksi_buildroot directory
export BR2_EXTERNAL=..
# Rebuild a package
make libpiksi-rebuild
# Rebuild the system image
make image
Docker
# Start interactive Docker container
make docker-run
# Enter buildroot directory
cd buildroot
# Rebuild a package
make libpiksi-rebuild
# Rebuild the system image
make image