使用busybox-1.16.1,mkfs.jffs2制作jffs2文件系统

本文详细介绍了如何使用busybox-1.16.1和mkfs.jffs2工具在Hi3531板子上创建jffs2文件系统。步骤包括:安装配置busybox,创建和修改文件系统内容,使用mkfs.jffs2制作文件系统,以及文件系统优化。文章涵盖从编译busybox到添加运行所需库文件,创建启动脚本,制作jffs2文件系统镜像的完整过程,并解决了在制作过程中遇到的相关问题。
摘要由CSDN通过智能技术生成

          需要为hi3531板子上的spi flash 做一个jffs2的文件系统, 看了好多资料都不够全面,特别是添加文件系统文件的部分都写的很乱,现在先总结一下思路,再详细介绍.

1. 安装配置busybox

2. 创建和修改jffs2文件系统中的文件

2.1 自己创建

2.2 使用已有文件系统修改

3. 使用mkfs.jffs2制做文件系统

4. 文件系统优化


一.编译并生成根文件系统文件
1.解压该包
tar -jxvf busybox-1.16.1.tar.bz2
cd busybox-1.16.1

2.修改Makefile
找到
CROSS_COMPILE ?=
修改为CROSS_COMPILE ?=arm-linux-
?=  表示若之前未赋值,则赋值为


找到
ARCH ?= $(SUBARCH)
修改为
ARCH ?= arm

3.进行默认配置
make defconfig


4.对配置信息进行修改
make menuconfig

检查Miscellaneous Utilities--->
    taskset 是否已经去除   (不去除就编译不过的)

同时设置如下:
Busybox Settings --->
        Build Options --->
            [*]Build BusyBox as a static binry (no shared libs)      

使用静态库,就不用拷贝交叉编译文件到/lib下了     
        Installation Options --->
            [ ]Don't use /usr
 有人说是不选会覆盖/usr文件夹,其实是在文件系统中生成一个 /usr 目录的意思,我们需要 /usr 文件夹,所以不要选             

 

#make

#make install

所生成的文件就在当前目录的 _install目录下。

 

二.准备制作jffs2文件系统的所有文件

(一) 自己创建
编译结束后,自己随便找个目录,并在该目录下建立rootfs文件夹
并在其中建立如下路径
1.  #mkdir bin sbin lib etc dev mnt usr/bin usr/sbin usr/lib proc sys -p
2.  把刚才编译busybox生成的在_install目录下的文件全部copy到rootfs/目录下,注意用 cp命令带 –arf 参数

3.加入运行需要的库文件
写了一个脚本,把这个放在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/下执行,目的是将一些程序运行时需要的函数库复制到目标文件系统的lib路径下

=========以下是脚本内容===================
#!/bin/bash
#You should put this file cp.sh in $(CROSS-COMPILE)/lib/

ROOTFS_LIB=${PROJECT}/rootfs/rootfs_1.13/lib/

for file in libc libcrypt libdl libm libpthread libresolv libutil
do
cp $file-*.so ${ROOTFS_LIB}
cp -d $file.so.[*0-9] ${ROOTFS_LIB}
done
cp -d ld*.so* ${ROOTFS_LIB} 
#end script
=============脚本结束========================

4.在 rootfs/etc/下建立如下文件或者路径

4.1.
vi fstab
内容是:
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
4.2.
vi proflie 
内容是:
#!/bin/sh
#You should put this file profile into your $(CONFIG_PREFIX)/etc/
echo "Set seaech library in /etc/profile"
export LD_LIBRARY_PATH=/lib:/usr/lib
echo "Set user path in /etc/profile"
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
alias ll='ls -l'

/sbin/ifconfig eth0 218.192.161.80 netmask 255.255.255.0
/sbin/ifconfig lo 127.0.0.0
echo "Configure net done"
4.3.
mkdir init.d
cd init.d
vi rcS
内容是
#!/bin/sh
/bin/mount –a

/bin/sh  /*这个一定要,不然进不了控制台*/

 

(执行chmod 777 rcS

 

4.4. etc下创建文件inittab,内容如下

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值