1. 程式人生 > >2、ubuntu16.06安裝Hi3518EV200 SDK

2、ubuntu16.06安裝Hi3518EV200 SDK

5.0 x86 sdk linux工具 glib 解決 是我 4.4 util

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

進入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以下載到開發板上。

2、ubuntu16.06安裝Hi3518EV200 SDK