2、ubuntu16.06安裝Hi3518EV200 SDK
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