编译 buildroot

  • 从官网下载代码

buildroot-2021.11.tar.xz

  • 从头开始配置再编译(没有使用 config 文件)

需要通过 make menuconfig 进行配置,然后再编译。

make help
make menuconfig
make savedefconfig //如果用了lei19_defconfig就会直接更新到lei19_defconfig
make
  • 使用 config 文件直接编译

需要把 defconfig 文件放到 configs/ 目录下,再执行 make config_name 进行编译。

cp defconfig configs/lei19_defconfig
make lei19_defconfig
  • [参考] lei19_defconfig 文件内容 | arley@dellvbx:buildroot-2021.11$ cat configs/lei19_defconfig
    BR2_aarch64=y
    BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
    BR2_KERNEL_HEADERS_5_4=y
    BR2_PACKAGE_GLIBC_UTILS=y
    BR2_SYSTEM_BIN_SH_BASH=y
    BR2_ROOTFS_OVERLAY=”/home/arley/work-buildroot/xen_install”
    BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
    BR2_PACKAGE_LMBENCH=y
    BR2_PACKAGE_MEMSTAT=y
    BR2_PACKAGE_STRACE=y
    BR2_PACKAGE_STRESS=y
    BR2_PACKAGE_BINUTILS=y
    BR2_PACKAGE_OPENSSL=y
    BR2_PACKAGE_PIXMAN=y
    BR2_PACKAGE_DTC=y
    BR2_PACKAGE_LIBAIO=y
    BR2_PACKAGE_YAJL=y
    BR2_PACKAGE_SLIRP=y
    BR2_PACKAGE_HTOP=y
    BR2_PACKAGE_UTIL_LINUX=y
    BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
    BR2_PACKAGE_UTIL_LINUX_KILL=y
    BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y
    BR2_TARGET_ROOTFS_CPIO=y
    BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
    BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM=”qemu”
    BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
    BR2_TARGET_UBOOT=y
    BR2_TARGET_UBOOT_BOARD_DEFCONFIG=”qemu_arm64” | | —- |

添加自己的 Binary

在buildroot编译的末期,需要对编译结果进行一些检查或者其他操作。buildroot预留了两个接口:
BR2_ROOTFS_OVERLAY - 指向一个目录,此目录下的所有文件将会覆盖到output/target下。比如一些配置文件,或者预编译的库等可以在此阶段处理。
BR2_ROOTFS_POST_BUILD_SCRIPT - 一个脚本,更加复杂的对文件进行删除、重命名、strip等等功能。
(可以通过 make menuconfig 进行配置)

生成 SDK

编译 SDK

make sdk
ls output/images/aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz

添加 environment-setup 脚本
参考下图生成environment-setup,并放到SDK 根目录。
image.png

安装 SDK

cd pub_res/
tar xf aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz
cd aarch64-buildroot-linux-gnu_sdk-buildroot
./relocate-sdk.sh / 文件路径自动重定向 /