基于busybox制作linux最小文件系统

准备工作:
材料:
- 一台装有虚拟机Ubuntu的PC
- 一个Linux开发板
准备材料




先从busybox官网http://www.busybox.net下载busybox源码,
平台环境布置




在Ubuntu上新建一个文件夹,命名为busybox,把刚才下载的busybox源码复制进去。
然后确认你的Ubuntu上是否部署了瑞芯微的SDK,泰山派官网教程上有。
配置busybox
















先cd到busybox文件夹下,解压busybox源码压缩包,然后cd到解压出来的文件夹里面。
用make menuconfig 命令打开图形化配置界面,配置busybox:
1.配置交叉编译器
settings->Cross compiler prefix 回车,在弹出的对话框中输入你开发板的交叉编译器绝对路径: /home/wht/tspi/linux/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-lin ux-gnu/bin(在bin后面再加上编译器的前缀aarch64-linux-gnu-)然后退出保存。
2.检查库文件选项
检查 settings->Build static binary 这个选项不要选上,这是静态库选项,我们一般不用这种方式。
3.检查vi命令选项
检查 settings->vi-style line editing commands 选上。
4.检查mdev(17 kb)选项 (热拔插)
检查 Linux System Utilities->mdev(17 kb) 选上。退出 保存。
添加支持中文功能:
1.用vi打开libbb/printable_string.c 按图修改,保存退出。
2.用vi打开libbb/unicode.c 按图修改 ,保存退出。
3.打开图形化配置界面选项 settings->Support Unicode 选中,下面的选项Check $LC_CTYPE and ... 也选中, 然后退出保存。
编译busybox:
用make命令编译
安装busybox:
用make install CONFIG_PREFIX=../sys命令安装,../sys是路径,这里为上一级的sys文件夹(自动创建)。
完善文件系统















首先cd 到刚创建的sys文件夹,用mkdir命令创建其他需要的文件夹:mkdir dev etc lib mnt proc sys tmp var
完善lib库文件:
先cd到lib文件夹下,先找到刚才交叉编译器的位置:/home/wht/tspi/linux/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu再进到它下面的libc/lib/,复制所有文件到刚新建的lib目录下:cp /home/wht/tspi/linux/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib/* . -rffd
完善etc文件:
1.eth0-setting文件:
先进到etc目录下,使用vim eth0-setting命令创建这个网络配置信息文件,输入以下内容:
然后保存退出,用chmod 777 etho-setting命令修改权限。
2.ifconfig-eth0文件:
在etc目录下用创建initial.d文件夹,然后进入到文件夹里面使用vim ifconfig-eth0命令创建这个文件, 输入以下内容:
然后保存退出,用chmod 777 ifconfig-eth0命令修改权限。
3.rcS文件:
在init.d文件夹下创建rcS文件,并输入如下内容:
然后保存退出,用chmod 777 rcS命令修改权限。
4.passwd文件
用vi命令在etc目录下创建passwd文件,并输入以下内容:
然后保存退出,用chmod 777 passwd命令修改权限。
5.profile文件
用vi命令在etc目录下创建profile文件,并输入以下内容:
然后保存退出,用chmod 777 profile命令修改权限。
6.netd文件
在etc目录下创建rc.d文件夹,再在rc.d文件夹下创建init.d文件夹,再在init.d文件夹下用vi命令创建netd文件,并输入以下内容:
然后保存退出,用chmod 777 netd命令修改权限
7.inittab文件:
在etc目录下创建inittab文件,并输入以下内容:
然后保存退出,用chmod 777 inittab命令修改权限.
8.fstab文件:
在etc目录下创建fstab文件,并输入以下内容:
然后保存退出,用chmod 777 fstab命令修改权限.
9.medv.conf文件:
在etc目录下创建medv.conf文件,并输入以下内容:
然后保存退出,用chmod 777 medv.conf命令修改权限.
在etc目录下创建hotplug文件夹,在hotplug文件夹下创建udisk_inserting文件,并输入以下内容:
再在hotplug文件夹下创建udisk_removing文件,并输入以下内容:
然后保存退出,用chmod 777 ./*命令修改两个文件权限.
10.mtab文件
在etc目录下创建mtab文件,在etc目录下输入命令: ln -s /proc/mounts mtab 把它链接到/proc/mou nts。
打包文件系统镜像







打包busybox文件系统成你开发板的格式镜像(泰山派是RK3566,格式为.img):
1.先返回到文件系统的上一级目录。
2.创建文件夹rootfs.
3.使用命令查看sys文件夹大小:du sys -h
3.创建容器:dd if=/dev/zero of=rootfs.img bs=1M count=300
4.格式化容器:mkfs.ext4 rootfs.img
5.将rootfs.img挂载到rootfs这个文件夹上: sudo mount rootfs.img rootfs 然后用df命令查看结果。
6.把sys的内容复制到rootfs文件夹里面:sudo cp -rfpd sys/* ./rootfs ,这样就等于把sys中的内容复制到 了 rootfs.img里面了。
7.取消rootfs挂载:sudo umount rootfs
这样这个rootfs.img就是制作好的文件系统镜像啦。











