【Hi3516A】使用busybox制作根文件系统

利用 busybox 制作根文件系统需要先获取 busybox 源代码,然后配置、编译和安装busybox,操作成功后开始制作根文件系统。成功安装 SDK 后, busybox 完整源代码就存放在 osdrv/目录中。当然也可以自己到官网http://www.busybox.net 去下载 busybox 源代码。

一、配置,编译,安装busybox

1.1 配置busybox

①进入busybox所在目录,指定配置文件

cd Hi3516A_SDK_V1.0.5.0/osdrv/opensource/busybox/busybox-1.20.2
cp config_v300_soft .config

在这里插入图片描述
②通过"make menuconfig"配置选项

make menuconfig

busybox 的配置界面和内核配置相似,其功能选项容易理解,可以根据自己的需求选择配置。

在 Busybox Settings —> Build Options 中注意下面两个选项:

[*]Build BusyBox as a static binary (no shared libs)
[*] Build with Large File Support (for accessing files > 2 GB)

第一个选项 选择是否把 busybox 编译成静态链接的可执行文件。如果选择该选项,编译出来的 busybox 就是静态链接的,运行时不依赖于动态库,但体积较大;清除该选项将得到动态链接的 busybox,体积较小,但需要动态库的支持。

第二个选项 是用于选择 SDK 推荐的交叉编译器,配置好后保存并退出。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
欲了解 busybox 各选项含义请参考 busybox 配置帮助。

③手动修改Makefile

vim Makefile

164 CROSS_COMPLE=armhisiv300-linux-  //指定编译工具链
190 ARCH=arm  //arm体系架构

在这里插入图片描述

1.2 编译和安装busybox

配置好busybox后,输入以下命令进行编译和安装

make
make install

编译并成功安装后,在busybox目录下的_install目录生成以下目录及文件

drwxr-xr-x 2 root root 4096 227 14:53 bin
lrwxrwxrwx 1 root root   11 227 14:53 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 227 14:53 sbin
drwxr-xr-x 4 root root 4096 226 17:26 usr

在这里插入图片描述

二、使用busybox制作根文件系统

在成功安装 SDK 后,Hi3516A_SDK_V1.0.5.0/package/目录中已经有制作好的根文件系统rootfs_uclibc.tgz
在这里插入图片描述
如有需要,也可在 busybox 的基础上制作根文件系统,步骤如下:

①创建rootbox目录,并将_intalll下的内容拷贝到rootbox中

mkdir rootbox
cd rootbox
cp -R ../_install/* .
mkdir etc dev lib tmp var mnt home proc

在这里插入图片描述
②配置etc lib dev 目录的必需文件

  • etc 目录可参考系统/etc 下的文件。其中最主要的文件包括 inittab、 fstab、 init.d/rcS文件等,这些文件最好从busybox 的 examples 目录下拷贝过来,根据需要自行修改。
  • dev 目录下的设备文件,可以直接从系统中拷贝过来或者使用 mknod 命令生成需要的设备文件。拷贝文件时请使用 cp –R file。
  • lib 目录是存放应用程序所需要的库文件,根据应用程序需要拷贝相应的库文件。

完成以上两个步骤,一个完整的根文件系统就生成了

注:SDK 软件包中已经包括配置好的完整的根文件系统,如果无特别需求,可直接使用。要添加自己开发的应用程序,只需将应用程序和相应的库文件拷贝到根文件系统的对应目录即可。

发布了37 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Chen_qi_hai/article/details/104535803