54-20210324华为海思Hi3516DV300的linux系统增加busybox文件系统(eMMC模式)

54-20210324华为海思Hi3516DV300的linux系统增加busybox文件系统(eMMC模式),第1张

概述54-20210324华为海思Hi3516DV300的linux系统增加busybox文件系统(eMMC模式)

setenv bootargs 'mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),9M(kernel),200M(rootfs.ext4),-(user)'
setenv bootcmd 'mmc read 0 0x80000000 800 4800; bootm 0x80000000'
saveenv
reset


54-20210324华为海思Hi3516DV300的linux系统增加busyBox文件系统(emmC模式)
2021/3/24 16:50


创建步骤
1、busyBox的编译
busyBox的作用是提供linux下的一系列命令工具,独立于内核,因为内核提供管理但不提供工具。目标平台不同,就需要使用不同的交叉编译工具链进行编译,编译步骤很简单。来源见参考1。

SDK中提供busyBox的源码故无需下载。在 /Hi3516CV500_SDK_V2.0.1.0/package/osdrv/opensource/busyBox 目录下解压busyBox-1.26.2.tgz。修改Makefile中的 ARCH 和 CROSS_COMPILE 两项。
#CROSS_COMPILE ?=
CROSS_COMPILE ?= arm-himix200-linux-
# bBox: we may have CONfig_CROSS_COMPILER_PREFIX in .config,
# and it has not been included yet... thus using an awkward Syntax.
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := $(shell grep ^CONfig_CROSS_COMPILER_PREFIX .config 2>/dev/null)
CROSS_COMPILE := $(subst CONfig_CROSS_COMPILER_PREFIX=,,$(CROSS_COMPILE))
CROSS_COMPILE := $(subst ",,$(CROSS_COMPILE))
#")
endif

# SUbarCH tells the usermode build what the underlying arch is.  That is set
# first, and if a usermode build is happening, the "ARCH=um" on the command
# line overrIDes the setting of ARCH below.  If a native build is happening,
# then ARCH is assigned, getting whatever value it gets normally, and
# SUbarCH is subsequently ignored.

ifneq ($(CROSS_COMPILE),)
SUbarCH := $(shell echo $(CROSS_COMPILE) | cut -d- -f1)
else
SUbarCH := $(shell uname -m)
endif
SUbarCH := $(shell echo $(SUbarCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/
                     -e s/arm.*/arm/ -e s/sa110/arm/
                     -e s/s390x/s390/ -e s/parisc64/parisc/
                     -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )

#ARCH ?= $(SUbarCH)
ARCH ?= arm

 


rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ ll
total 84
drwxrwxr-x 6 rootroot rootroot  4096 3月  24 11:08 ./
drwxrwxr-x 9 rootroot rootroot  4096 3月  24 11:07 ../
-rw-rw-r-- 1 rootroot rootroot 25593 3月  24 11:08 Makefile
drwxrwxr-x 5 rootroot rootroot  4096 5月  28  2020 opensource/
drwxrwxr-x 4 rootroot rootroot  4096 3月  24 11:15 pub/
-rw-rw-r-- 1 rootroot rootroot 12760 5月  28  2020 readme_cn.txt
-rw-rw-r-- 1 rootroot rootroot 12324 5月  28  2020 readme_en.txt
drwxrwxr-x 2 rootroot rootroot  4096 5月  28  2020 rootfs_scripts/
drwxrwxr-x 4 rootroot rootroot  4096 5月  28  2020 tools/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ ll
total 84
drwxrwxr-x 6 rootroot rootroot  4096 3月  24 11:08 ./
drwxrwxr-x 9 rootroot rootroot  4096 3月  24 11:07 ../
-rw-rw-r-- 1 rootroot rootroot 25593 3月  24 11:08 Makefile
drwxrwxr-x 5 rootroot rootroot  4096 5月  28  2020 opensource/
drwxrwxr-x 4 rootroot rootroot  4096 3月  24 11:15 pub/
-rw-rw-r-- 1 rootroot rootroot 12760 5月  28  2020 readme_cn.txt
-rw-rw-r-- 1 rootroot rootroot 12324 5月  28  2020 readme_en.txt
drwxrwxr-x 2 rootroot rootroot  4096 5月  28  2020 rootfs_scripts/
drwxrwxr-x 4 rootroot rootroot  4096 5月  28  2020 tools/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv$ cd opensource/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource$ ll
total 20
drwxrwxr-x 5 rootroot rootroot 4096 5月  28  2020 ./
drwxrwxr-x 6 rootroot rootroot 4096 3月  24 11:08 ../
drwxrwxr-x 3 rootroot rootroot 4096 3月  24 11:10 busyBox/
drwxrwxr-x 3 rootroot rootroot 4096 3月  24 11:09 kernel/
drwxrwxr-x 4 rootroot rootroot 4096 3月  24 11:09 uboot/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource$ cd busyBox/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ ll
total 2652
drwxrwxr-x  3 rootroot rootroot    4096 3月  24 11:10 ./
drwxrwxr-x  5 rootroot rootroot    4096 5月  28  2020 ../
drwxr-xr-x 36 rootroot rootroot    4096 3月  24 11:11 busyBox-1.26.2/
-rw-rw-r--  1 rootroot rootroot 2700610 5月  28  2020 busyBox-1.26.2.tgz
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ rm busyBox-1.26.2 -rf
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ ll
total 2648
drwxrwxr-x 2 rootroot rootroot    4096 3月  24 11:37 ./
drwxrwxr-x 5 rootroot rootroot    4096 5月  28  2020 ../
-rw-rw-r-- 1 rootroot rootroot 2700610 5月  28  2020 busyBox-1.26.2.tgz
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ tar zxvf busyBox-1.26.2.tgz 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox$ cd busyBox-1.26.2/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ ll
total 352
drwxr-xr-x 34 rootroot rootroot  4096 3月  24 16:53 ./
drwxrwxr-x  3 rootroot rootroot  4096 3月  24 16:51 ../
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 applets/
drwxr-xr-x  2 rootroot rootroot  4096 3月   5  2014 applets_sh/
drwxr-xr-x  3 rootroot rootroot  4096 3月   5  2014 arch/
drwxr-xr-x  3 rootroot rootroot  4096 9月  12  2017 archival/
-rw-r--r--  1 rootroot rootroot  5288 7月  29  2017 AUTHORS
-rw-r--r--  1 rootroot rootroot 22911 7月  29  2017 Config.in
drwxr-xr-x  2 rootroot rootroot  4096 7月  29  2017 configs/
-rw-r--r--  1 rootroot rootroot 26360 4月  28  2020 config_v100_a7_softfp_neon
-rw-r--r--  1 rootroot rootroot 26328 4月  28  2020 config_v200_a7_softfp_neon
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 console-tools/
drwxr-xr-x  3 rootroot rootroot  4096 9月  12  2017 coreutils/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 debianutils/
drwxr-xr-x  3 rootroot rootroot  4096 7月  31  2017 docs/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 e2fsprogs/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 editors/
drwxr-xr-x  5 rootroot rootroot  4096 7月  29  2017 examples/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 findutils/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 include/
-rw-r--r--  1 rootroot rootroot   871 3月   5  2014 .indent.pro
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 init/
-rw-r--r--  1 rootroot rootroot  6116 3月   5  2014 INSTALL
drwxr-xr-x  2 rootroot rootroot  4096 12月 11  2017 libbb/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 libpwdgrp/
-rw-r--r--  1 rootroot rootroot 18348 3月   5  2014 liCENSE
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 loginutils/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 mailutils/
-rw-r--r--  1 rootroot rootroot 42766 3月  24 16:53 Makefile
-rw-r--r--  1 rootroot rootroot  6241 7月  29  2017 Makefile.custom
-rw-r--r--  1 rootroot rootroot  6913 7月  29  2017 Makefile.flags
-rw-r--r--  1 rootroot rootroot  1896 7月  29  2017 Makefile.help
-rw-r--r--  1 rootroot rootroot  2330 1月   1  2017 make_single_applets.sh
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 miscutils/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 modutils/
drwxr-xr-x  6 rootroot rootroot  4096 9月  12  2017 networking/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 printutils/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 procps/
drwxr-xr-x  3 rootroot rootroot  4096 7月  29  2017 qemu_multiarch_testing/
-rw-r--r--  1 rootroot rootroot  8755 7月  29  2017 README
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 runit/
drwxr-xr-x  4 rootroot rootroot  4096 9月  12  2017 scripts/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 selinux/
drwxr-xr-x  4 rootroot rootroot  4096 9月  12  2017 shell/
drwxr-xr-x  2 rootroot rootroot  4096 9月  12  2017 sysklogd/
drwxr-xr-x 46 rootroot rootroot  4096 7月  29  2017 testsuite/
-rw-r--r--  1 rootroot rootroot 11518 7月  29  2017 Todo
-rw-r--r--  1 rootroot rootroot   731 3月   5  2014 Todo_unicode
drwxr-xr-x  3 rootroot rootroot  4096 9月  12  2017 util-linux/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 


在命令行输入
make menuconfig

进入配置菜单。选中BusyBox Settings->Build Options->Build BusyBox as a static binary (no shared libs)项(空格键选中)。如下图所示:

其它的配置项均遵从默认即可。退出配置菜单并保存。

rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ make menuconfig
BusyBox Settings  ---> 
    --- Build Options
    [*] Build BusyBox as a static binary (no shared libs)

 

 


命令行下输入:
make
make install
即可在busyBox目录下生成 _install 文件夹。这里面存放的就是linux下 *** 作的基本命令了。


rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ make


  CC      util-linux/uevent.o
util-linux/uevent.c:35:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  MAX_ENV = COMMON_BUFSIZE / sizeof(env[0]) - 1,
  ^~~~~~~
  CC      util-linux/umount.o
  CC      util-linux/unshare.o
  AR      util-linux/lib.a
  LD      util-linux/volume_ID/built-in.o
  CC      util-linux/volume_ID/bcache.o
  CC      util-linux/volume_ID/btrfs.o
  CC      util-linux/volume_ID/cramfs.o
  CC      util-linux/volume_ID/exfat.o
  CC      util-linux/volume_ID/ext.o
  CC      util-linux/volume_ID/f2fs.o
  CC      util-linux/volume_ID/fat.o
  CC      util-linux/volume_ID/get_devname.o
  CC      util-linux/volume_ID/hfs.o
  CC      util-linux/volume_ID/iso9660.o
  CC      util-linux/volume_ID/jfs.o
  CC      util-linux/volume_ID/linux_raID.o
  CC      util-linux/volume_ID/linux_swap.o
  CC      util-linux/volume_ID/luks.o
  CC      util-linux/volume_ID/nilfs.o
  CC      util-linux/volume_ID/ntfs.o
  CC      util-linux/volume_ID/ocfs2.o
  CC      util-linux/volume_ID/reiserfs.o
  CC      util-linux/volume_ID/romfs.o
  CC      util-linux/volume_ID/sysv.o
  CC      util-linux/volume_ID/ubifs.o
  CC      util-linux/volume_ID/udf.o
  CC      util-linux/volume_ID/util.o
  CC      util-linux/volume_ID/volume_ID.o
  CC      util-linux/volume_ID/xfs.o
  AR      util-linux/volume_ID/lib.a
  link    busyBox_unstripped
Static linking against glibc, can't use --gc-sections
Trying librarIEs: crypt m
 library crypt is not needed, excluding it
 library m is needed, can't exclude it (yet)
Final link with: m
  DOC     busyBox.pod
  DOC     BusyBox.txt
  DOC     busyBox.1
  DOC     BusyBox.HTML
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ make install
  ./_install//bin/ash -> busyBox
  ./_install//bin/base64 -> busyBox
  ./_install//bin/cat -> busyBox
  ./_install//bin/catv -> busyBox
  ./_install//bin/chattr -> busyBox
  ./_install//bin/chgrp -> busyBox
  ./_install//bin/chmod -> busyBox
  ./_install//bin/chown -> busyBox
  ./_install//bin/conspy -> busyBox
  ./_install//bin/cp -> busyBox
  ./_install//bin/cpio -> busyBox
  ./_install//bin/cttyHack -> busyBox
  ./_install//bin/date -> busyBox
  ./_install//bin/dd -> busyBox
  ./_install//bin/df -> busyBox
  ./_install//bin/dmesg -> busyBox
  ./_install//bin/dnsdomainname -> busyBox
  ./_install//bin/dumpkmap -> busyBox
  ./_install//bin/echo -> busyBox
  ./_install//bin/ed -> busyBox
  ./_install//bin/egrep -> busyBox
  ./_install//bin/false -> busyBox
  ./_install//bin/fatattr -> busyBox
  ./_install//bin/fdflush -> busyBox
  ./_install//bin/fgrep -> busyBox
  ./_install//bin/fsync -> busyBox
  ./_install//bin/getopt -> busyBox
  ./_install//bin/grep -> busyBox
  ./_install//bin/gunzip -> busyBox
  ./_install//bin/gzip -> busyBox
  ./_install//bin/hostname -> busyBox
  ./_install//bin/hush -> busyBox
  ./_install//bin/ionice -> busyBox
  ./_install//bin/iostat -> busyBox
  ./_install//bin/ipcalc -> busyBox
  ./_install//bin/kbd_mode -> busyBox
  ./_install//bin/kill -> busyBox
  ./_install//bin/linux32 -> busyBox
  ./_install//bin/linux64 -> busyBox
  ./_install//bin/ln -> busyBox
  ./_install//bin/login -> busyBox
  ./_install//bin/ls -> busyBox
  ./_install//bin/lsattr -> busyBox
  ./_install//bin/lzop -> busyBox
  ./_install//bin/makemime -> busyBox
  ./_install//bin/mkdir -> busyBox
  ./_install//bin/mknod -> busyBox
  ./_install//bin/mktemp -> busyBox
  ./_install//bin/more -> busyBox
  ./_install//bin/mount -> busyBox
  ./_install//bin/mountpoint -> busyBox
  ./_install//bin/mpstat -> busyBox
  ./_install//bin/mt -> busyBox
  ./_install//bin/mv -> busyBox
  ./_install//bin/netstat -> busyBox
  ./_install//bin/nice -> busyBox
  ./_install//bin/pIDof -> busyBox
  ./_install//bin/Ping -> busyBox
  ./_install//bin/Ping6 -> busyBox
  ./_install//bin/pipe_progress -> busyBox
  ./_install//bin/printenv -> busyBox
  ./_install//bin/ps -> busyBox
  ./_install//bin/pwd -> busyBox
  ./_install//bin/reformime -> busyBox
  ./_install//bin/rev -> busyBox
  ./_install//bin/rm -> busyBox
  ./_install//bin/rmdir -> busyBox
  ./_install//bin/rpm -> busyBox
  ./_install//bin/run-parts -> busyBox
  ./_install//bin/scriptreplay -> busyBox
  ./_install//bin/sed -> busyBox
  ./_install//bin/setarch -> busyBox
  ./_install//bin/setserial -> busyBox
  ./_install//bin/sh -> busyBox
  ./_install//bin/sleep -> busyBox
  ./_install//bin/stat -> busyBox
  ./_install//bin/stty -> busyBox
  ./_install//bin/su -> busyBox
  ./_install//bin/sync -> busyBox
  ./_install//bin/tar -> busyBox
  ./_install//bin/touch -> busyBox
  ./_install//bin/true -> busyBox
  ./_install//bin/umount -> busyBox
  ./_install//bin/uname -> busyBox
  ./_install//bin/usleep -> busyBox
  ./_install//bin/vi -> busyBox
  ./_install//bin/watch -> busyBox
  ./_install//bin/zcat -> busyBox
  ./_install//linuxrc -> bin/busyBox
  ./_install//sbin/acpID -> ../bin/busyBox
  ./_install//sbin/adjtimex -> ../bin/busyBox
  ./_install//sbin/arp -> ../bin/busyBox
  ./_install//sbin/blkID -> ../bin/busyBox
  ./_install//sbin/blockdev -> ../bin/busyBox
  ./_install//sbin/bootchartd -> ../bin/busyBox
  ./_install//sbin/depmod -> ../bin/busyBox
  ./_install//sbin/devmem -> ../bin/busyBox
  ./_install//sbin/fbsplash -> ../bin/busyBox
  ./_install//sbin/fdisk -> ../bin/busyBox
  ./_install//sbin/findfs -> ../bin/busyBox
  ./_install//sbin/freeramdisk -> ../bin/busyBox
  ./_install//sbin/fsck -> ../bin/busyBox
  ./_install//sbin/fsck.minix -> ../bin/busyBox
  ./_install//sbin/fstrim -> ../bin/busyBox
  ./_install//sbin/getty -> ../bin/busyBox
  ./_install//sbin/halt -> ../bin/busyBox
  ./_install//sbin/hdparm -> ../bin/busyBox
  ./_install//sbin/hwclock -> ../bin/busyBox
  ./_install//sbin/ifconfig -> ../bin/busyBox
  ./_install//sbin/ifdown -> ../bin/busyBox
  ./_install//sbin/ifenslave -> ../bin/busyBox
  ./_install//sbin/ifup -> ../bin/busyBox
  ./_install//sbin/init -> ../bin/busyBox
  ./_install//sbin/insmod -> ../bin/busyBox
  ./_install//sbin/ip -> ../bin/busyBox
  ./_install//sbin/ipaddr -> ../bin/busyBox
  ./_install//sbin/iplink -> ../bin/busyBox
  ./_install//sbin/ipneigh -> ../bin/busyBox
  ./_install//sbin/iproute -> ../bin/busyBox
  ./_install//sbin/iprule -> ../bin/busyBox
  ./_install//sbin/iptunnel -> ../bin/busyBox
  ./_install//sbin/klogd -> ../bin/busyBox
  ./_install//sbin/loadkmap -> ../bin/busyBox
  ./_install//sbin/logread -> ../bin/busyBox
  ./_install//sbin/losetup -> ../bin/busyBox
  ./_install//sbin/lsmod -> ../bin/busyBox
  ./_install//sbin/makedevs -> ../bin/busyBox
  ./_install//sbin/mdev -> ../bin/busyBox
  ./_install//sbin/mkdosfs -> ../bin/busyBox
  ./_install//sbin/mke2fs -> ../bin/busyBox
  ./_install//sbin/mkfs.ext2 -> ../bin/busyBox
  ./_install//sbin/mkfs.minix -> ../bin/busyBox
  ./_install//sbin/mkfs.vfat -> ../bin/busyBox
  ./_install//sbin/mkswap -> ../bin/busyBox
  ./_install//sbin/modinfo -> ../bin/busyBox
  ./_install//sbin/modprobe -> ../bin/busyBox
  ./_install//sbin/nameif -> ../bin/busyBox
  ./_install//sbin/pivot_root -> ../bin/busyBox
  ./_install//sbin/poweroff -> ../bin/busyBox
  ./_install//sbin/raIDautorun -> ../bin/busyBox
  ./_install//sbin/reboot -> ../bin/busyBox
  ./_install//sbin/rmmod -> ../bin/busyBox
  ./_install//sbin/route -> ../bin/busyBox
  ./_install//sbin/runlevel -> ../bin/busyBox
  ./_install//sbin/setconsole -> ../bin/busyBox
  ./_install//sbin/slattach -> ../bin/busyBox
  ./_install//sbin/start-stop-daemon -> ../bin/busyBox
  ./_install//sbin/sulogin -> ../bin/busyBox
  ./_install//sbin/swapoff -> ../bin/busyBox
  ./_install//sbin/swapon -> ../bin/busyBox
  ./_install//sbin/switch_root -> ../bin/busyBox
  ./_install//sbin/sysctl -> ../bin/busyBox
  ./_install//sbin/syslogd -> ../bin/busyBox
  ./_install//sbin/tunctl -> ../bin/busyBox
  ./_install//sbin/udhcpc -> ../bin/busyBox
  ./_install//sbin/uevent -> ../bin/busyBox
  ./_install//sbin/vconfig -> ../bin/busyBox
  ./_install//sbin/watchdog -> ../bin/busyBox
  ./_install//sbin/zcip -> ../bin/busyBox
  ./_install//usr/bin/[ -> ../../bin/busyBox
  ./_install//usr/bin/[[ -> ../../bin/busyBox
  ./_install//usr/bin/awk -> ../../bin/busyBox
  ./_install//usr/bin/basename -> ../../bin/busyBox
  ./_install//usr/bin/beep -> ../../bin/busyBox
  ./_install//usr/bin/blkdiscard -> ../../bin/busyBox
  ./_install//usr/bin/bunzip2 -> ../../bin/busyBox
  ./_install//usr/bin/bzcat -> ../../bin/busyBox
  ./_install//usr/bin/bzip2 -> ../../bin/busyBox
  ./_install//usr/bin/cal -> ../../bin/busyBox
  ./_install//usr/bin/chpst -> ../../bin/busyBox
  ./_install//usr/bin/chrt -> ../../bin/busyBox
  ./_install//usr/bin/chvt -> ../../bin/busyBox
  ./_install//usr/bin/cksum -> ../../bin/busyBox
  ./_install//usr/bin/clear -> ../../bin/busyBox
  ./_install//usr/bin/cmp -> ../../bin/busyBox
  ./_install//usr/bin/comm -> ../../bin/busyBox
  ./_install//usr/bin/crontab -> ../../bin/busyBox
  ./_install//usr/bin/cryptpw -> ../../bin/busyBox
  ./_install//usr/bin/cut -> ../../bin/busyBox
  ./_install//usr/bin/dc -> ../../bin/busyBox
  ./_install//usr/bin/deallocvt -> ../../bin/busyBox
  ./_install//usr/bin/diff -> ../../bin/busyBox
  ./_install//usr/bin/dirname -> ../../bin/busyBox
  ./_install//usr/bin/dos2unix -> ../../bin/busyBox
  ./_install//usr/bin/dpkg -> ../../bin/busyBox
  ./_install//usr/bin/dpkg-deb -> ../../bin/busyBox
  ./_install//usr/bin/du -> ../../bin/busyBox
  ./_install//usr/bin/dumpleases -> ../../bin/busyBox
  ./_install//usr/bin/eject -> ../../bin/busyBox
  ./_install//usr/bin/env -> ../../bin/busyBox
  ./_install//usr/bin/envdir -> ../../bin/busyBox
  ./_install//usr/bin/envuIDgID -> ../../bin/busyBox
  ./_install//usr/bin/expand -> ../../bin/busyBox
  ./_install//usr/bin/expr -> ../../bin/busyBox
  ./_install//usr/bin/fgconsole -> ../../bin/busyBox
  ./_install//usr/bin/find -> ../../bin/busyBox
  ./_install//usr/bin/flock -> ../../bin/busyBox
  ./_install//usr/bin/fold -> ../../bin/busyBox
  ./_install//usr/bin/free -> ../../bin/busyBox
  ./_install//usr/bin/ftpget -> ../../bin/busyBox
  ./_install//usr/bin/ftpput -> ../../bin/busyBox
  ./_install//usr/bin/fuser -> ../../bin/busyBox
  ./_install//usr/bin/groups -> ../../bin/busyBox
  ./_install//usr/bin/hd -> ../../bin/busyBox
  ./_install//usr/bin/head -> ../../bin/busyBox
  ./_install//usr/bin/hexdump -> ../../bin/busyBox
  ./_install//usr/bin/hostID -> ../../bin/busyBox
  ./_install//usr/bin/ID -> ../../bin/busyBox
  ./_install//usr/bin/install -> ../../bin/busyBox
  ./_install//usr/bin/ipcrm -> ../../bin/busyBox
  ./_install//usr/bin/ipcs -> ../../bin/busyBox
  ./_install//usr/bin/killall -> ../../bin/busyBox
  ./_install//usr/bin/last -> ../../bin/busyBox
  ./_install//usr/bin/less -> ../../bin/busyBox
  ./_install//usr/bin/logger -> ../../bin/busyBox
  ./_install//usr/bin/logname -> ../../bin/busyBox
  ./_install//usr/bin/lpq -> ../../bin/busyBox
  ./_install//usr/bin/lpr -> ../../bin/busyBox
  ./_install//usr/bin/lsof -> ../../bin/busyBox
  ./_install//usr/bin/lspci -> ../../bin/busyBox
  ./_install//usr/bin/lsusb -> ../../bin/busyBox
  ./_install//usr/bin/lzcat -> ../../bin/busyBox
  ./_install//usr/bin/lzma -> ../../bin/busyBox
  ./_install//usr/bin/lzopcat -> ../../bin/busyBox
  ./_install//usr/bin/man -> ../../bin/busyBox
  ./_install//usr/bin/md5sum -> ../../bin/busyBox
  ./_install//usr/bin/mesg -> ../../bin/busyBox
  ./_install//usr/bin/microcom -> ../../bin/busyBox
  ./_install//usr/bin/mkfifo -> ../../bin/busyBox
  ./_install//usr/bin/mkpasswd -> ../../bin/busyBox
  ./_install//usr/bin/nc -> ../../bin/busyBox
  ./_install//usr/bin/nmeter -> ../../bin/busyBox
  ./_install//usr/bin/nohup -> ../../bin/busyBox
  ./_install//usr/bin/nsenter -> ../../bin/busyBox
  ./_install//usr/bin/nslookup -> ../../bin/busyBox
  ./_install//usr/bin/od -> ../../bin/busyBox
  ./_install//usr/bin/openvt -> ../../bin/busyBox
  ./_install//usr/bin/passwd -> ../../bin/busyBox
  ./_install//usr/bin/patch -> ../../bin/busyBox
  ./_install//usr/bin/pgrep -> ../../bin/busyBox
  ./_install//usr/bin/pkill -> ../../bin/busyBox
  ./_install//usr/bin/pmap -> ../../bin/busyBox
  ./_install//usr/bin/printf -> ../../bin/busyBox
  ./_install//usr/bin/pscan -> ../../bin/busyBox
  ./_install//usr/bin/pstree -> ../../bin/busyBox
  ./_install//usr/bin/pwdx -> ../../bin/busyBox
  ./_install//usr/bin/readlink -> ../../bin/busyBox
  ./_install//usr/bin/realpath -> ../../bin/busyBox
  ./_install//usr/bin/renice -> ../../bin/busyBox
  ./_install//usr/bin/reset -> ../../bin/busyBox
  ./_install//usr/bin/resize -> ../../bin/busyBox
  ./_install//usr/bin/rpm2cpio -> ../../bin/busyBox
  ./_install//usr/bin/runsv -> ../../bin/busyBox
  ./_install//usr/bin/runsvdir -> ../../bin/busyBox
  ./_install//usr/bin/rx -> ../../bin/busyBox
  ./_install//usr/bin/script -> ../../bin/busyBox
  ./_install//usr/bin/seq -> ../../bin/busyBox
  ./_install//usr/bin/setkeycodes -> ../../bin/busyBox
  ./_install//usr/bin/setsID -> ../../bin/busyBox
  ./_install//usr/bin/setuIDgID -> ../../bin/busyBox
  ./_install//usr/bin/sha1sum -> ../../bin/busyBox
  ./_install//usr/bin/sha256sum -> ../../bin/busyBox
  ./_install//usr/bin/sha3sum -> ../../bin/busyBox
  ./_install//usr/bin/sha512sum -> ../../bin/busyBox
  ./_install//usr/bin/showkey -> ../../bin/busyBox
  ./_install//usr/bin/shuf -> ../../bin/busyBox
  ./_install//usr/bin/smemcap -> ../../bin/busyBox
  ./_install//usr/bin/softlimit -> ../../bin/busyBox
  ./_install//usr/bin/sort -> ../../bin/busyBox
  ./_install//usr/bin/split -> ../../bin/busyBox
  ./_install//usr/bin/strings -> ../../bin/busyBox
  ./_install//usr/bin/sum -> ../../bin/busyBox
  ./_install//usr/bin/sv -> ../../bin/busyBox
  ./_install//usr/bin/svc -> ../../bin/busyBox
  ./_install//usr/bin/tac -> ../../bin/busyBox
  ./_install//usr/bin/tail -> ../../bin/busyBox
  ./_install//usr/bin/tcpsvd -> ../../bin/busyBox
  ./_install//usr/bin/tee -> ../../bin/busyBox
  ./_install//usr/bin/telnet -> ../../bin/busyBox
  ./_install//usr/bin/test -> ../../bin/busyBox
  ./_install//usr/bin/tftp -> ../../bin/busyBox
  ./_install//usr/bin/time -> ../../bin/busyBox
  ./_install//usr/bin/timeout -> ../../bin/busyBox
  ./_install//usr/bin/top -> ../../bin/busyBox
  ./_install//usr/bin/tr -> ../../bin/busyBox
  ./_install//usr/bin/traceroute -> ../../bin/busyBox
  ./_install//usr/bin/traceroute6 -> ../../bin/busyBox
  ./_install//usr/bin/truncate -> ../../bin/busyBox
  ./_install//usr/bin/tty -> ../../bin/busyBox
  ./_install//usr/bin/ttysize -> ../../bin/busyBox
  ./_install//usr/bin/udpsvd -> ../../bin/busyBox
  ./_install//usr/bin/unexpand -> ../../bin/busyBox
  ./_install//usr/bin/uniq -> ../../bin/busyBox
  ./_install//usr/bin/unix2dos -> ../../bin/busyBox
  ./_install//usr/bin/unlink -> ../../bin/busyBox
  ./_install//usr/bin/unlzma -> ../../bin/busyBox
  ./_install//usr/bin/unlzop -> ../../bin/busyBox
  ./_install//usr/bin/unshare -> ../../bin/busyBox
  ./_install//usr/bin/unxz -> ../../bin/busyBox
  ./_install//usr/bin/unzip -> ../../bin/busyBox
  ./_install//usr/bin/uptime -> ../../bin/busyBox
  ./_install//usr/bin/users -> ../../bin/busyBox
  ./_install//usr/bin/uudecode -> ../../bin/busyBox
  ./_install//usr/bin/uuencode -> ../../bin/busyBox
  ./_install//usr/bin/vlock -> ../../bin/busyBox
  ./_install//usr/bin/volname -> ../../bin/busyBox
  ./_install//usr/bin/wall -> ../../bin/busyBox
  ./_install//usr/bin/wc -> ../../bin/busyBox
  ./_install//usr/bin/wget -> ../../bin/busyBox
  ./_install//usr/bin/which -> ../../bin/busyBox
  ./_install//usr/bin/who -> ../../bin/busyBox
  ./_install//usr/bin/whoami -> ../../bin/busyBox
  ./_install//usr/bin/whois -> ../../bin/busyBox
  ./_install//usr/bin/xargs -> ../../bin/busyBox
  ./_install//usr/bin/xz -> ../../bin/busyBox
  ./_install//usr/bin/xzcat -> ../../bin/busyBox
  ./_install//usr/bin/yes -> ../../bin/busyBox
  ./_install//usr/sbin/add-shell -> ../../bin/busyBox
  ./_install//usr/sbin/addgroup -> ../../bin/busyBox
  ./_install//usr/sbin/adduser -> ../../bin/busyBox
  ./_install//usr/sbin/arPing -> ../../bin/busyBox
  ./_install//usr/sbin/brctl -> ../../bin/busyBox
  ./_install//usr/sbin/chat -> ../../bin/busyBox
  ./_install//usr/sbin/chpasswd -> ../../bin/busyBox
  ./_install//usr/sbin/chroot -> ../../bin/busyBox
  ./_install//usr/sbin/crond -> ../../bin/busyBox
  ./_install//usr/sbin/delgroup -> ../../bin/busyBox
  ./_install//usr/sbin/deluser -> ../../bin/busyBox
  ./_install//usr/sbin/dhcprelay -> ../../bin/busyBox
  ./_install//usr/sbin/dnsd -> ../../bin/busyBox
  ./_install//usr/sbin/ether-wake -> ../../bin/busyBox
  ./_install//usr/sbin/fakeIDentd -> ../../bin/busyBox
  ./_install//usr/sbin/fbset -> ../../bin/busyBox
  ./_install//usr/sbin/fdformat -> ../../bin/busyBox
  ./_install//usr/sbin/ftpd -> ../../bin/busyBox
  ./_install//usr/sbin/httpd -> ../../bin/busyBox
  ./_install//usr/sbin/i2cdetect -> ../../bin/busyBox
  ./_install//usr/sbin/i2cdump -> ../../bin/busyBox
  ./_install//usr/sbin/i2cget -> ../../bin/busyBox
  ./_install//usr/sbin/i2cset -> ../../bin/busyBox
  ./_install//usr/sbin/ifplugd -> ../../bin/busyBox
  ./_install//usr/sbin/inetd -> ../../bin/busyBox
  ./_install//usr/sbin/killall5 -> ../../bin/busyBox
  ./_install//usr/sbin/loadFont -> ../../bin/busyBox
  ./_install//usr/sbin/lpd -> ../../bin/busyBox
  ./_install//usr/sbin/nanddump -> ../../bin/busyBox
  ./_install//usr/sbin/nanDWrite -> ../../bin/busyBox
  ./_install//usr/sbin/nbd-clIEnt -> ../../bin/busyBox
  ./_install//usr/sbin/ntpd -> ../../bin/busyBox
  ./_install//usr/sbin/popmaildir -> ../../bin/busyBox
  ./_install//usr/sbin/powertop -> ../../bin/busyBox
  ./_install//usr/sbin/rdate -> ../../bin/busyBox
  ./_install//usr/sbin/rdev -> ../../bin/busyBox
  ./_install//usr/sbin/readahead -> ../../bin/busyBox
  ./_install//usr/sbin/readprofile -> ../../bin/busyBox
  ./_install//usr/sbin/remove-shell -> ../../bin/busyBox
  ./_install//usr/sbin/rtcwake -> ../../bin/busyBox
  ./_install//usr/sbin/sendmail -> ../../bin/busyBox
  ./_install//usr/sbin/setFont -> ../../bin/busyBox
  ./_install//usr/sbin/setlogcons -> ../../bin/busyBox
  ./_install//usr/sbin/svlogd -> ../../bin/busyBox
  ./_install//usr/sbin/telnetd -> ../../bin/busyBox
  ./_install//usr/sbin/tftpd -> ../../bin/busyBox
  ./_install//usr/sbin/ubiattach -> ../../bin/busyBox
  ./_install//usr/sbin/ubIDetach -> ../../bin/busyBox
  ./_install//usr/sbin/ubimkvol -> ../../bin/busyBox
  ./_install//usr/sbin/ubirename -> ../../bin/busyBox
  ./_install//usr/sbin/ubirmvol -> ../../bin/busyBox
  ./_install//usr/sbin/ubirsvol -> ../../bin/busyBox
  ./_install//usr/sbin/ubiupdatevol -> ../../bin/busyBox
  ./_install//usr/sbin/udhcpd -> ../../bin/busyBox


--------------------------------------------------
You will probably need to make your busyBox binary
setuID root to ensure all configured applets will
work properly.
--------------------------------------------------

rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 


(make all已经全部编译过了!)
2、海思工具的编译
在 Hi3516CV500_SDK_V2.0.1.0/package/osdrv/tools/board 目录下,存放了板端可能用得到的工具。在 Hi3516CV500_SDK_V2.0.1.0/package/osdrv/tools/pc 目录下,则需要使用 make_ext4fs 工具。

2.1 himm工具的编译
himm工具是海思提供的可以直接 *** 作SOC寄存器的工具,当配置IO复用或者调整IRCUT等的时候,可能会用上。himm工具在板端目录下的 reg-tools-1.0.0 文件夹内,命令行进入直接输入 make 编译即可。

2.2 make_ext4fs工具的编译
ext4是用于emmC的文件系统,make_ext4fs工具在pc端目录下的 ext4_utils 文件夹内,如果安装过程中出错,提示 cannot find uuID library required for mkfs.ubifs ,则验证有没有安装以下依赖包:
sudo apt install libuuID1:i386 zlib1g-dev liblzo2-dev uuID-dev pkg-config
而后重新 make 即可。本步骤来源见参考2。


3、建立根文件系统的目录
Z:Hi3516CV500R001C02SPC021ReleaseDoczh 1.softwareboardOSDRVHi35xxVxxx 开发环境用户指南.pdf(P17-P26)
本阶段步骤部分来源为:《Hi3516CV500╱Hi3516DV300╱Hi3516AV300 开发环境用户指南》

找一个自己喜欢的目录,建一个用于存放根文件系统的文件夹,比如这里就单纯的命名为 rootfs 。

3.1 复制busyBox编译的文件到rootfs目录
这一步很简单,因为目录还是空的,所以直接拷贝busyBox目录下的 _install 中全部文件(夹)到 rootfs 目录即可。
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ mv _install/ ../../../..
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2$ cd ../../../..
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ ll
total 52
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ./
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 14:14 ../
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516av300_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516cv500_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516dv300_spi_smp_image_glibc/
drwxrwxr-x  5 rootroot rootroot 4096 3月  24 16:57 _install/
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 16:40 osdrv/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 package/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 scripts/
-rwxrwxr-x  1 rootroot rootroot  880 5月  28  2020 sdk.cleanuP*
-rwxrwxr-x  1 rootroot rootroot 4891 5月  28  2020 sdk.unpack*
drwxrwxr-x  3 rootroot rootroot 4096 3月  24 14:15 smp/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ mv _install/ rootfs
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ ll
total 52
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ./
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 14:14 ../
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516av300_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516cv500_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 hi3516dv300_spi_smp_image_glibc/
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 16:40 osdrv/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 package/
drwxrwxr-x  5 rootroot rootroot 4096 3月  24 16:57 rootfs/
drwxrwxr-x  2 rootroot rootroot 4096 5月  28  2020 scripts/
-rwxrwxr-x  1 rootroot rootroot  880 5月  28  2020 sdk.cleanuP*
-rwxrwxr-x  1 rootroot rootroot 4891 5月  28  2020 sdk.unpack*
drwxrwxr-x  3 rootroot rootroot 4096 3月  24 14:15 smp/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 


3.2 复制himm工具到rootfs
在himm工具编译完后,将其目录下 bin 文件夹中的内容复制到 rootfs/bin 中,这样就算完成了。
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ find . -name himm
./osdrv/tools/board/reg-tools-1.0.0/bin/himm
./osdrv/pub/bin/board_glibc/himm
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ cp osdrv/pub/bin/board_glibc/himm rootfs/bin/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 


3.3 填充etc目录
进入目录:
/Hi3516CV500_SDK_V2.0.1.0/package/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy/etc
将其中的所有文件拷贝到 rootfs/etc 中,这将作为kerne的“启动”文件夹。
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ cd osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ ll
total 44
drwxr-xr-x 3 rootroot rootroot 4096 3月   5  2014 ./
drwxr-xr-x 5 rootroot rootroot 4096 7月  29  2017 ../
-rw-r--r-- 1 rootroot rootroot 4614 3月   5  2014 bootfloppy.txt
-rw-r--r-- 1 rootroot rootroot  135 3月   5  2014 display.txt
drwxr-xr-x 3 rootroot rootroot 4096 3月   5  2014 etc/
-rwxr-xr-x 1 rootroot rootroot 1042 3月   5  2014 mkdevs.sh*
-rwxr-xr-x 1 rootroot rootroot 2335 3月   5  2014 mkrootfs.sh*
-rwxr-xr-x 1 rootroot rootroot 1183 3月   5  2014 mksyslinux.sh*
-rw-r--r-- 1 rootroot rootroot  574 3月   5  2014 quickstart.txt
-rw-r--r-- 1 rootroot rootroot  120 3月   5  2014 syslinux.cfg
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ mv etc/ ../../../../../../
hi3516av300_spi_smp_image_glibc/ hi3516dv300_spi_smp_image_glibc/ package/                         scripts/                         sdk.unpack                       
hi3516cv500_spi_smp_image_glibc/ osdrv/                           rootfs/                          sdk.cleanup                      smp/                             
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ mv etc/ ../../../../../../rootfs/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/osdrv/opensource/busyBox/busyBox-1.26.2/examples/bootfloppy$ cd ../../../../../../rootfs/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 24
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 17:09 ./
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot 4096 3月   5  2014 etc/
lrwxrwxrwx  1 rootroot rootroot   11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot 4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 


3.4 填充lib目录
Hi3516DV300芯片具有浮点运算单元和neon,程序运行需要依赖编译工具提供的运行库,进入海思arm-himix200-linux-工具链对应目录下:
cd /opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4
可以看到其中有一个孤零零的 lib.tgz 文件,解压到rootfs中的lib文件夹内即可。
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 24
drwxrwxr-x  6 rootroot rootroot 4096 3月  24 17:09 ./
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot 4096 3月   5  2014 etc/
lrwxrwxrwx  1 rootroot rootroot   11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot 4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ cd /opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ ll
total 10448
drwxr-xr-x  2 520 520     4096 12月 18  2019 ./
drwxr-xr-x 35 520 520     4096 12月 18  2019 ../
-rw-r--r--  1 520 520 10688507 12月 18  2019 lib.tgz
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ cp lib.tgz ~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:/opt/hisi-linux/x86-arm/arm-himix200-linux/runtime_glibc/a7_softfp_neon-vfpv4$ cd -
/home/rootroot/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 10464
drwxrwxr-x  6 rootroot rootroot     4096 3月  24 17:13 ./
drwxrwxr-x 10 rootroot rootroot     4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot     4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot     4096 3月   5  2014 etc/
-rw-r--r--  1 rootroot rootroot 10688507 3月  24 17:13 lib.tgz
lrwxrwxrwx  1 rootroot rootroot       11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot     4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot     4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ tar zxvf lib.tgz 
lib/
lib/libresolv-2.24.so
lib/libgomp.so.1
lib/libcIDn.so.1
lib/libbrokenLocale-2.24.so
lib/libthread_db-1.0.so
lib/libdl-2.24.so
lib/libstdc++.so.6.0.23
lib/a7_softfp_neon-vfpv4
lib/libnss_compat.so.2
lib/libgcc_s.so
lib/libnss_nisplus-2.24.so
lib/libasan.so.3.0.0
lib/libutil.so.1
lib/libstdc++.so
lib/libcrypt.so.1
lib/libanl-2.24.so
lib/libdl.so.2
lib/ld-linux.so.3
lib/libmemusage.so
lib/libubsan.so.0
lib/libutil-2.24.so
lib/libnss_db-2.24.so
lib/libpthread-2.24.so
lib/libnss_compat-2.24.so
lib/libc-2.24.so
lib/ld-linux-armhf.so.3
lib/libnss_files-2.24.so
lib/librt.so.1
lib/libnsl-2.24.so
lib/libm.so.6
lib/libbrokenLocale.so.1
lib/libstdc++.so.6
lib/libasan.so
lib/libatomic.so.1
lib/libgomp.so
lib/libnss_nisplus.so.2
lib/libnss_dns-2.24.so
lib/libresolv.so.2
lib/libcIDn-2.24.so
lib/libthread_db.so.1
lib/libSegFault.so
lib/libm-2.24.so
lib/libubsan.so.0.0.0
lib/librt-2.24.so
lib/libgomp.so.1.0.0
lib/libubsan.so
lib/libgcc_s.so.1
lib/libasan_preinit.o
lib/libatomic.so
lib/libnss_db.so.2
lib/libpcprofile.so
lib/libcrypt-2.24.so
lib/ld-2.24.so
lib/libnss_nis.so.2
lib/libasan.so.3
lib/libpthread.so.0
lib/libanl.so.1
lib/libnss_hesiod-2.24.so
lib/libc.so.6
lib/libnss_hesiod.so.2
lib/libnss_dns.so.2
lib/libnss_nis-2.24.so
lib/libatomic.so.1.2.0
lib/libnss_files.so.2
lib/libnsl.so.1
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 10468
drwxrwxr-x  7 rootroot rootroot     4096 3月  24 17:13 ./
drwxrwxr-x 10 rootroot rootroot     4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot     4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot     4096 3月   5  2014 etc/
drwxr-xr-x  2 rootroot rootroot     4096 12月 18  2019 lib/
-rw-r--r--  1 rootroot rootroot 10688507 3月  24 17:13 lib.tgz
lrwxrwxrwx  1 rootroot rootroot       11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot     4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot     4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ rm lib.tgz 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 28
drwxrwxr-x  7 rootroot rootroot 4096 3月  24 17:13 ./
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot 4096 3月   5  2014 etc/
drwxr-xr-x  2 rootroot rootroot 4096 12月 18  2019 lib/
lrwxrwxrwx  1 rootroot rootroot   11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot 4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 


3.5 建立根文件系统目录结构
使用命令行进入 rootfs 文件夹中,输入:
mkdir etc dev lib tmp var mnt home proc
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ ll
total 28
drwxrwxr-x  7 rootroot rootroot 4096 3月  24 17:13 ./
drwxrwxr-x 10 rootroot rootroot 4096 3月  24 17:06 ../
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 17:07 bin/
drwxr-xr-x  3 rootroot rootroot 4096 3月   5  2014 etc/
drwxr-xr-x  2 rootroot rootroot 4096 12月 18  2019 lib/
lrwxrwxrwx  1 rootroot rootroot   11 3月  24 16:57 linuxrc -> bin/busyBox*
drwxrwxr-x  2 rootroot rootroot 4096 3月  24 16:57 sbin/
drwxrwxr-x  4 rootroot rootroot 4096 3月  24 16:57 usr/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ mkdir etc dev lib tmp var mnt home proc
mkdir: cannot create directory ‘etc’: file exists
mkdir: cannot create directory ‘lib’: file exists
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 


4、打包rootfs镜像
将前面编译好的 make_ext4fs 工具拷贝到和 rootfs 文件夹同一级目录下,命令行下运行:
./make_ext4fs -l 200M -s rootfs_hi3516dv300.ext4 rootfs
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1/rootfs$ cd ..
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ find . -name make_ext4fs
./osdrv/tools/pc/ext4_utils/ext4_utils/make_ext4fs
./osdrv/tools/pc/ext4_utils/bin/make_ext4fs
./osdrv/pub/bin/pc/make_ext4fs
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ cp osdrv/pub/bin/pc/make_ext4fs .
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ ll
total 160
drwxrwxr-x 10 rootroot rootroot   4096 3月  24 17:15 ./
drwxrwxr-x  6 rootroot rootroot   4096 3月  24 14:14 ../
drwxrwxr-x  2 rootroot rootroot   4096 5月  28  2020 hi3516av300_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot   4096 5月  28  2020 hi3516cv500_spi_smp_image_glibc/
drwxrwxr-x  2 rootroot rootroot   4096 5月  28  2020 hi3516dv300_spi_smp_image_glibc/
-rwxrwxr-x  1 rootroot rootroot 110352 3月  24 17:15 make_ext4fs*
drwxrwxr-x  6 rootroot rootroot   4096 3月  24 16:40 osdrv/
drwxrwxr-x  2 rootroot rootroot   4096 5月  28  2020 package/
drwxrwxr-x 13 rootroot rootroot   4096 3月  24 17:14 rootfs/
drwxrwxr-x  2 rootroot rootroot   4096 5月  28  2020 scripts/
-rwxrwxr-x  1 rootroot rootroot    880 5月  28  2020 sdk.cleanuP*
-rwxrwxr-x  1 rootroot rootroot   4891 5月  28  2020 sdk.unpack*
drwxrwxr-x  3 rootroot rootroot   4096 3月  24 14:15 smp/
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ ./make_ext4fs -l 200M -s rootfs_hi3516dv300.ext4 rootfs
Creating filesystem with parameters:
    Size: 209715200
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 6400
    Inode size: 256
    Journal blocks: 1024
    Label: 
    Blocks: 51200
    Block groups: 2
    Reserved block group size: 15
Created filesystem with 466/12800 inodes and 11518/51200 blocks
rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3:~/Hi3516CV500R001C02SPC021/Hi3516CV500_SDK_V2.0.2.1$ 

这里,200M指的是根文件系统所占emmC的大小,可以根据需要修改,-s后面是生成的镜像名,rootfs为待压缩的目录。
至此,得到根文件系统镜像,使用Hi_Tool或者手动 *** 作uboot进行烧录均可。


5、刷机(先擦除全器件,然后再烧写!)
setenv bootargs 'mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),9M(kernel),200M(rootfs.ext4),-(user)'
setenv bootcmd 'mmc read 0 0x80000000 800 4800; bootm 0x80000000'
saveenv
reset


刷机之后启动的LOG:
[BEGIN] 2021/3/24 18:04:07

hisilicon # 
hisilicon # 
hisilicon # print
arch=arm
baudrate=115200
board=hi3516dv300
board_name=hi3516dv300
bootargs=console=ttyAMA0,115200n8 root=/dev/mtdblock2 rw
bootcmd=run distro_bootcmd
bootdelay=2
cpu=armv7
ethact=eth0
soc=hi3516dv300
stderr=serial
stdin=serial
stdout=serial
vendor=hisilicon
verify=n

Environment size: 298/262140 bytes
hisilicon # 
hisilicon # 
hisilicon # setenv bootargs 'mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),9M(kernel),200M(rootfs.ext4),-(user)'
hisilicon # setenv bootcmd 'mmc read 0 0x80000000 800 4800; bootm 0x80000000'
hisilicon # saveenv
Saving Environment to emmC Flash...
Writing to MMC(0)... done
hisilicon # 
hisilicon # print
arch=arm
baudrate=115200
board=hi3516dv300
board_name=hi3516dv300
bootargs=mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(uboot.bin),9M(kernel),200M(rootfs.ext4),-(user)
bootcmd=mmc read 0 0x80000000 800 4800; bootm 0x80000000
bootdelay=2
cpu=armv7
ethact=eth0
soc=hi3516dv300
stderr=serial
stdin=serial
stdout=serial
vendor=hisilicon
verify=n

Environment size: 449/262140 bytes
hisilicon # 
hisilicon # reset
resetting ...
                         


System startup

Uncompress Ok!

U-Boot 2016.11 (Mar 24 2021 - 16:40:49 +0800)hi3516dv300

Relocation Offset is: 0f6ea000
Relocating to 8feea000, new gd at 8fe49ef0, sp at 8fe49ed0
MMC:   
emmC/MMC/SD controller initialization.
scan edges:2 p2f:6 f2p:1
mix set temp-phase 3
scan elemnts: startp:2 endp:120
Tuning SampleClock. mix set phase:[03/07] ele:[13d/16]
** First descriptor is NOT a primary desc on 0:1 **
MMC/SD Card:
    MID:         0x15
    Read Block:  512 Bytes
    Write Block: 512 Bytes
    Chip Size:   7456M Bytes (High Capacity)
    name:        "8GTF4"
    Chip Type:   MMC
    Version:     0.0
    Speed:       100000000Hz
    Bus WIDth:   4bit
himci: 0 (emmC)
In:    serial
Out:   serial
Err:   serial
Net:   eth0
Warning: eth0 (eth0) using random MAC address - 0a:ee:f4:99:54:0b

Hit any key to stop autoboot:  0 

MMC read: dev # 0, block # 2048, count 18432 ... 18432 blocks read: OK
## Booting kernel from Legacy Image at 80000000 ...
   Image name:   linux-4.9.37
   Image Type:   ARM linux Kernel Image (uncompressed)
   Data Size:    3485557 Bytes = 3.3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Loading Kernel Image ... OK

Starting kernel ...

Booting linux on physical cpu 0x0
linux version 4.9.37 (rootroot@rootroot-HP-ZHAN-66-Pro-A-14-G3) (gcc version 6.3.0 (HC&C V1R3C00SPC300B009_20191212) ) #1 SMP Wed Mar 24 16:42:57 CST 2021
cpu: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
cpu: div instructions available: patching division code
cpu: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt:Machine model: Hisilicon HI3516DV300 DEMO Board
cma zone is not set!
cma: Reserved 16 MiB at 0x87000000
Memory policy: Data cache writealloc
percpu: Embedded 13 pages/cpu @c6eca000 s21772 r8192 d23284 u53248
Built 1 zoneLists in Zone order, mobility grouPing on.  Total pages: 32512
Kernel command line: mem=128M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 ro

总结

以上是内存溢出为你收集整理的54-20210324华为海思Hi3516DV300的linux系统增加busybox文件系统(eMMC模式)全部内容,希望文章能够帮你解决54-20210324华为海思Hi3516DV300的linux系统增加busybox文件系统(eMMC模式)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1013184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存