文章目录
本文介绍的方法,旨在利用基于 BusyBox 制作的简易文件系统来快速启动内核并进入一个 shell 环境,以此来验证内核的功能和稳定性。其优点在于制作简单,资源占用小,验证环境的启动时间短(仅需启动内核,省去了各种用户态应用及框架的启动过程);缺点是可拓展性较差,难以支撑一些需要用到用户态工具的复杂内核功能的验证。
本文主要以 ARM64 为例讲解整个过程。实际操作中,应结合实际使用的体系结构与工具链对步骤细节进行调整。介绍的验证环境有基于 initrd 和基于 SD 卡两种,可以根据实际情况选择。
BusyBox 编译
# BusyBox 源代码下载,解压
# https://busybox.net/downloads/
cd path/to/busybox
# 配置
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
# 选中以下配置:
# Build Settings --->
# [*] Build static binary (no shared libs)
# 编译
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j32
# 安装
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- install
# 编译生成的文件在:./_install
制作根文件系统
mkdir rootfs
pushd rootfs
cp -r /path/to/busybox/_install/* .
mkdir -p usr lib root proc sys etc/init.d dev/pts
cat > etc/init.d/rcS <<- EOF
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
mount -t devpts devpts /dev/pts
telnetd
ifconfig eth0 192.168.0.101 netmask 255.255.255.0
EOF