- Introduction
- Graphical User Interface GUI
- Command Line Interface CLI
- Deployment
- Project mode
- Updating the binaries
- FAQ
- Known Issues
This is the user documentation for the Enclustra Build Environment project. It can be used to create a bootable Linux image for Enclustra's SoC modules.
Date | Rev | Author | Changes |
---|---|---|---|
2015-05-08 | 1.0 | Karol Gugala | Buildsystem description |
2015-05-11 | 1.1 | Aleksandra Szawara | Language check |
2015-07-06 | 1.2 | Aurelio Lucchesi | Minor corrections |
2015-11-20 | 1.3 | Tomasz Gorochowik | Major reorganization |
2016-06-21 | 1.4 | Tomasz Gorochowik | Project mode section |
2017-06-23 | 1.5 | Maciej Mikunda | Updates for release v1.5 |
2018-03-21 | 1.6 | Mariusz Glebocki | Updates for release v1.6 |
2018-11-22 | 1.7 | Wojciech Tatarski | Updates for release v1.7 |
2019-02-22 | 1.8 | Joanna Brozek | Updates for release v1.8 |
2024-04-10 | 1.9 | Andreas Bürkler | Update for Quartus 2023.1 / Linux kernel 6.1 / U-Boot 2023.01 / Buildroot 2023.05 |
This chapter describes the usage of the build environment. The whole build environment is written in Python. Its internal functionality is determined by ini files placed in a specific directory layout.
The build environment was tested on following host Linux distributions:
- Ubuntu 22.04 LTS
To run the build script a Python 2 interpreter is required.
The build environment requires additional software to be installed as listed below:
Tool | Comments |
---|---|
dialog | Required only in the GUI mode |
make | |
git | |
tar | |
bzcat | |
unzip | |
curl | |
wget | |
bc | |
libssl-dev | |
patch | |
rsync | |
autoconf | Required to build a buildroot rootfs |
g++ | Required to build a buildroot rootfs |
gcc | |
flex | |
bison | |
u-boot-tools |
The required packages can be installed with the following commands:
sudo apt update
sudo apt install python2 dialog make git tar bzip2 unzip curl wget bc libssl-dev patch rsync autoconf g++ gcc flex bison u-boot-tools
The build environment is designed to work with a specific directory structure depicted below:
|-- bin
|-- binaries
|-- buildscripts
|-- sources
| |-- target_submodule_1
| |-- target_submodule_2
| |-- target_submodule_3
| |-- target_submodule_4
|-- targets
| |-- Module_1
| |-- BaseBoard_1
| |-- BaseBoard_2
| |-- Module_2
| |-- BaseBoard_1
|-- target_output
Folder | Function |
---|---|
bin | Remote toolchains installation folder. |
binaries | Additional target binaries download folder. |
sources | master_git_repository clone folder. It contains submodule folders. |
buildscripts | Build system executable files. |
targets | Target configurations are placed here. |
target_output | Folders generated during the build process, which contain the output files after a successful build of every specifc target. |
Important: By default, the target output folders are named according to this folder naming scheme:
out_<timestamp>_<module>_<board>_<bootmode>.
The default name can be overwritten during the build process.
Environment settings are stored in the enclustra.ini file in the main directory of the build environment. Before starting the build script, one may need to adjust the general settings of the build environment by editing this file. One of the most crucial setting is the number of build threads used in a parallel. This parameter is set in the [general] section by changing the nthreads key. Additionally, parameters in the [debug] section allow the user to adjust the logging settings:
- If the debug-calls option if set to true, the output of all external tool calls (such as make, tar etc.) will be displayed in the terminal.
- If the quiet-mode option is set to true, the build log of the targets will not be printed to the terminal, only informations about actual build state will be shown. This option does not affect the build-logfile option.
- If the build-logfile option is set to a file name, the build environment will write the whole build log output to that file. If the option is not set, the output will not be logged.
- If the break-on-error option is set to true, the build environment will interrupted on the first error. Otherwise the build environment will only print an error message and continue to work on a next available target.
Family | Module , Revision | Base boards |
---|---|---|
Intel Cyclone V | Mercury SA1 , R3 | Mercury PE1 / PE3 / ST1 |
Intel Cyclone V | Mercury+ SA2 , R1 | Mercury PE1 / PE3 / ST1 |
Intel Arria 10 | Mercury+ AA1 , R2 | Mercury PE1 / PE3 / ST1 |
Note: Since release 1.9, Mars MA3, Mercury+ AA1 R1 and Mercury SA1 R1 and R2 are no longer supported.
Next Page: Graphical User Interface GUI