使用buildroot默认配置raspberrypi3_64_defconfig直接编译的出的镜像文件大小居然有153M…

使用tiny_raspi编译生成一个使用RAM文件系统的最小内核吧.


以RaspberryPi 3为例,使用buildrootEXTERNAL机制来定制化。我们需要添加3个文件用以描述外部buildroot树:

  • external.desc
  • external.mk
  • Config.in


编译

git clone https://github.com/calinyara/tiny_raspi.git
cd tiny_raspi
git clone git://git.buildroot.net/buildroot
mkdir build
mkdir buildroot_dl
cd build
make BR2_EXTERNAL=../tiny_raspi_buildroot/ O=$PWD -C ../buildroot/ tiny_raspberrypi3_64_defconfig
make -j4

编译完成后在build/images目录会生成:Imagerootfs.cpio.gzbcm2710-rpi-3-b.dtb.


buildroot会自动编译生成rootfs文件系统,亦可参照 编译一个最小可用Linux内核 的描述,使用kernel-utils工具来生成RAM文件系统.


QEMU运行

qemu-system-aarch64 -M raspi3b -kernel ./images/Image -dtb ./images/bcm2710-rpi-3-b.dtb -initrd ./images/rootfs.cpio.gz -m 1024 -nographic -append "init=/bin/sh console=ttyAMA0,115200"