由于开发板上的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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐