由于开发板上的flash类型为MMC,所以对应的要制作ext4类型g文根件系统。
从零开始生成一个文件系统
通常是使用busybox来从无到制作一个根文件系统。
1)获取busybox源代码
busybox完整源代码存放在opensource/osdrv/busybox。
2)配置busybox
3)编译和安装busybox
make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- install
4)然后使用busybox工具来生成一个基本的根文件系统。
注:由于海思SDK已经提供了一个基本的文件系统rootfs.tgz(只需要解压就行),所以上面的步骤是不必要的。
基于已有文件系统进行配置
1)解压缩根文件系统 tar xzf rootfs.tgz
2)为了根文件系统挂载后能自动load kernel drivers, 需要
a)先将kernel drivers(*.ko) 拷贝到rootfs/下某个目录,比如 /opt
b) 在 /etc/init.d/rcS 后面添加: cd xx/rootfs/opt ./load3519av100 -i -sensor0 imx344 -sensor1 imx344 -sensor2 imx344 -sensor3 imx344 -sensor4 imx344
c)rootfs/lib下面要添加一些c和kernel 库,否则出现如下error
Kernel panic - not syncing: No init found.No init found.Try passing init= option to kernel.
制作文件系统镜像
1)先生成ext4镜像制作工具:make_ext4fs
a) cd osdrv/tools/pc/ext4_utils/ b) make
2)生成根文件系统镜像文件
xx/board/Hi3519AV100_SDK_V2.0.1.0/osdrv/tools/pc/ext4_utils/bin/make_ext4fs -s -l 32M rootfs_hi3519av100_32M.ext4 ./rootfs
-s 表示生成ext4的S模式制作
-l 表分区大小 这里是32M
rootfs_hi3519av100_32M.ext4: 表生成的文件系统的镜像
./rootfs: 表示 根文件系统目录
最后,在uboot里面把生成的镜像文件rootfs_hi3519av100_32M.ext4通过tftp方式烧写到eMMC