转载,侵删

HI3518EV200 SDK安装并编译osdr。

1、开发环境

  • windows10电脑 + 虚拟机14 Pro + Ubuntu16.0.4

2、拷贝并解压。将 Hi3518E_SDK_V1.0.3.0.tgz拷贝到 Linux 服务器上。

    cd ~/sambashare/
cp /mnt/hgfs/winshare/HI3518EV200/Hi3518E_V200R001C01SPC030/01.software/board/Hi3518E_SDK_V1.0.3.0.tgz ./ -f
ls
tar -xvf Hi3518E_SDK_V1.0.3.0.tgz

3、 安装

进入Hi3518E_SDK_V1.0.3.0目录,执行以下两个命令

    source sdk.cleanup         清除SDK
source sdk.unpack 解压SDK

4、编译OSDRV

进入osdrv目录。
先执行distclean命令,确保SDK命令是干净的

    make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean            

执行make all,编译整个osdrv目录

    make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.1 出现错误

/bin/sh: 1: pushd: not found

原因:

不能压栈入栈,因为pushd命令需要在bash的环境中执行,所以需要修改系统默认shell为bash

解决方法1

  • 步骤1.which sh,结果是/bin/sh
  • 步骤2.ls -l /bin/sh,结果sh指向dash
  • 步骤3.sudo rm /bin/sh
  • 步骤4.sudo ln -s /bin/bash /bin/sh
  • 步骤5.ls -l /bin/sh,结果sh指向bash

解决方法2

  • 步骤1.sudo dpkg-reconfigure dash 【NO】
  • 步骤2.ls -l /bin/sh,结果sh指向bash

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.2 出现错误

make[2]: arm-hisiv300-linux-gcc: Command not found

原因

交叉编译工具链未安装。
由于嵌入式单板的资源有限,不能在单板上运行开发和调试工具,通常需要交叉编译调试的方式进行开发和调试,即“宿主机+目标机(评估板)”的形式。
宿主机和目标机的处理器一般不相同。宿主机需要建立合适于目标机的交叉编译环境。程序在宿主机上经过“编译-链接-定位”得到可执行文件。通过一定的方法将可执行文件烧写到目标机中,然后再目标机上运行。所谓的交叉编译也就是A机编译,B机运行。
发布包提供两种编译工具链arm-hisiv300-linux 和 arm-hisiv400-linux,其中 arm-hisiv300-linux 为基于 uclibc 的工具链, arm-hisiv400-linux 为基于 glibc 的工具链。 uclibc比 glibc要小很多,因此我们选用arm-hisiv300-linux。

解决方法

  • 步骤1,进入工具链及其安装程序的目录位置:Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux
  • 步骤2,解压工具链:tar -xvf arm-hisiv300-linux.tar.bz2
  • 步骤3,安装工具链:sudo ./cross.install.v300
  • 步骤4,进入交叉编译工具链的挂载目录:cd /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin
  • 步骤5,ls 【发现里面有很多arm-hisiv300-linux-uclibcgnueabi-xxx编译工具链】
  • 步骤6,file file arm-hisiv300-linux-uclibcgnueabi-gcc 【ELF 32-bit LSB executable,也就是说这个交叉编译工具链是32位的,但是我是用的虚拟机上Ubuntu16.04是64位的,因此必须安装32位的兼容包】
  • 步骤7,cd ../target/bin
  • 步骤8,ls 【发现里面有很多arm-hisiv300-linux-xxx编译工具链,这些是arm-hisiv300-linux-uclibcgnueabi-xxx的符号链接,就是我们要找的arm-hisiv300-linux工具链,可以用ls -l查看】
  • 步骤9,pwd 【/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin,记住这个路径,需要将这个路径导入到环境变量中:见步骤9,10】
  • 步骤10,vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
  • 步骤11,source ~/.bashrc 【确保环境变量设置生效.,可以用echo $PATH查看是否成功导入】
  • 步骤12,ping www.baidu.com 【确保虚拟机能上网】
  • 步骤13,sudo aptitude install lib32z1 【注意:要安装任何软件之前,一定要确保虚拟机能上网】
  • 步骤14,sudo aptitude install lib32stdc++6-4.8-dbg 【注意:要安装任何软件之前,一定要确保虚拟机能上网】

测试是否已经成功安装了交叉编译工具链:
在ubuntu中只想一下命令

arm-hisiv300-linux-gcc -v
出现了gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v300)说明安装成功

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.3 出现错误

"mkimage" command not found - U-Boot images will not be built

解决方法1:

  • 步骤1,cd osdrv/opensource/uboot/u-boot-2010.06
  • 步骤2,ls 【可以看到里面uboot.bin已经生成了】
  • 步骤3,cd tools 【里面有mkimage.c和mkimage】
  • 步骤4,file mkimage 【写x86-64位的架构,ubuntu16.0.04也是x86-64架构,因此可以在当前虚拟机上运行】
  • 步骤5,sudo cp mkimage /usr/local/bin
  • 步骤6,cd ../../
  • 步骤7,ls 【发现里面要u-boot-2010.06文件夹和u-boot-2010.06.tgz压缩包】
  • 步骤8,mki[连续按TabTab键] 【发现补全mkimage,说明已经成功解决了】

解决方法2:

  • 步骤1, ping www.baidu.com 确保虚拟机能上网
  • 步骤2,sudo apt-get install u-boot-tools

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.4 出现错误:

compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

解决方法

  • 步骤1,sudo aptitude install zlib1g-dev

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.5 出现错误:

serve_image.c:32:18: error: storage size of ‘hints’ isn’t known

原因

在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致

解决方法

修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释,如下图(注意#ifdef与#endif是一一对应的)
  • 步骤1,sudo vi /usr/include/netdb.h
  • 步骤2,:set nu 【显示行号】
  • 步骤3,/__USE_XOPEN2K 【搜索】
  • 步骤4,将第79行的#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED和相应的第82行的#endif用//注释掉
  • 步骤5,/__USE_XOPEN2K 【搜索】
  • 步骤6,第565行的#ifdef __USE_XOPEN2K和第681行的的#endif用//注释掉 【用:681命令跳转到681行】

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.6 出现错误:

mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’
-----------
Makefile:204: recipe for target 'hipctools' failed

原因:

mtd-utils_1.5.0.tar.bz2 库的问题,大家可以更新到 mtd-utils_1.5.2.tar.bz2 重新编译就可以了;
mtd-utils_1.5.2.tar.bz2的下载地址:http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2

失败的解决方案【不推荐,可跳过】

解决:
下载mtd-utils-1.5.2.tar.bz2,替换osdrv\tools\pc\jffs2_tool目录下的mtd-utils-1.5.0.tar.bz2,
tar -jcvf mtd-utils-1.5.2.tar.bz2 mtd-utils-1.5.2
同时修改该目录下的Makefile 【不知道给如何修改】 解决方法待验证:
1.你先将osdrv/Makefile中的jffs2_tool部分注释(不再编译sdk提供的源码包)
2.然后自己从源上下载mkfs.jffs2(apt-get install mtd-utils)
3.并且将执行文件放到pub/pc目录下。【执行文件是什么???】
4.然后你再重新在osdrv/下编译(注意clean掉之前发生错误部分,不需要全部clean,选择hipctools_clean)
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 hipctools_clean 解决:
下载并解压mtd-utils-1.5.2.tar.bz2到ubuntu中,然后进入mtd的目录,
make

分析以及解决方案

总结:经过百度搜索以及各种探索,发现我不能解决这个问题,因此决定把这个问题跳过去
分析

根据打印的错误信息分析,因为:

mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’
-----------
Makefile:204: recipe for target 'hipctools' failed

所以要研究总Makefile里面的'hipctools'部分:

    hipctools: prepare
@echo "---------task [5] build tools which run on pc"
make -C $(OSDRV_DIR)/tools/pc/mkyaffs2image/
cp $(OSDRV_DIR)/tools/pc/mkyaffs2image/bin/$(YAFFS_TOOL) $(OSDRV_DIR)/pub/bin/pc
make -C $(OSDRV_DIR)/tools/pc/jffs2_tool/
cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.jffs2 $(OSDRV_DIR)/pub/bin/pc
cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.ubifs $(OSDRV_DIR)/pub/bin/pc
cp $(OSDRV_DIR)/tools/pc/jffs2_tool/ubinize $(OSDRV_DIR)/pub/bin/pc

对照打印错误信息1:

    ---------task [5] build tools which run on pc

推测1:
@echo "---------task [5] build tools which run on pc" 这一句成功运行了

对照打印错误信息2:

     make -C /home/aston/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/**tools/pc/mkyaffs2image/**
make[1]: Entering directory '/home/aston/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/ ** tools/pc/mkyaffs2image ** '

推测2:

    make -C $(OSDRV_DIR)/**tools/pc/mkyaffs2image/**  【上面的那一句打印信息对应此句】
    • 总结: make -C $(OSDRV_DIR)/tools/pc/mkyaffs2image/目的是为了生成mkyaffs2image100和mkfs.jffs2文件。

分析2:

  • 步骤1,进入osdrv/tools/pc/mkyaffs2image/mkyaffs2image/目录,并且ls,【发现里面有很多.c,.h文件,以及有makefile。推测这个文件是为了生成某个东西】
  • 步骤2,进入osdrv/tools/pc/mkyaffs2image/bin,并且ls 【发现已经里面生成了mkyaffs2image100文件】
  • 步骤3,进入osdrv/tools/pc/jffs2_tool/tmp/mtd-utils-1.5.0 ,并且ls 【发现已经里面生成了mkfs.jffs2】【分析makfile,并结合网上信息】

对照打印错误信息3:

    ********************************经过验证分析发现从这里开始出错了

推测2:

    cp $(OSDRV_DIR)/tools/pc/mkyaffs2image/bin/$(YAFFS_TOOL) $(OSDRV_DIR)/pub/bin/pc【上面的那一句打印信息对应此句】
    • 总结:这句话的目的:将生成的mkyaffs2image100和mkfs.jffs2文件复制到osdrv/pub/bin/pc目录中去

验证上面的语句是否成功执行:

  • 步骤1,cd osdrv/pub/bin/pc
  • 步骤2,ls 【里面只有mkyaffs2image100】
解决方案:
第一步:手动执行这一句[cp $(OSDRV_DIR)/tools/pc/mkyaffs2image/bin/$(YAFFS_TOOL) $(OSDRV_DIR)/pub/bin/pc]
  • 步骤1,cd osdrv/tools/pc/jffs2_tool/tmp/mtd-utils-1.5.0
  • 步骤2,cp ./mkfs.jffs2 ./../../../../../pub/bin/pc
  • 步骤3,ls ./../../../../../pub/bin/pc 【里面mkfs.jffs2,mkyaffs2image100】
第二步:然后将osdrv的总Makefile里面的jffs2_tool注释掉【用#】:
  • 步骤1,sudo vi Makefile
  • 步骤2,/jffs2_tool 【搜索】
    #make -C $(OSDRV_DIR)/tools/pc/jffs2_tool/
    #cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.jffs2 $(OSDRV_DIR)/pub/bin/pc
    #cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.ubifs $(OSDRV_DIR)/pub/bin/pc
    #cp $(OSDRV_DIR)/tools/pc/jffs2_tool/ubinize $(OSDRV_DIR)/pub/bin/pc
    #cp $(OSDRV_DIR)/tools/pc/jffs2_tool/ubi.cfg $(OSDRV_DIR)/pub/bin/pc
##########################################################################################
#task [] build pc tools
##########################################################################################
hipctools: prepare
@echo "---------task [5] build tools which run on pc"
make -C $(OSDRV_DIR)/tools/pc/mkyaffs2image/
cp $(OSDRV_DIR)/tools/pc/mkyaffs2image/bin/$(YAFFS_TOOL) $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/jffs2_tool/
#cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.jffs2 $(OSDRV_DIR)/pub/bin/pc
#cp $(OSDRV_DIR)/tools/pc/jffs2_tool/mkfs.ubifs $(OSDRV_DIR)/pub/bin/pc
#cp $(OSDRV_DIR)/tools/pc/jffs2_tool/ubinize $(OSDRV_DIR)/pub/bin/pc
#cp $(OSDRV_DIR)/tools/pc/jffs2_tool/ubi.cfg $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/cramfs_tool/
#cp $(OSDRV_DIR)/tools/pc/cramfs_tool/mkfs.cramfs $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/mkimage_tool/
#cp $(OSDRV_DIR)/tools/pc/mkimage_tool/mkimage $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/squashfs4./
#cp $(OSDRV_DIR)/tools/pc/squashfs4./mksquashfs $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/lzma_tool/
#cp $(OSDRV_DIR)/tools/pc/lzma_tool/lzma $(OSDRV_DIR)/pub/bin/pc
#make -C $(OSDRV_DIR)/tools/pc/ext4_utils/
#cp $(OSDRV_DIR)/tools/pc/ext4_utils/bin/$(EXT4_TOOL) $(OSDRV_DIR)/pub/bin/pc hipctools_clean:
make -C $(OSDRV_DIR)/tools/pc/mkyaffs2image clean
make -C $(OSDRV_DIR)/tools/pc/jffs2_tool distclean
#make -C $(OSDRV_DIR)/tools/pc/cramfs_tool distclean
#make -C $(OSDRV_DIR)/tools/pc/mkimage_tool distclean
#make -C $(OSDRV_DIR)/tools/pc/squashfs4. distclean
#make -C $(OSDRV_DIR)/tools/pc/lzma_tool distclean
#make -C $(OSDRV_DIR)/tools/pc/ext4_utils clean

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.7 出现错误:

configure: error: ncurses or ncursesw selected, but library not found (--without-ncurses to disable)

解决方法

  • 步骤1,sudo apt-get install libncurses5-dev libncursesw5-dev【先确保能ping通】

进入osdrv,继续编译

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

4.8 结果

出现---------finish osdrv work,表示整个osdrv编译成功

  • 总结:此时只有mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’被跳过了。拍摄快照。

4.9 查看成果:

查看:

  • cd /home/aston/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/pub/image_uclibc
    4.8M rootfs_hi3518ev200_128k.jffs2
    4.8M rootfs_hi3518ev200_256k.jffs2
    12M rootfs_hi3518ev200_2k_4bit.yaffs2
    16M rootfs_hi3518ev200_32M.ext4
    4.8M rootfs_hi3518ev200_64k.jffs2
    268K u-boot-hi3518ev200.bin
    2.6M uImage_hi3518ev200

5. 整个osdrv目录结果分析

进入osdrv,第一次make distclean之后,终端执行命令tree osdrv/
osdrv/
├── Makefile --------------------------------- osdrv目录编译脚本
├── opensource ------------------------------- 存放各种开源源码目录
│ ├── busybox ------------------------------ 存放busybox源代码的目录
│ │ └── busybox-1.20.2.tgz
│ ├── kernel ------------------------------- 存放kernel源代码的目录
│ │ └── linux-3.4.y.tgz
│ ├── toolchain ---------------------------------- 存放工具链的目录
│ │ ├── arm-hisiv300-linux --------------------- 交叉编译工具链
│ │ │ ├── arm-hisiv300-linux.tar.bz2
│ │ │ ├── cross.install.v300
│ │ │ └── runtime_lib 【有很多以a开头的文件夹,里面全是lib.tgz文件】
│ │ │ ├── a7_hard_neon-vfpv4
│ │ │ │ └── lib.tgz
│ │ │ ├── a7_soft
│ │ │ │ └── lib.tgz
│ │ └── arm-hisiv400-linux --------------------- 交叉编译工具链
│ │ ├── arm-hisiv400-linux.tar.bz2
│ │ ├── cross.v400.install
│ │ └── runtime_lib
│ │ ├── a7_hard_neon-vfpv4
│ │ │ └── lib.tgz
│ │ ├── a7_soft
│ │ │ └── lib.tgz
│ └── uboot -------------------------------------- 存放uboot源代码的目录
│ └── u-boot-2010.06.tgz
├── pub ------------------------------------------- 存放各种镜像的目录【从这里可以看出,原本pub是空的,直到make all编译完成后里面才有东西】
├── readme_cn.txt
├── readme_en.txt
├── rootfs_scripts-------------------------------- 存放根文件系统制作脚本
│ └── rootfs.tgz
└── tools --------------------------------------------- 存放各种工具的目录
├── board ----------------------------------------- 各种单板上使用工具
│ ├── e2fsprogs ---------------------------------
│ │ ├── e2fsprogs-1.41.11.tar.gz
│ │ └── Makefile
│ ├── ethtools
│ │ ├── ethtool_6.orig.tar.gz
│ │ └── Makefile
│ ├── gdb
│ │ ├── gdb-7.6.tar.bz2
│ │ ├── Makefile
│ │ └── ncurses-5.9.tar.gz
│ ├── hifat -------------------------------------FAT文件系统制作工具
│ │ ├── glibc
│ │ │ ├── himount_api.h
│ │ │ ├── how_to_use_[chs].txt
│ │ │ ├── how_to_use_[en].txt
│ │ │ ├── shared
│ │ │ │ ├── himount
│ │ │ │ ├── libfs_lib.so
│ │ │ │ ├── libfuse.so
│ │ │ │ ├── libfuse.so.2
│ │ │ │ ├── libfuse.so.2.8.3
│ │ │ │ ├── libhimount_api.so
│ │ │ │ ├── libsdparm.so
│ │ │ │ ├── libulockmgr.so
│ │ │ │ ├── libulockmgr.so.1
│ │ │ │ └── libulockmgr.so.1.0.1
│ │ │ ├── src
│ │ │ │ └── hifat-1.0-glibc.tgz
│ │ │ └── static
│ │ │ ├── himount
│ │ │ └── libhimount_api.a
│ │ └── uclibc
│ │ ├── himount_api.h
│ │ ├── how_to_use_[chs].txt
│ │ ├── how_to_use_[en].txt
│ │ ├── shared
│ │ │ ├── himount
│ │ │ ├── libfs_lib.so
│ │ │ ├── libfuse.so
│ │ │ ├── libfuse.so.2
│ │ │ ├── libfuse.so.2.8.3
│ │ │ ├── libhimount_api.so
│ │ │ ├── libsdparm.so
│ │ │ ├── libulockmgr.so
│ │ │ ├── libulockmgr.so.1
│ │ │ └── libulockmgr.so.1.0.1
│ │ ├── src
│ │ │ └── hifat-1.0-uclibc.tgz
│ │ └── static
│ │ ├── himount
│ │ └── libhimount_api.a
│ ├── mkdosfs ----------------------------------- mkdosfs工具
│ │ ├── dosfstools-3.0.26.tar.gz
│ │ └── Makefile
│ ├── mtd-utils --------------------------------- flash裸读写工具集
│ │ ├── Makefile
│ │ └── mtd-utils-1.5.0.tar.bz2
│ ├── reg-tools-1.0.0 --------------------------- 寄存器读写工具
│ │ ├── include
│ │ │ ├── common ---------------------------- 里面是公共头文件
│ │ │ └── utils ----------------------------- 里面是utils的头文件
│ │ ├── Makefile ------------------------------ tools的makefile
│ │ └── source
│ │ ├── common ---------------------------- 里面是公共c源码
│ │ ├── tools ----------------------------- 里面是tools的c源码
│ │ └── utils ----------------------------- 里面是utils的c源码
│ └── udev-164 --------------------------- udev工具集
│ ├── Makefile
│ ├── rootfs
│ │ ├── bin
│ │ └── etc
│ │ └── udev
│ ├── rootfs.tar.bz2
│ └── udev-164.tar.bz2
├── Makefile
└── pc ------------------------------------------ 各种pc上使用工具
├── cramfs_tool ----------------------------- cramf文件系统制作工具
│ ├── Makefile
│ └── util-linux-2.22-rc2.tar.bz2
├── ext4_utils
│ ├── ext4_utils.tar.bz2
│ └── Makefile
├── jffs2_tool ----------------------------- jffs2文件系统制作工具
│ ├── lzo-2.09.tar.gz
│ ├── Makefile
│ └── mtd-utils-1.5.0.tar.bz2
├── lzma_tool ------------------------------ lzma压缩工具
│ ├── lzma-4.32.7.tar.gz
│ └── Makefile
├── mkimage_tool --------------------------- uImage制作工具
│ ├── fastboot.tar.bz2
│ └── Makefile
├── mkyaffs2image ------------------------- yaffs2文件系统制作工具
│ ├── Makefile
│ └── mkyaffs2image.tar.bz2
├── nand_production ------------------------ nand量产工具
│ ├── nand_production_hitool
│ │ └── readme
│ └── nand_production_linux
│ ├── spinand_product
│ └── spinand_readme.txt
├── squashfs4.2 ------------------------- squashfs文件系统制作工具
│ ├── Makefile
│ ├── squashfs4.2.tar.bz2
│ ├── xz-5.0.4.tar.bz2
│ └── zlib-1.2.7.tar.bz2
├── ubifs_config ---------------------------ulifs文件系统配置工具
│ ├── ubi_hi3516cv200.cfg
│ ├── ubi_hi3518ev200.cfg
│ └── ubi_hi3518ev201.cfg
├── uboot_tools---------------------------- uboot镜像制作工具、xls文件及ddr初始化脚本、Fastboot工具
│ ├── Hi3516CV200-DEMO-uboot-DDR3-DDRC200MHz-256MB-16bit-CPU600MHz-AXI200MHz.log
│ ├── Hi3516CV200-DMEB-uboot-DDR3-DDRC200MHz-256MB-16bit-CPU600MHz-AXI200MHz.xls
│ ├── Hi3518EV200-DMEB-uboot-DDR2-DDRC180MHz-64MB-16bit-CPU540MHz-AXI200MHz.log
│ ├── Hi3518EV200-DMEB-uboot-DDR2-DDRC180MHz-64MB-16bit-CPU540MHz-AXI200MHz.xls
│ ├── Hi3518EV201-DMEB-uboot-DDR2-DDRC180MHz-32MB-16bit-CPU540MHz-AXI200MHz.log
│ ├── Hi3518EV201-DMEB-uboot-DDR2-DDRC180MHz-32MB-16bit-CPU540MHz-AXI200MHz.xls
│ ├── mkboot.sh
│ ├── readme
│ ├── reg_info_hi3516cv200.bin
│ ├── reg_info_hi3518ev200.bin
│ └── reg_info_hi3518ev201.bin
└── zlib
├── Makefile
└── zlib-1.2.7.tar.bz2

5. 分析osdrv的目录结构

编译完成osdrv之后,进入osdrv目录:执行命令tree pub 【编译完后的镜像放在/osdrv/pub目录下】
pub
├── bin
│   ├── board_uclibc -------------------- hisiv300编译出的单板工具
│   │   ├── ethtool
│   │   ├── flashcp
│   │   ├── flash_erase
│   │   ├── flash_otp_dump
│   │   ├── flash_otp_info
│   │   ├── gdb-arm-hisiv300-linux
│   │   ├── hifat -------------------------- hifat工具
│   │   │   ├── himount_api.h
│   │   │   ├── how_to_use_[chs].txt
│   │   │   ├── how_to_use_[en].txt
│   │   │   ├── shared
│   │   │   │   ├── himount
│   │   │   │   ├── libfs_lib.so
│   │   │   │   ├── libfuse.so
│   │   │   │   ├── libfuse.so.2
│   │   │   │   ├── libfuse.so.2.8.3
│   │   │   │   ├── libhimount_api.so
│   │   │   │   ├── libsdparm.so
│   │   │   │   ├── libulockmgr.so
│   │   │   │   ├── libulockmgr.so.1
│   │   │   │   └── libulockmgr.so.1.0.1
│   │   │   ├── src
│   │   │   │   └── hifat-1.0-uclibc.tgz
│   │   │   └── static
│   │   │   ├── himount
│   │   │   └── libhimount_api.a
│   │   ├── mtd_debug
│   │   ├── nanddump
│   │   ├── nandtest
│   │   ├── nandwrite
│   │   └── sumtool
│   └── pc 【各种pc工具 】
│   ├── lzma --------------------------------------- lzma压缩工具
│   ├── make_ext4fs -------------------------------- ext4文件系统制作工具
│   ├── mkfs.cramfs -------------------------------- cramf文件系统制作工具
│   ├── mkfs.jffs2 ------------------------------------ jffs2文件系统制作工具
│   ├── mkimage ------------------------------------ uImage制作工具
│   ├── mksquashfs --------------------------------- squashfs文件系统制作工具
│   └── mkyaffs2image100 ------------------------ yaffs2文件系统制作工具
├── image_uclibc --------------------------------------- hisiv300编译出的镜像文件
│   ├── rootfs_hi3518ev200_128k.jffs2 ------------128K jffs2文件系统镜像
│   ├── rootfs_hi3518ev200_256k.jffs2 ----------- 256K jffs2文件系统镜像
│   ├── rootfs_hi3518ev200_2k_4bit.yaffs2 ------ yaffs 文件系统镜像
│   ├── rootfs_hi3518ev200_32M.ext4 ------------ ext4 文件系统镜像
│   ├── rootfs_hi3518ev200_64k.jffs2 ------------- 64K jffs文件系统镜像
│   ├── u-boot-hi3518ev200.bin -------------------- uboot镜像
│   └── uImage_hi3518ev200 ----------------------- kernel镜像
└── rootfs_uclibc.tgz ------------------------ hisiv300编译出的rootfs文件系统

总结:编译整个osdrv的目的是为了生成相应的uboot,kernel,yaffs以下载到开发板上。

01.ubuntu16.06编译安装Hi3518EV200 SDK的更多相关文章

  1. 01.ubuntu14.04安装HI3518EV200 SDK的过程

    转载,侵删 1.海思SDK安装编译 Hi3518EV200_SDK是基于Hi3518EV200_DMEB的软件开发包,包含了在Linux相关应用开发时使用的各种工具及其源代码,是用户开发中最基本的软件 ...

  2. Ubuntu16.04编译安装php

    #Ubuntu16.04编译安装php Ubuntu16.04上面搭建基于Nginx的php服务.Nginx使用apt直接安装的. sudo apt install nginx php的安装部署步骤主 ...

  3. Ubuntu16.04编译安装tensorflow,2018最新血泪踩坑之后的全面总结!绝对成功!【转】

    本文转载自:https://blog.csdn.net/pzh11001/article/details/79683133 大家好,我是 (深度学习硬件DIY总群)(719577294)群主:    ...

  4. ubuntu16.04编译安装mysql-boost-5.7.21并编译成php扩展测试与使用

    我之前的文章已经改造了自定义MVC框架中的工具类(验证码,图片上传,图像处理,分类)4个类,接下来,就要改造模型类,模型类肯定要连接数据库,由于我的Ubuntu Linux是裸装的php(目前只编译了 ...

  5. ubuntu16.04编译安装imu_tk

    imu_tk代码地址 https://bitbucket.org/alberto_pretto/imu_tk 安装依赖项 sudo apt-get install build-essential cm ...

  6. ubuntu16.04 编译安装mysql5.7.x,以及配置使用

    編譯與安裝: 源码下载地址:http://dev.mysql.com/downloads/mysql/    选择Generic Linux (Architecture Independent), C ...

  7. 在ubuntu16.04编译安装httperf

    在网上偶尔看到httperf可以在测试中使用.网上苦苦找不到ubuntu编译安装的方法.自己琢磨了一下,现在总结如下: apt install httperf vim /etc/security/li ...

  8. Ubuntu16.04编译安装Redis Desktop Manager

    Redis Desktop Manager for OSX&Ubuntu 的安装版是收费的, 如果自己编译则是免费的. 安装过程参考官方提供的文档  http://docs.redisdesk ...

  9. ubuntu16.04编译安装mysql5.7

    1.安装编译依赖 sudo apt-get install make cmake gcc g++ bison libncurses5-dev build-essential 2.下载mysql5.7源 ...

随机推荐

  1. os.mkdir()和os.path.join()的区别

    os.path.join("D:\","test.txt")结果是D:\test.txt,并且在我们往里面写东西,然后保存,在这个目录下会生成这个文件,但是如果 ...

  2. python-day33--Process类中的方法及属性

    p.daemon = True -->守护进程,守护进程不可以再有子进程,并且主进程死守护进程就死,要写在p.start()之前 p.join() ---> 主进程等子进程执行完 之后再结 ...

  3. 在MAC下安装一些软件时提示"来自身份不明开发者"

    在MAC下安装一些软件时提示"来自身份不明开发者",其实这是MAC新系统启用了新的安全机制.默认只信任 Mac App Store 下载的软件和拥有开发者 ID 签名的应用程序.换 ...

  4. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  5. SVM学习(五):松弛变量与惩罚因子

    https://blog.csdn.net/qll125596718/article/details/6910921 1.松弛变量 现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空间而 ...

  6. jsp jsp传统标签开发

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. IO文件相关操作

    IO编程 IO 即Input/Output  input stream 就是数据从外面(磁盘.网络)流进内存,output stream 就是数据从内存流到外面去. 通常cpu 和 内存的速度远远高于 ...

  8. DevExpress v17.2新版亮点—DevExtreme篇(三)

    用户界面套包DevExpress DevExtreme v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme v17.2 的New Color Sche ...

  9. 使用存储过程非常慢,但是直接执行SQL很快

    使用存储过程非常慢,但是直接执行SQL很快. 了解基本情况后,初步判断是参数嗅探问题 在对应的SQL语句后面使用 OPTION(OPTIMIZE FOR UNKNOWN) 参考了 http://www ...

  10. js写的一个HashMap

    1.脚本 /** * 模拟HashMap */ function HashMap(){ //定义长度 var length = 0; //创建一个对象 var obj = new Object(); ...