219d2ce3c0
It is requied but not documented. |
||
---|---|---|
.github/workflows | ||
cache | ||
image | ||
linux-brain@7738c0a9ce | ||
nkbin_maker@4a97a4e807 | ||
os-brainux | ||
tools | ||
u-boot-brain@6390f0ed58 | ||
.clang-format | ||
.gitchangelog.rc | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
Makefile | ||
r3build.toml | ||
README.md |
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 qemu-user-static
-
Clone this repository with recursive clone enabled.
$ git clone --recursive git@github.com:brain-hackers/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
uuu
executable. - Put
uuu
where the PATH executable points to.
- Follow the instruction and build
Build and inject U-Boot
-
Run
make udefconfig-sh*
to generate.config
.- For Sx1:
make udefconfig-sh1
- For Sx6:
make udefconfig-sh6
- For Sx1:
-
Run
make ubuild
to 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 udefconfig
to generate.config
. -
Run
make ubuild
to build whole repository and generateu-boot.bin
. -
Run
make nkbin-maker
. -
To make
nk.bin
, runmake nk.bin
.- nkbin_maker packs
u-boot.bin
intonk.bin
.
- nkbin_maker packs
Build Linux
-
Run
make ldefconfig
to generate.config
. -
Run
make lbuild
to generatezImage
. -
Confirm that
linux-brain/arch/arm/boot/zImage
exists.
Bootstrap Debian 10 (buster)
-
Run
make ldefconfig lbuild
. -
Run APT cache in background (mandatory):
make aptcache
. -
Run
make brainux
. -
Run
make image/sd.img
-
Confirm that
image/sd.img
is built and burn it to an SD card.
Watch changes in submodules & auto-build
-
Run
make setup-dev
to 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.