文章来源:易百纳技术社区
利用busybox制作根文件系统需要先获取busybox源代码,然后配置、编译和安装 busybox,操作成功后开始制作根文件系统。
成功安装SDK后,busybox源代码补丁就存放在open_source/busybox目录中。要获取busybox源代码也可以从网站https://busybox.net/下载.
进入busybox所在目录,进行配置操作需要输入如下命令:
cd open_source/busybox/busybox-1.34.1
patch -p1 < ../busybox-1.34.1.patch
cp config_arrch64_a55_softfp_neon.config //指定配置文件
make menuconfig
busybox的配置界面和内核配置相似,其功能选项容易理解,可以根据自己的需求选择配置。
在 Settings ---> Build Options中注意此选项:CONFIG_CROSS_COMPILER_PREFIX选项用于选择SDK推荐的交叉编译器,配置好后保存并退出。
--- Build Options
[ ] Build static binary (no shared libs)
[ ] Build position independent executable
[ ] Force NOMMU build
[ ] Build shared libbusybox
(aarch64-v01c01-linux-musl-) Cross compiler prefix
() Path to sysroot
(-w -mcpu=cortex-a53) Additional CFLAGS
编译和安装 busybox的具体操作如下:
make
make install
编译并安装成功后,在busybox的_install目录下生成以下文件:
drwxrwxr-x 2 xxx XXX 4096 Feb 13 11:41 bin
lrwxrwxrwx 1 xxx XXX 11 Feb 13 11:41 linuxrc -> bin/busybox
drwxrwxr-x 2 xxx XXX 4096 Feb 13 11:41 sbin
drwxrwxr-x 4 xxx XXX 4096 Feb 13 11:41 usr
其中xxx表示用户;XXX表示组。
成功安装SDK后,在bsp/pub/目录中存放已制作好的根文件系统。
如有需要可在busybox的基础上制作根文件系统,操作步骤如下。
创建文件夹,拷贝相应工具。
mkdir rootbox
cd rootbox
cp -r open_source/busybox/busybox-1.34.1/_install/* .
mkdir etc dev lib tmp var mnt home proc
2. 配置etc、lib、dev目录的必需文件。
etc目录可参考系统/etc下的文件。其中最主要的文件包括inittab、fstab、init.d/rcS文件等,这些文件最好从busybox的examples目录下拷贝过来,根据需要自行修改。
dev目录下的设备文件,可以直接从系统中拷贝过来或者使用mknod命令生成需要的设备文件。拷贝文件时请使用cp –R fiÃ。
lib目录是存放应用程序所需要的库文件,根据应用程序需要拷贝相应的库文件。
完成以上两个步骤,一个完整的根文件系统就生成了。
文章来源:易百纳技术社区
离线