I'll keep it updated with my notes when playing with buildroot.
Use external tree.
felboot
)?Put it in external.mk
. Common variables, such as $(BINARIES_DIR)
are
available there.
Copy some defconfig you'd like to base on to your external tree configs/
directory, run make BOARD_defconfig
in your build tree, use make menuconfig
as you like, and then just make savedefconfig
- this should update config
you previously selected.
Just like that:
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="next-20170809"
make linux-menuconfig
does what it suggests.
make linux-savedefconfig
will
save current defconfig into build/linux-*/defconfig
file.
You can then use it with BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
, or clean it up
by diffing it against arch/*/configs/
, getting rid of some buildroot-internal
changes and store it as BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
(this is what
some default boards use)
Use BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG
and
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE
, make uboot-defconfig
should work as
expected.
<PACKAGE>-dirclean
- does full rebuild by completely removing
build/<PACKAGE>
directory<PACKAGE>-rebuild
- essentially make
run in package directory<PACKAGE>-menuconfig
<PACKAGE>-savedefconfig
Flattened Image Tree - These are essentially single-blob images containing multiple blobs that can be loaded by U-Boot, describe using Device Tree description language. These can be loaded from any storage device U-Boot supports (eg. MMC), and support many cool features, such as checksums, RSA signatures and multiple predefined "configs" (pick-and-match multiple sets of different images depending on running board and such...)
This requires CONFIG_FIT
uboot configuration, as well as
CONFIG_FIT_SIGNATURE
, if using signatures. You'll most likely have to change
default bootcmd
, becuase boot.scr
(legacy script) files are no longer
recognized, as they can't be signed.
For plain FIT image builds just use this
recipe. (copy these
over to your board/*/
directory and set BR2_ROOTFS_POST_IMAGE_SCRIPT
to its
path.
For FIT with signatures use this
one. Keep in mind
this runs make uboot-rebuild
at the end to rebuild uboot with public key
embedded into its device tree blob. This is horrible and not really needed on
every build, but works
You may have to modify uboot version in ${BUILD_DIR}
path somewhere in that
script.
To load these use something like:
load mmc 0 $ramdisk_addr_r image.itb
bootm $ramdisk_addr_r
To create keypair for signing (${KEYS_DIR}
) use:
openssl genrsa -F4 -out keys/dev.key 2048
openssl req -batch -new -x509 -key keys/dev.key -out keys/dev.crt