1、zircon的启动内核是odroidc2-zircon.bin,该内核由kernel/target/arm64/board/odroidc2/prepend-header.py工具生成:
kernel/target/arm64/board/odroidc2/prepend-header.py --kernel ./build-arm64/kernel.zbi
--shim ./build-arm64/odroidc2-boot-shim.bin
--load_offset 0x10280000
--output build-arm64/odroidc2-zircon.bin
依赖于kernel.zbi和odroidc2-boot-shim.bin。
odroidc2-zircon.bin的文件结构是:
2、kernel.zbi
./prebuilt/downloads/gcc/bin/aarch64-elf-objcopy -O binary build-arm64/kernel-image.elf build-arm64/kernel.zbi
3、kernel-image.elf
./prebuilt/downloads/gcc/bin/aarch64-elf-ld -nostdlib --build-id -z noexecstack
-z max-page-size=4096 --gc-sections --build-id=none
-o build-arm64/kernel-image.elf
-T kernel/image.ld --just-symbols ./build-arm64/zircon.elf
./build-arm64/kernel-vars.ld ./build-arm64/kernel.image.o
4、zircon.elf
所有obj文件链接成zircon.elf