buildbrain
This repository includes:
- linux-brain, u-boot-brain and nkbin_maker as submodules
- Useful build targets in Makefile
- r3build.toml to watch changes that occur in submodules
Confirmed environments
- Debian 10 (buster) amd64
Getting Started
- 
Install dependencies. $ sudo apt install build-essential bison flex libncurses5-dev gcc-arm-linux-gnueabi
- 
Clone this repository with recursive clone enabled. $ git clone --recursive git@github.com:puhitaku/buildbrain.git- If you've cloned it without --recursive, run following command:
 $ git submodule update --init --recursive
- If you've cloned it without 
- 
Install uuu. - Follow the instruction and build uuuexecutable.
- Put uuuwhere the PATH executable points to.
 
- Follow the instruction and build 
Build and inject U-Boot
- 
Run make udefconfigto generate.config.
- 
Run make ubuildto build whole repository and generateu-boot.sb.- i.MX283 loads a packed U-Boot executable called u-boot.sb.
 
- i.MX283 loads a packed U-Boot executable called 
- 
To inject the executable into i.MX283 in recovery mode, run make uuu.
Build and make NK.bin
- 
Run make udefconfigto generate.config.
- 
Run make ubuildto build whole repository and generateu-boot.bin.
- 
To make nk.bin, runmake nkbin.- nkbin_maker packs u-boot.binintonk.bin.
 
- nkbin_maker packs 
Build Linux
- 
Run make ldefconfigto generate.config.
- 
Run make lbuildto generatezImage.
- 
Confirm that linux-brain/arch/arm/boot/zImageexists.
Watch changes in submodules & auto-build
- 
Run make setup-devto prepare a Python venv to watch code changes. Namely;- Python 3 venv in env
- r3build command in the env
 
- Python 3 venv in 
- 
Run r3build. It'll detect the changes you make and builds the corresponding executable automatically.
What's r3build?
r3build is a smart file watcher that aims to provide hot-reloading feature like Web frontend development.
