参考海思官方文档:《Hi3519AV100╱Hi3556AV100 开发环境用户指南.pdf》
1、进入busybox目录,解压busybox源代码包
cd osdrv/opensource/busybox/
tar -xvf busybox-1.26.2.tgz
2、配置busybox
# 引入交叉编译相关环境变量
source /etc/profile
# 配置busybox
cd busybox-1.26.2/
cp config_arm_himix200_a53_softfp_neon .config
make menuconfig
# 重点检查Busybox Settings ---> Build Options中交叉编译器的相关配置
# (arm-himix200-linux-) Cross Compiler prefix
# 其它配置项未修改,暂时保持默认
3、编译安装busybox
编译并安装成功后的busybox在_install目录
make
make install
4、制作根文件系统
mkdir rootfs
cd rootfs/
cp -R /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/busybox/busybox-1.26.2/_install/* .
mkdir etc dev lib tmp var mnt home proc
# 拷备linuxrc所依赖的库文件,linuxrc是一个链接文件,指向bin/busybox
# 如果不拷备依赖库文件,启动时会报错:Kernel panic - not syncing: Requested init /linuxrc failed (error -2).
# 拷备并创建ld-linux.so.3的软链接后仍然会报错:/linuxrc: error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory
# Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
# 报错的原因是lib库文件的目录结构和交叉编译器中的目录结构不一致,解决的办法有两个:
# 1、在rootfs的lib目录建立a53_softfp_neon-vfpv4的软链接,使 a53_softfp_neon-vfpv4 -> ../lib/,并在lib目录创建ld-linux.so.3的软链接 ld-linux.so.3 -> ld-2.24.so*
# 2、在rootfs的lib目录建立a53_softfp_neon-vfpv4目录,将lib库文件拷备至此目录下,并在lib目录创建ld-linux.so.3的软链接 ld-linux.so.3 -> a53_softfp_neon-vfpv4/ld-2.24.so*
# 本文采用方法2,保持rootfs的lib库文件的目录结构和交叉编译器中的目录结构一致
cd lib
mkdir a53_softfp_neon-vfpv4
cp -R /opt/hisi-linux/x86-arm/arm-himix200-linux/target/lib/a53_softfp_neon-vfpv4/* .
cd ..
ln -s a53_softfp_neon-vfpv4/ld-2.24.so ld-linux.so.3
- etc目录可参考系统/etc 下的文件。其中最主要的文件包括inittab、fstab、init.d/rcS
文件等,这些文件最好从busybox 的examples目录下拷贝过来,根据需要自行修
改。- dev目录下的设备文件,可以直接从系统中拷贝过来或者使用mknod命令生成需
要的设备文件。拷贝文件时请使用cp –R file。- lib 目录是存放应用程序所需要的库文件,请根据应用程序需要拷贝相应的库文
件。
5、生成根文件系统镜像文件
前期使用NFS启动测试,暂时未测试