交叉工具链配置
1 2 3 4
| # 下载需要的交叉编译链 # 解压到目录 # 加入环境变量 /etc/profile eg: export PATH=$PATH:/home/hangqi-ren/tools/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:/home/hangqi-ren/qemu/qemu-7.2.12/build
|
Uboot 编译
1 2 3 4 5 6 7
| # 拉取 2022.10 版本的 Uboot 且只拉取最新的 Commit. git clone https://github.com/u-boot/u-boot.git --depth 1\ --branch v2022.10 # 生成 .config 文件 make qemu_arm64_defconfig # 交叉编译 make -j$(nproc) CROSS_COMPILE=aarch64-none-linux-gnu-
|
Linux 编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 官网下载 Linux 任意版本源码 https://cdn.kernel.org # 使用默认配置 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig # 配置 .config 自行配置: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig # 配置 .config 采用现有配置: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- (config名称) # 全部编译 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc) # 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image -j$(nproc) # 编译模块 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules -j$(nproc)
|
ATF 编译
由于 BL33 本质是 Uboot / Uefi 等 bootloader,所以需要提供编好的 bootloader 作为输入。
1 2 3 4 5
| # 编译 make PLAT=qemu bl1 fip BL33=u-boot.bin QEMU_USE_GIC_DRIVER=QEMU_GICV2 # 打包 dd if=bl1.bin of=flash.bin dd if=fip.bin of=flash.bin seek=64 bs=4096 conv=notrunc
|