Linux / 嵌入式 · 2021-12-01

海思官方SDK Hi3516EV200_SDK_V1.0.1.0的编译教程

前言:

关于海思HI3516EV200的SDK,官方有2个版本,一个是linux,一个是liteos,这里根据之前群友提供的sdk整理总结下,以防大家下载到错误的版本

<span class="hljs-attribute">linux</span> sdk 版本为 Hi3516EV200R001C01SPC010:
链接: https://pan.baidu.com/s/1bJRVcm9DLD4RIL4zCzWMXA 
提取码:<span class="hljs-number">702k</span>
<span class="hljs-attribute">liteos</span> sdk 版本为Hi3516EV200R002C05SPC010:
链接: https://pan.baidu.com/s/1LnN-E6ekdS1iryi3x89hNw  
提取码:prkb

环境

  1. ubuntu18.04 amd64

    dopi<a class="at-link" title="@ubuntu" href="https://github.com/ubuntu" target="_blank" rel="noopener">@ubuntu</a>
    <span class="hljs-symbol">:~</span>$ cat /proc/version
    Linux version <span class="hljs-number">5.3</span>.<span class="hljs-number">0</span>-<span class="hljs-number">62</span>-generic (buildd<a class="at-link" title="@lcy01" href="https://github.com/lcy01" target="_blank" rel="noopener">@lcy01</a>-amd64-<span class="hljs-number">004</span>) (gcc version <span class="hljs-number">7.5</span>.<span class="hljs-number">0</span> (Ubuntu <span class="hljs-number">7.5</span>.<span class="hljs-number">0</span>-<span class="hljs-number">3</span>ubuntu1~<span class="hljs-number">18.04</span>)) <span class="hljs-comment">#56~18.04.1-Ubuntu SMP Wed Jun 24 16:17:03 UTC 2020</span>
  2. 海思官方Linux SDK


解决问题的思路

  1. 遇到错误不要着急搜索引擎搜索,往往在出错文件的位置,会有一个readme.txt。 会告诉依赖项,以及解决方法。

  2. 遇到tar解压报错,估计你图快,windows下载后,拷贝到ubuntu中,文件会出错,google也救不了,这时候静下心来,wget重新慢慢下载,再编译试试。

  3. 提示系统命令缺失,可直接搜索。


参考文件

1.Hi3516EV200_SDK_V1.0.1.0\package\osdrv\readme.cn

<span class="hljs-number">1.</span>osdrv 顶层 Makefile 使用说明
本目录下的编译脚本支持 arm-himix100-linux工具链对应uclibc库。具体命令如下(以hi3516ev200举例)

注意:
    由于开源工具整改,部分开源工具不再提供源码包,客户编译OSDRV时需要自行下载:
    a:linux<span class="hljs-number">-4.9</span>
<span class="hljs-number">.37</span>.tar.gz (https:<span class="hljs-regexp">//</span>www.kernel.org<span class="hljs-regexp">/pub/</span>)
        将下载的 linux<span class="hljs-number">-4.9</span>
<span class="hljs-number">.37</span>.tar.gz 存放到 osdrv的opensource/kernel目录中

    b:yaffs2utils<span class="hljs-number">-0.2</span>
<span class="hljs-number">.9</span>.tar.gz (https:<span class="hljs-regexp">//gi</span>thub.com/dorigom/yaffs2utils/releases)
        将下载的 yaffs2utils<span class="hljs-number">-0.2</span>
<span class="hljs-number">.9</span>.tar.gz 存放到osdrv的tools<span class="hljs-regexp">/pc/mkyaffs2image/</span>目录中

    c:gdb<span class="hljs-number">-7.9</span>
<span class="hljs-number">.1</span>.tar.gz  (http:<span class="hljs-regexp">//</span>ftp.gnu.org<span class="hljs-regexp">/gnu/gdb/</span>)
        将下载的 gdb<span class="hljs-number">-7.9</span>
<span class="hljs-number">.1</span>.tar.gz 存放到 osdrv的tools<span class="hljs-regexp">/board/gdb/</span>目录中

    d:ncurses<span class="hljs-number">-6.0</span>.tar.gz  ( http:<span class="hljs-regexp">//</span>ftp.gnu.org<span class="hljs-regexp">/gnu/ncurses/</span>)
        将下载的 ncurses<span class="hljs-number">-6.0</span>.tar.gz 存放到 osdrv的tools<span class="hljs-regexp">/board/gdb/</span>目录中

    e:util-linux<span class="hljs-number">-2.31</span>.tar.gz (https:<span class="hljs-regexp">//</span>www.kernel.org/pub/linux/utils/util-linux/v2<span class="hljs-number">.31</span>)

        将下载的 util-linux<span class="hljs-number">-2.31</span>.tar.gz 存放到 osdrv的tools<span class="hljs-regexp">/pc/cramfs_tool/</span>目录中

(<span class="hljs-number">1</span>)编译整个osdrv目录:
    注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。
          从linux开源社区下载v4<span class="hljs-number">.9</span>
<span class="hljs-number">.37</span>版本的内核:
         <span class="hljs-number">1</span>)进入网站:www.kernel.org
         <span class="hljs-number">2</span>)选择HTTP协议资源的https:<span class="hljs-regexp">//</span>www.kernel.org<span class="hljs-regexp">/pub/</span>选项,进入子页面
         <span class="hljs-number">3</span>)选择linux/菜单项,进入子页面
         <span class="hljs-number">4</span>)选择kernel/菜单项,进入子页面
         <span class="hljs-number">5</span>)选择v4.x/菜单项,进入子页面
         <span class="hljs-number">6</span>)下载linux<span class="hljs-number">-4.9</span>
<span class="hljs-number">.37</span>.tar.gz (或者linux<span class="hljs-number">-4.9</span>
<span class="hljs-number">.37</span>.tar.xz)到osdrv/opensource/kernel目录下     

    make all

注意:由于Makefile中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用make all编译;
        但可单独编译uboot,kernel;

    可以传如下参数:
    a, BOOT_MEDIA:spi(<span class="hljs-keyword">default</span>) <span class="hljs-keyword">or</span> emmc
    b, CHIP:hi3516ev200(<span class="hljs-keyword">default</span>) <span class="hljs-keyword">or</span> hi3516ev300 <span class="hljs-keyword">or</span> hi3518ev300 <span class="hljs-keyword">or</span> hi3516dv200
    c, 如果客户想要更换可以使用TARGET_XLSM=*.xlsm来指定所需要的u-boot表格文件

(<span class="hljs-number">2</span>)清除整个osdrv目录的编译文件:

    make OSDRV_CROSS=arm-himix100-linux clean
(<span class="hljs-number">3</span>)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:

    make OSDRV_CROSS=arm-himix100-linux distclean

(<span class="hljs-number">4</span>)单独编译kernel:
    注意:单独编译内核之前请先阅读osdrv/opensource/kernel下的readme_cn.txt说明。

    待进入内核源代码目录后,执行以下操作

    cp arch/arm/configs/hi3516ev200_full_defconfig  .config
    (emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig  .config)
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage

(<span class="hljs-number">5</span>)单独编译模块:
    待进入内核源代码目录后,执行以下操作

    cp arch/arm/configs/hi3516ev200_full_defconfig  .config
    (emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig  .config)
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- modules

(<span class="hljs-number">6</span>)单独编译uboot:
    注意:发布包默认按照DMEB板的配置发布,如果客户单板和DEMB板不一致,需要根据客户自己的单板环境修改uboot表格才能使用,否则可能导致uboot无法启动或者其他问题。

    待进入boot源代码目录后,执行以下操作
    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_defconfig
    (emmc启动时执行如下操作:make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_emmc_defconfig)

    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- -j <span class="hljs-number">20</span>

    make -C ..<span class="hljs-regexp">/../</span>../tools/pc/hi_gzip

    cp ..<span class="hljs-regexp">/../</span>..<span class="hljs-regexp">/tools/pc/hi_gzip/bin/gzip arch/arm/cpu/armv7/hi3516ev200/hw_compressed/</span> -rf 

    Windowns下进入到osdrv<span class="hljs-regexp">/tools/pc/uboot_tools/</span>目录下打开对应单板的Excel文件,在main标签中点击<span class="hljs-string">"Generate reg bin file"</span>按钮,生成reg_info.bin即为对应平台的表格文件。
    从osdrv/tools/pc/uboot_tools目录拷贝reg_info.bin到boot源代码目录,重命名为.reg
    cp ..<span class="hljs-regexp">/../</span>../tools/pc/uboot_tools/reg_info.bin .reg

    make ARCH=arm CROSS_COMPILE=arm-himix100-linux- u-boot-z.bin

    opensource/uboot/u-boot<span class="hljs-number">-2016.11</span>下生成的u-boot-hi3516ev200.bin即为可用的u-boot镜像

(<span class="hljs-number">7</span>)制作文件系统镜像:
在osdrv<span class="hljs-regexp">/pub/</span>中有已经编译好的文件系统,因此无需再重复编译文件系统,只需要根据单板上flash的规格型号制作文件系统镜像即可。

    SPI NOR Flash使用jffs2格式的镜像,制作jffs2镜像时,需要用到SPI NOR Flash的块大小。这些信息会在uboot启动时
    会打印出来。建议使用时先直接运行mkfs.jffs2工具,根据打印信息填写相关参数。
    下面以块大小为<span class="hljs-number">64</span>KB为例:
    osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e <span class="hljs-number">0x10000</span> -o osdrv/pub/rootfs_uclibc_64k.jffs2

        Nand Flash使用yaffs2格式的镜像,制作yaffs2镜像时,需要用到nand flash的pagesize和ecc。这些信息会在uboot启动时会打
    印出来。建议使用时先直接运行mkyaffs2image工具,根据打印信息填写相关参数。
    下面以SPI NAND的<span class="hljs-number">2</span>KB pagesize、<span class="hljs-number">4</span>bit ecc为例:
        osdrv/pub/bin/pc/mkyaffs2image100 osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_4bit.yaffs2 <span class="hljs-number">1</span> <span class="hljs-number">2</span>

        Nand Flash使用UBI文件系统,在osdrv/tools/pc/ubi_sh下提供mkubiimg.sh工具用于制作UBI文件系统,需要用到Nand
    Flash的pagesize、blocksize和UBIFS分区的大小。
    以<span class="hljs-number">2</span>KB pagesize, <span class="hljs-number">128</span>KB blocksize和UBI文件系统分区大小<span class="hljs-number">32</span>MB为例:

    mkubiimg.sh hi3516ev200 <span class="hljs-number">2</span>k <span class="hljs-number">128</span>k osdrv/pub/rootfs <span class="hljs-number">32</span>M osdrv/pub/bin/pc

    osdrv/pub/rootfs是根文件系统文件夹目录
    osdrv/pub/bin/pc是制作UBI文件系统镜像的工具目录
        生成的rootfs_hi3516ev200_2k_128k_32M.ubifs,就是最终用于烧写的UBI文件系统镜像。

<span class="hljs-number">2.</span> 镜像存放目录说明
编译完的image,rootfs等存放在osdrv/pub目录下
pub
├─ bin

│   ├─ board_uclibc -------------------------------------------- himix100编译出的单板用工具
│   │   ├── ethtool
│   │   ├── flashcp
│   │   ├── flash_erase
│   │   ├── flash_otp_dump
│   │   ├── flash_otp_info
│   │   ├── gdb-arm-himix100-linux
│   │   ├── mtd_debug
│   │   ├── mtdinfo
│   │   ├── nanddump
│   │   ├── nandtest
│   │   ├── nandwrite
│   │   ├── sumtool
│   │   ├── ubiattach
│   │   ├── ubicrc32
│   │   ├── ubidetach
│   │   ├── ubiformat
│   │   ├── ubimkvol
│   │   ├── ubinfo
│   │   ├── ubinize
│   │   ├── ubirename
│   │   ├── ubirmvol
│   │   ├── ubirsvol
│   │   └── ubiupdatevol
│   └─ pc
│       ├── lzma
│       ├── mkfs.cramfs
│       ├── mkfs.jffs2
│       ├── mkfs.ubifs
│       ├── mkimage
│       ├── mksquashfs
│       └── ubinize
├─image_uclibc ------------------------------------------------- himix100编译出的镜像文件
│   ├── uImage_hi3516ev200 ----------------------------------------- kernel镜像
│   ├── u-boot-hi3516ev200.bin ------------------------------------- u-boot镜像
│   ├── rootfs_hi3516ev200_64k.jffs2 ------------------------------- <span class="hljs-number">64</span>K jffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_128k.jffs2 ------------------------------ <span class="hljs-number">128</span>K jffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_256k.jffs2 ------------------------------ <span class="hljs-number">256</span>K jffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_2k_4bit.yaffs2 -------------------------- yaffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_2k_24bit.yaffs2 ------------------------- yaffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_4k_4bit.yaffs2 -------------------------- yaffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_4k_24bit.yaffs2 ------------------------- yaffs2 文件系统镜像
│   ├── rootfs_hi3516ev200_2k_128k_32M.ubifs------------------------ <span class="hljs-number">2</span>k <span class="hljs-number">128</span>k UBI 文件系统镜像
│   └── rootfs_hi3516ev200_4k_256k_50M.ubifs------------------------ <span class="hljs-number">4</span>k <span class="hljs-number">256</span>k UBI 文件系统镜像
│
├─ rootfs.ubiimg ----------------------------------------------- UBIFS根文件系统
├─ rootfs_uclibc.tgz  ------------------------------------------- himix100编译出的rootfs文件系统

<span class="hljs-number">3.</span>osdrv目录结构说明:
osdrv
├─Makefile ------------------------------ osdrv目录编译脚本
├─tools --------------------------------- 存放各种工具的目录
│  ├─board ------------------------------ 各种单板上使用工具
│  │  ├─ethtools ----------------------- ethtools工具
│  │  ├─reg-tools<span class="hljs-number">-1.0</span>
<span class="hljs-number">.0</span> ----------------- 寄存器读写工具
│  │  ├─eudev<span class="hljs-number">-3.2</span>
<span class="hljs-number">.7</span> ------------------------ udev工具集
│  │  ├─mtd-utils ----------------------- flash裸读写工具集
│  │  ├─gdb ----------------------------- gdb工具
│  │  └─e2fsprogs ----------------------- mkfs工具集
│  └─pc ---------------------------------- 各种pc上使用工具
│      ├─jffs2_tool----------------------- jffs2文件系统制作工具
│      ├─cramfs_tool --------------------- cramfs文件系统制作工具
│      ├─squashfs4<span class="hljs-number">.3</span> --------------------- squashfs文件系统制作工具
│      ├─nand_production ----------------- nand量产工具
│      ├─lzma_tool ----------------------- lzma压缩工具
│      ├─zlib ---------------------------- zlib工具
│      ├─mkyaffs2image -- ---------------- yaffs2文件系统制作工具
│      └─uboot_tools ----------------------uboot镜像制作工具、xls文件及ddr初始化脚本、reg_info.bin制作工具
├─pub ----------------------------------- 存放各种镜像的目录
│  ├─image_uclibc ------------------------ 基于himix100工具链编译,可供FLASH烧写的映像文件,包括uboot、内核、文件系统
│  ├─bin -------------------------------- 各种未放入根文件系统的工具
│  │  ├─pc ------------------------------ 在pc上执行的工具
│  │  ├─board_uclibc --------------------- 基于himix100工具链编译,在单板上执行的工具
│  └─rootfs_uclibc.tgz ------------------- 基于himix100工具链编译的根文件系统
├─opensource----------------------------- 存放各种开源源码目录
│  ├─busybox ---------------------------- 存放busybox源代码的目录
│  ├─uboot ------------------------------ 存放uboot及安全boot源代码的目录
│  └─kernel ----------------------------- 存放kernel源代码的目录
└─rootfs_scripts ------------------------- 存放根文件系统制作脚本的目录

<span class="hljs-number">4.</span>注意事项
(<span class="hljs-number">1</span>)在windows下复制源码包时,linux下的可执行文件可能变为非可执行文件,导致无法编译使用;u-boot或内核下编译后,会有很多符号链接文件,在windows下复制这些源码包, 会使源码包变的巨大,因为linux下的符号链接文件变为windows下实实在在的文件,因此源码包膨胀。因此使用时请注意不要在windows下复制源代码包。
(<span class="hljs-number">2</span>)使用某一工具链编译后,如果需要更换工具链,请先将原工具链编译文件清除,然后再更换工具链编译。
(<span class="hljs-number">3</span>)编译板端软件
    a.此芯片具有浮点运算单元和neon。文件系统中的库是采用软浮点和neon编译而成,因此请用户注意,所有此芯片板端代码编译时需要在Makefile里面添加选项-mcpu=cortex-a7、-mfloat-abi=softfp和-mfpu=neon-vfpv4。
如:
对于A7:
    CFLAGS += -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-<span class="hljs-keyword">loop</span>-optimizations
    CXXFlAGS +=-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-<span class="hljs-keyword">loop</span>-optimizations
其中CXXFlAGS中的XX根据用户Makefile中所使用宏的具体名称来确定,e.g:CPPFLAGS。
  1. 提前搭建好交叉编译环境:arm-himix100-linux-gcc

    kernel 下载

    进入 osdrv/opensource/kernel/目下载linuxlinux-4.9.37.tar.gz
    cd osdrv/opensource/kernel/
    wget <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/mirrors.edge.kernel.org/pub</span>
    <span class="hljs-regexp">/linux/kernel</span>
    <span class="hljs-regexp">/v4.x/linux</span>-<span class="hljs-number">4.9</span>.<span class="hljs-number">37</span>.tar.gz
    该方法下载很慢,建议迅雷下载,拷贝到osdrv/opensource/kernel/下 执行log:
dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package$ cd osdrv/opensource/kernel/
dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv/opensource/kernel$ wget <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/mirrors.edge.kernel.org/pub</span>
<span class="hljs-regexp">/linux/kernel</span>
<span class="hljs-regexp">/v4.x/linux</span>-<span class="hljs-number">4.9</span>.<span class="hljs-number">37</span>.tar.gz
--<span class="hljs-number">2020</span>-<span class="hljs-number">06</span>-<span class="hljs-number">29</span> <span class="hljs-number">06</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">13</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">44</span>--  <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/mirrors.edge.kernel.org/pub</span>
<span class="hljs-regexp">/linux/kernel</span>
<span class="hljs-regexp">/v4.x/linux</span>-<span class="hljs-number">4.9</span>.<span class="hljs-number">37</span>.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... <span class="hljs-number">147.75</span>.<span class="hljs-number">95.133</span>, <span class="hljs-number">2604</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">1380</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">3000</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">1500</span>
<span class="hljs-symbol">:</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">1</span>
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)<span class="hljs-params">|147.75.95.133|</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">443</span>... connected.
HTTP request sent, awaiting response... <span class="hljs-number">200</span> OK
<span class="hljs-symbol">Length:</span> <span class="hljs-number">141696654</span> (<span class="hljs-number">135</span>M) [application/x-gzip]
Saving <span class="hljs-symbol">to:</span> ‘linux-<span class="hljs-number">4.9</span>.<span class="hljs-number">37</span>.tar.gz’

<span class="hljs-meta">linux-4.9.37.tar.gz                        1%[></span>                                                                                ]   <span class="hljs-number">2.32</span>M  <span class="hljs-number">8.69</span>KB/s    eta <span class="hljs-number">4</span>h <span class="hljs-number">18</span>m 

下载yaffs2utils-0.2.9.tar.gz

<span class="hljs-attribute">cd</span> osdrv/tools/pc/mkyaffs2image/
wget --<span class="hljs-literal">no</span>-check-certificate https://codeload.github.com/dorigom/yaffs2utils/tar.gz/0.2.9 -O yaffs2utils-<span class="hljs-number">0</span>.<span class="hljs-number">2</span>.<span class="hljs-number">9</span>.tar.gz 

PS: wget指令下载https有些wget版本需要跳过https才能下载成功,使用–no-check-certificate 跳过,默认下载的文件可以使用-O参数修改文件名 执行log:

$ wget <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/codeload.github.com/dorigom</span>
<span class="hljs-regexp">/yaffs2utils/tar</span>.gz/<span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>
--<span class="hljs-number">2020</span>-<span class="hljs-number">06</span>-<span class="hljs-number">29</span> <span class="hljs-number">06</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">23</span>
<span class="hljs-symbol">:</span>09--  <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/codeload.github.com/dorigom</span>
<span class="hljs-regexp">/yaffs2utils/tar</span>.gz/<span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>
Resolving codeload.github.com (codeload.github.com)... <span class="hljs-number">13.229</span>.<span class="hljs-number">189.0</span>
Connecting to codeload.github.com (codeload.github.com)<span class="hljs-params">|13.229.189.0|</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">443</span>... connected.
HTTP request sent, awaiting response... <span class="hljs-number">200</span> OK
<span class="hljs-symbol">Length:</span> unspecified [application/x-gzip]
Saving <span class="hljs-symbol">to:</span> ‘<span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>’

<span class="hljs-meta">0.2.9                   [   <=></span>              ]  <span class="hljs-number">38.95</span>K  <span class="hljs-number">82.5</span>KB/s    in <span class="hljs-number">0</span>.<span class="hljs-number">5</span>s    

<span class="hljs-number">2020</span>-<span class="hljs-number">06</span>-<span class="hljs-number">29</span> <span class="hljs-number">06</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">23</span>
<span class="hljs-symbol">:</span>
<span class="hljs-number">11</span> (<span class="hljs-number">82.5</span> KB/s) - ‘<span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>’ saved [<span class="hljs-number">39880</span>]

下载gdb-7.9.1.tar.gz

cd osdrv/tools/board/gdb/
wget <span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/ftp.gnu.org/gnu</span>
<span class="hljs-regexp">/gdb/gdb</span>-<span class="hljs-number">7.9</span>.<span class="hljs-number">1</span>.tar.gz

下载ncurses-6.0.tar.gz

cd osdrv/tools/board/gdb/
wget <span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/ftp.gnu.org/gnu</span>
<span class="hljs-regexp">/ncurses/ncurses</span>-<span class="hljs-number">6.0</span>.tar.gz

下载util-linux-2.31.tar.gz

osdrv/tools/pc/cramfs_tool/
wget <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/mirrors.edge.kernel.org/pub</span>
<span class="hljs-regexp">/linux/utils</span>
<span class="hljs-regexp">/util-linux/v</span>2.<span class="hljs-number">31</span>/util-linux-<span class="hljs-number">2.31</span>.tar.gz

编译:

dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package$ cd osdrv/
dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv$ make all
  • 编译错误:/bin/sh: 1: pushd: not found

    解决方法: 在dash模式下,执行:sudo dpkg-reconfigure dash,弹出的串口选择NO,执行完成后,输入exit退出

    dopi<a class="at-link" title="@ubuntu" href="https://github.com/ubuntu" target="_blank" rel="noopener">@ubuntu</a>
    <span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv$ cd /bin
    dopi<a class="at-link" title="@ubuntu" href="https://github.com/ubuntu" target="_blank" rel="noopener">@ubuntu</a>
    <span class="hljs-symbol">:/bin</span>$ sh
    $ sudo dpkg-reconfigure dash 
    [sudo] password <span class="hljs-keyword">for</span> <span class="hljs-symbol">dopi:</span> 
    Removing <span class="hljs-string">'diversion of /bin/sh to /bin/sh.distrib by dash'</span>
    Adding <span class="hljs-string">'diversion of /bin/sh to /bin/sh.distrib by bash'</span>
    Removing <span class="hljs-string">'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'</span>
    Adding <span class="hljs-string">'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'</span>
    $ sh
    sh-<span class="hljs-number">4.4</span>$ exit

    在这里插入图片描述
  • 编译错误2:缺各种依赖项库
<span class="hljs-symbol">configure:</span> <span class="hljs-symbol">WARNING:</span> cannot find uuid library required <span class="hljs-keyword">for</span> mkfs.ubifs
<span class="hljs-symbol">configure:</span> mtd-utils can optionally be built without mkfs.ubifs
<span class="hljs-symbol">configure:</span> <span class="hljs-symbol">WARNING:</span> cannot find ZLIB library required <span class="hljs-keyword">for</span> mkfs programs
<span class="hljs-symbol">configure:</span> mtd-utils can optionally be built without mkfs.ubifs
<span class="hljs-symbol">configure:</span> mtd-utils can optionally be built without mkfs.jffs2
<span class="hljs-symbol">configure:</span> <span class="hljs-symbol">error:</span> missing one <span class="hljs-keyword">or</span> more dependencies
<span class="hljs-symbol">Makefile:</span>
<span class="hljs-number">45</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/jffs2_tool/tmp/sbin/mkfs.jffs2'</span> failed
make[<span class="hljs-number">1</span>]: *** [<span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/tools</span>
<span class="hljs-regexp">/pc/jffs</span>2_tool/tmp/sbin/mkfs.jffs2] Error <span class="hljs-number">1</span>
make[<span class="hljs-number">1</span>]: Leaving directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/jffs2_tool'</span>
<span class="hljs-symbol">Makefile:</span>
<span class="hljs-number">342</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'hipctools'</span> failed
<span class="hljs-symbol">make:</span> *** [hipctools] Error <span class="hljs-number">2</span>

解决方法:osdrv/tools/pc/jffs2_tool/的readme_cn.txt ,写得特别详细,不得不佩服海思的工程师。

dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv$ cd tools/pc/jffs2_tool/
dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv/tools/pc/jffs2_tool$ ls
lzo-<span class="hljs-number">2.09</span>.tar.gz  Makefile  mtd-utils-<span class="hljs-number">2.0</span>.<span class="hljs-number">2</span>.tar.bz2  readme_cn.txt  readme_en.txt  tmp
dopi@ubuntu<span class="hljs-symbol">:/usr/dopi/Hi3516EV200_SDK_V1</span>.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/package/osdrv/tools/pc/jffs2_tool$ cat readme_cn.txt 
一、mtd-utils2.<span class="hljs-number">0</span>.<span class="hljs-number">2</span>依赖以下几个库,以ubuntu为例,安装方式请参考下面命令:
    sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config
二、由于mtd-utils2.<span class="hljs-number">0</span>.<span class="hljs-number">2</span>通过pkg-config工具检查各个库是否正常安装,因此请参考如下方式设置pkg-config工具搜索路径:
    export PKG_CONFIG_PATH=<span class="hljs-string">"$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"</span>
三、mtd-utils2.<span class="hljs-number">0</span>.<span class="hljs-number">2</span>依赖于automake1.<span class="hljs-number">15.1</span>版本,请参考如下方式安装automake1.<span class="hljs-number">15.1</span>版本:
    <span class="hljs-number">1</span>、删除原有automake版本
        sudo apt-get autoremove automake
    <span class="hljs-number">2</span>、下载<span class="hljs-number">1.15</span>.<span class="hljs-number">1</span>版本
        <span class="hljs-number">1</span>)Windows系统中使用浏览器访问automake工程url并下载对应源码包:
            <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/lists.gnu.org/archive</span>
<span class="hljs-regexp">/html/info</span>-gnu/<span class="hljs-number">2017</span>-<span class="hljs-number">06</span>/msg00007.html
        <span class="hljs-number">2</span>)linux系统中可以使用下面命令下载:
            wget <span class="hljs-symbol">ftp:</span>/<span class="hljs-regexp">/ftp.gnu.org/gnu</span>
<span class="hljs-regexp">/automake/automake</span>-<span class="hljs-number">1.15</span>.<span class="hljs-number">1</span>.tar.gz
    <span class="hljs-number">3</span>、编译安装automake1.<span class="hljs-number">15.1</span>
        tar zxvf automake-<span class="hljs-number">1.15</span>.<span class="hljs-number">1</span>.tar.gz
        cd automake-<span class="hljs-number">1.15</span>.<span class="hljs-number">1</span>/
        ./configure
        make
        make install
四、编译mtd-utils2.<span class="hljs-number">0</span>.<span class="hljs-number">2</span>

sudo apt-get <span class="hljs-keyword">install</span> -y zlib1g-dev liblzo2-dev <span class="hljs-keyword">uuid</span>-dev pkg-config
<span class="hljs-keyword">export</span> PKG_CONFIG_PATH=<span class="hljs-string">"$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"</span>
wget <span class="hljs-keyword">ftp</span>://ftp.gnu.org/gnu/automake/automake<span class="hljs-number">-1.15</span>
<span class="hljs-number">.1</span>.tar.gz
tar zxvf automake<span class="hljs-number">-1.15</span>
<span class="hljs-number">.1</span>.tar.gz
cd automake<span class="hljs-number">-1.15</span>
<span class="hljs-number">.1</span>
sudo ./configure
sudo make 
sudo make <span class="hljs-keyword">install</span>
  • 执行automake1.15.1 的./configure报错
opi@ubuntu:/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/jffs2_tool/automake-1.15.1$ ./configure
checking whether make supports nested variables... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/<span class="hljs-keyword">bin</span>/<span class="hljs-keyword">install</span> -c
checking whether <span class="hljs-keyword">build</span> environment <span class="hljs-keyword">is</span> sane... yes
checking <span class="hljs-keyword">for</span> a <span class="hljs-keyword">thread</span>-<span class="hljs-keyword">safe</span> mkdir -p... /<span class="hljs-keyword">bin</span>/mkdir -p
checking <span class="hljs-keyword">for</span> gawk... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> mawk... mawk
checking whether make <span class="hljs-keyword">sets</span> $(MAKE)... yes
checking whether <span class="hljs-keyword">ln</span> -s works... yes
checking <span class="hljs-keyword">for</span> perl... /usr/<span class="hljs-keyword">bin</span>/perl
checking <span class="hljs-keyword">for</span> tex... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> yacc... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> byacc... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> bison... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> lex... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> flex... <span class="hljs-keyword">no</span>
checking whether autoconf <span class="hljs-keyword">is</span> installed... <span class="hljs-keyword">no</span>
configure: <span class="hljs-keyword">error</span>: Autoconf <span class="hljs-number">2.65</span> <span class="hljs-keyword">or</span> better <span class="hljs-keyword">is</span> required.

解决方法:

<span class="hljs-attribute">wget</span> http://ftp.gnu.org/gnu/autoconf/autoconf-2.65.tar.gz

tar xzf autoconf-<span class="hljs-number">2</span>.<span class="hljs-number">65</span>.tar.gz

cd autoconf-<span class="hljs-number">2</span>.<span class="hljs-number">65</span>

 sudo ./configure

sudo make 
sudo make install
  • 安装autoconf-2.65报错:缺少:GNU M4 1.4.6
dopi@ubuntu:/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/jffs2_tool/autoconf-2.65$ ./configure
checking for a BSD-compatible install... /usr/<span class="hljs-keyword">bin</span>/<span class="hljs-keyword">install</span> -c
checking whether <span class="hljs-keyword">build</span> environment <span class="hljs-keyword">is</span> sane... yes
checking <span class="hljs-keyword">for</span> a <span class="hljs-keyword">thread</span>-<span class="hljs-keyword">safe</span> mkdir -p... /<span class="hljs-keyword">bin</span>/mkdir -p
checking <span class="hljs-keyword">for</span> gawk... <span class="hljs-keyword">no</span>
checking <span class="hljs-keyword">for</span> mawk... mawk
checking whether make <span class="hljs-keyword">sets</span> $(MAKE)... yes
checking whether /<span class="hljs-keyword">bin</span>/sh -n <span class="hljs-keyword">is</span> known <span class="hljs-keyword">to</span> work... yes
checking <span class="hljs-keyword">for</span> <span class="hljs-keyword">characters</span> that cannot appear <span class="hljs-keyword">in</span> <span class="hljs-keyword">file</span> names... <span class="hljs-keyword">none</span>
checking whether directories can have trailing spaces... yes
checking <span class="hljs-keyword">for</span> expr... /usr/<span class="hljs-keyword">bin</span>/expr
checking <span class="hljs-keyword">for</span> GNU M4 that supports accurate traces... configure: <span class="hljs-keyword">error</span>: <span class="hljs-keyword">no</span> acceptable m4 could be <span class="hljs-keyword">found</span> <span class="hljs-keyword">in</span> $PATH.
GNU M4 <span class="hljs-number">1.4</span>
<span class="hljs-number">.6</span> <span class="hljs-keyword">or</span> later <span class="hljs-keyword">is</span> <span class="hljs-keyword">required</span>; 1.4.13 is recommended

解决方法:

<span class="hljs-attribute">wget</span> http://ftp.gnu.org/gnu/m4/m4-1.4.13.tar.gz
tar m4-<span class="hljs-number">1</span>.<span class="hljs-number">4</span>.<span class="hljs-number">13</span>.tar.gz
cd m4-<span class="hljs-number">1</span>.<span class="hljs-number">4</span>.<span class="hljs-number">13</span>
 sudo ./configure 
 sudo make 
 sudo make install

连环嵌套报错解决之后,回头重新编译,安装autoconf-2.65,automake1.15.1。以上解决了mtd-utils的几个依赖项文件,安装完成。

下载mtd-utils2.0.2

访问:ftp://ftp.infradead.org的 /pub/mtd-utils/ 目录,找到mtd-utils2.0.2.tar下载。 执行命令:

 tar xjvf mtd-utils-2.0.2.tar.bz2 
 <span class="hljs-built_in">cd</span> mtd-utils-2.0.2/
sudo ./configure 
sudo make
sudo make install

回头回到目录osdrv目录下,执行 make all 文件。

  • util-linux-2.31/tar错误:
    <span class="hljs-symbol">gzip:</span> <span class="hljs-symbol">stdin:</span> decompression OK, trailing garbage ignored
    <span class="hljs-symbol">tar:</span> Child returned status <span class="hljs-number">2</span>
    <span class="hljs-symbol">tar:</span> Error is <span class="hljs-keyword">not</span> <span class="hljs-symbol">recoverable:</span> exiting now
    <span class="hljs-symbol">Makefile:</span>
    <span class="hljs-number">71</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/cramfs_tool/tmp/util-linux-2.31/tar'</span> failed
    make[<span class="hljs-number">1</span>]: *** [<span class="hljs-regexp">/usr/dopi</span>
    <span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
    <span class="hljs-regexp">/osdrv/tools</span>
    <span class="hljs-regexp">/pc/cramfs</span>_tool/tmp/util-linux-<span class="hljs-number">2.31</span>/tar] Error <span class="hljs-number">2</span>
    make[<span class="hljs-number">1</span>]: Leaving directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/pc/cramfs_tool'</span>
    <span class="hljs-symbol">Makefile:</span>
    <span class="hljs-number">342</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'hipctools'</span> failed
    <span class="hljs-symbol">make:</span> *** [hipctools] Error <span class="hljs-number">2</span>

解决方法: 下载的文件出错了,下载过程出错,或者从windows下载,拷贝到虚拟机的,会有问题。直接wget重新下载。 参考链接:https://blog.csdn.net/mengzuchao/article/details/81659971 回头回到目录osdrv目录下,执行 make all 文件。

  • eudev错误:
    <span class="hljs-symbol">Makefile:</span>
    <span class="hljs-number">36</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/board/eudev-3.2.7/tmp/eudev-3.2.7/udevd'</span> failed
    make[<span class="hljs-number">1</span>]: *** [<span class="hljs-regexp">/usr/dopi</span>
    <span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
    <span class="hljs-regexp">/osdrv/tools</span>
    <span class="hljs-regexp">/board/eudev</span>-<span class="hljs-number">3.2</span>.<span class="hljs-number">7</span>/tmp/eudev-<span class="hljs-number">3.2</span>.<span class="hljs-number">7</span>/udevd] Error <span class="hljs-number">1</span>
    make[<span class="hljs-number">1</span>]: Leaving directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/board/eudev-3.2.7'</span>
    <span class="hljs-symbol">Makefile:</span>
    <span class="hljs-number">377</span>: recipe <span class="hljs-keyword">for</span> target <span class="hljs-string">'hiboardtools'</span> failed

解决方法:

dopi<span class="hljs-meta">@ubuntu</span>:/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/<span class="hljs-keyword">package</span>/osdrv/tools/board/eudev-<span class="hljs-number">3.2</span>.7$ cat readme_cn.txt 
注意:
eudev-<span class="hljs-number">3.2</span>.7工具编译时依赖gperf工具,服务器上需要安装gperf工具。
下载网址:http:<span class="hljs-comment">//ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz</span>
安装说明:
tar -xzf gperf-<span class="hljs-number">3.1</span>.tar.gz
cd gperf-<span class="hljs-number">3.1</span>
./configure
make 
make install
  • bison: command not found错误:
/usr/dopi/Hi3516EV200_SDK_V1<span class="hljs-number">.0</span>
<span class="hljs-number">.1</span>
<span class="hljs-number">.0</span>/package/osdrv/tools/board/gdb/gdb<span class="hljs-number">-7.9</span>
<span class="hljs-number">.1</span>/missing: line <span class="hljs-number">81</span>: bison: command <span class="hljs-keyword">not</span> found
WARNING: <span class="hljs-string">'bison'</span> <span class="hljs-keyword">is</span> missing <span class="hljs-literal">on</span> your system.

解决方法:

sudo apt-<span class="hljs-keyword">get</span> install -y  bison

错误一:

fseeko.c: In function 'rpl_fseeko':`

`fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."`

 `110 |  #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."`

   `|  ^~~~~`

 `CC    printf-args.o`

 `CC    printf.o`

`make[5]: *** [Makefile:1696: fseeko.o] Error 1`

`make[5]: *** Waiting for unfinished jobs....`

 `CC    printf-parse.o`

`fseterr.c: In function 'fseterr':`

`fseterr.c:78:3: error: #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."`

  `78 | #error "Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib."`

   `|  ^~~~~

解决方法:

修改:osdrv/tools/pc/hi_gzip/Makefile:

pushd gzip-1.8;patch -p1 < ../hi_gzip.patch;./configure;make -j12;popd

改为:

pushd gzip-1.8;patch -p1 < ../hi_gzip.patch;sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c;echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h;./configure;make -j12;popd

 

错误二:

mksquashfs.c: In function ‘create_inode’:`

`mksquashfs.c:987:24: error: called object ‘major’ is not a function or function pointer`

 `987 |  unsigned int major = major(buf->st_rdev);`

   `|            ^~~~~`

`mksquashfs.c:987:16: note: declared here`

 `987 |  unsigned int major = major(buf->st_rdev);`

   `|        ^~~~~`

`mksquashfs.c:988:24: error: called object ‘minor’ is not a function or function pointer`

 `988 |  unsigned int minor = minor(buf->st_rdev);`

   `|            ^~~~~`

`mksquashfs.c:988:16: note: declared here`

 `988 |  unsigned int minor = minor(buf->st_rdev);`

   `|        ^~~~~`

`mksquashfs.c:1011:24: error: called object ‘major’ is not a function or function pointer`

 `1011 |  unsigned int major = major(buf->st_rdev);`

x   `|            ^~~~~`

`mksquashfs.c:1011:16: note: declared here`

 `1011 |  unsigned int major = major(buf->st_rdev);`

   `|        ^~~~~`

`mksquashfs.c:1012:24: error: called object ‘minor’ is not a function or function pointer`

 `1012 |  unsigned int minor = minor(buf->st_rdev);`

   `|            ^~~~~`

`mksquashfs.c:1012:16: note: declared here`

 `1012 |  unsigned int minor = minor(buf->st_rdev);

解决方法:

修改: osdrv/tools/pc/squashfs4.3/Makefile

SQUASHFS    := squashfs4.3

改为:

SQUASHFS    := squashfs4.4

这里就是脚本补丁和readme中有差异的地方,为了解决这个错误,我们使用了squashfs4.4而不是squashfs4.3
wget https://jaist.dl.sourceforge.net/project/squashfs/squashfs/squashfs4.4/squashfs4.4.tar.gz

经过以上两个修改,在ubuntu20.04上就可以完成了SDK的整包编译了。

7.建议:

重复编译过程中很可能出现以下情况。原因是因为重复打补丁,因此建议如果编译失败时,再次进行编译前建议进行make clean一下,这样就不会出现下面这种情况了。当然,在出现这个情况时也可以选择跳过,小A就是一路Enter下来的。

 

 

编译log,太多了,拷贝最后面一部分:

/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/tools/board/mtd-utils
cp -rf /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/tools/board/mtd-utils/mtd-utils-<span class="hljs-number">2.0</span>.<span class="hljs-number">2</span>/bin/sbin/* bin/
make[<span class="hljs-number">1</span>]: Leaving directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/tools/board/mtd-utils'</span>
cp /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/tools/board/mtd-utils/bin/* <span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/pub</span>
<span class="hljs-regexp">/bin/board</span>_uclibc
---------task [<span class="hljs-number">7</span>] build rootfs
<span class="hljs-keyword">chmod</span> <span class="hljs-number">777</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/board_uclibc/*
<span class="hljs-keyword">chmod</span> <span class="hljs-number">777</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc/*
rm /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/dev/* -rf
rm /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/bin/himm -rf
rm /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/bin/himc -rf
rm /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/bin/himd -rf
rm /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/bin/himd.l -rf
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc;ln -<span class="hljs-keyword">s</span> sbin/init init;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc; <span class="hljs-keyword">chmod</span> <span class="hljs-number">750</span> * -R; <span class="hljs-keyword">chmod</span> <span class="hljs-number">750</span> usr/* -R; popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc; <span class="hljs-keyword">chmod</span> -w usr/bin -R; <span class="hljs-keyword">chmod</span> -w usr/sbin -R; <span class="hljs-keyword">chmod</span> -w sbin -R; popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkfs.jffs2 -d /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc -l -e <span class="hljs-number">0x40000</span> -o /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_256k.jffs2;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkfs.jffs2 -d /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc -l -e <span class="hljs-number">0x20000</span> -o /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_128k.jffs2;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkfs.jffs2 -d /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc -l -e <span class="hljs-number">0x10000</span> -o /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_64k.jffs2;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
cp /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/tools/pc/ubi_sh/mkubiimg.sh /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc
<span class="hljs-keyword">chmod</span> +<span class="hljs-keyword">x</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/mkubiimg.sh
<span class="hljs-comment"># build the pagesize = 2k, blocksize = 128k, part_size = 32M #</span>
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc;./mkubiimg.sh hi3516ev20<span class="hljs-number">0</span> <span class="hljs-number">2</span>k <span class="hljs-number">128</span>k /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc <span class="hljs-number">32</span>M /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc/mkfs.ubifs -F -d /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc -<span class="hljs-keyword">m</span> <span class="hljs-number">2048</span> -o rootfs_hi3516ev200_2k_128k_32M.ubiimg -e <span class="hljs-number">126976</span> -c <span class="hljs-number">256</span>

/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc/ubinize -o rootfs_hi3516ev200_2k_128k_32M.ubifs -<span class="hljs-keyword">m</span> <span class="hljs-number">2048</span> -p <span class="hljs-number">131072</span> rootfs_hi3516ev200_2k_128k_32M.ubicfg
ubinize: volume size was <span class="hljs-keyword">not</span> specified in section <span class="hljs-string">"ubifs-volumn"</span>, assume minimum to fit image <span class="hljs-string">"rootfs_hi3516ev200_2k_128k_32M.ubiimg"</span>
<span class="hljs-number">5206016</span> bytes (<span class="hljs-number">4.9</span> MiB)
--------- rootfs_hi3516ev200_2k_128k_32M.ubifs is prepared !!
<span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv
# build the pagesize = 4k, blocksize = 256k, part_size = 50M #
pushd /usr</span>
<span class="hljs-regexp">/dopi/</span>Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc;./mkubiimg.sh hi3516ev20<span class="hljs-number">0</span> <span class="hljs-number">4</span>k <span class="hljs-number">256</span>k /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc <span class="hljs-number">50</span>M /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc/mkfs.ubifs -F -d /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc -<span class="hljs-keyword">m</span> <span class="hljs-number">4096</span> -o rootfs_hi3516ev200_4k_256k_50M.ubiimg -e <span class="hljs-number">253952</span> -c <span class="hljs-number">200</span>

/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc/ubinize -o rootfs_hi3516ev200_4k_256k_50M.ubifs -<span class="hljs-keyword">m</span> <span class="hljs-number">4096</span> -p <span class="hljs-number">262144</span> rootfs_hi3516ev200_4k_256k_50M.ubicfg
ubinize: volume size was <span class="hljs-keyword">not</span> specified in section <span class="hljs-string">"ubifs-volumn"</span>, assume minimum to fit image <span class="hljs-string">"rootfs_hi3516ev200_4k_256k_50M.ubiimg"</span>
<span class="hljs-number">6602752</span> bytes (<span class="hljs-number">6.2</span> MiB)
--------- rootfs_hi3516ev200_4k_256k_50M.ubifs is prepared !!
<span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv
rm /usr</span>
<span class="hljs-regexp">/dopi/</span>Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/mkubiimg.sh
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkyaffs2image10<span class="hljs-number">0</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/ <span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/pub</span>
<span class="hljs-regexp">/hi3516ev200_spi_image_uclibc/rootfs</span>_hi3516ev200_2k_4bit.yaffs2 <span class="hljs-number">1</span> <span class="hljs-number">2</span>;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
mkyaffs2 <span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>: image building tool <span class="hljs-keyword">for</span> YAFFS2.
warning: non-root users.

stage <span class="hljs-number">1</span>: scanning directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/rootfs_uclibc/'</span>... [done]
scanning complete, total <span class="hljs-number">466</span> objects.

stage <span class="hljs-number">2</span>: creating image <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_2k_4bit.yaffs2'</span>
[==================================================================================================================================================] <span class="hljs-number">467</span>/<span class="hljs-number">466</span> <span class="hljs-number">100</span>%

operation complete,
<span class="hljs-number">467</span> objects in <span class="hljs-number">3772</span> NAND pages.
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
<span class="hljs-keyword">chmod</span> <span class="hljs-number">644</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_2k_4bit.yaffs2
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkyaffs2image10<span class="hljs-number">0</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/ <span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/pub</span>
<span class="hljs-regexp">/hi3516ev200_spi_image_uclibc/rootfs</span>_hi3516ev200_2k_24bit.yaffs2 <span class="hljs-number">1</span> <span class="hljs-number">4</span>;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
mkyaffs2 <span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>: image building tool <span class="hljs-keyword">for</span> YAFFS2.
warning: non-root users.

stage <span class="hljs-number">1</span>: scanning directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/rootfs_uclibc/'</span>... [done]
scanning complete, total <span class="hljs-number">466</span> objects.

stage <span class="hljs-number">2</span>: creating image <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_2k_24bit.yaffs2'</span>
[==================================================================================================================================================] <span class="hljs-number">467</span>/<span class="hljs-number">466</span> <span class="hljs-number">100</span>%

operation complete,
<span class="hljs-number">467</span> objects in <span class="hljs-number">3772</span> NAND pages.
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
<span class="hljs-keyword">chmod</span> <span class="hljs-number">644</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_2k_24bit.yaffs2
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkyaffs2image10<span class="hljs-number">0</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/ <span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/pub</span>
<span class="hljs-regexp">/hi3516ev200_spi_image_uclibc/rootfs</span>_hi3516ev200_4k_4bit.yaffs2 <span class="hljs-number">2</span> <span class="hljs-number">2</span>;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
mkyaffs2 <span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>: image building tool <span class="hljs-keyword">for</span> YAFFS2.
warning: non-root users.

stage <span class="hljs-number">1</span>: scanning directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/rootfs_uclibc/'</span>... [done]
scanning complete, total <span class="hljs-number">466</span> objects.

stage <span class="hljs-number">2</span>: creating image <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_4k_4bit.yaffs2'</span>
[==================================================================================================================================================] <span class="hljs-number">467</span>/<span class="hljs-number">466</span> <span class="hljs-number">100</span>%

operation complete,
<span class="hljs-number">467</span> objects in <span class="hljs-number">2139</span> NAND pages.
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
<span class="hljs-keyword">chmod</span> <span class="hljs-number">644</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_4k_4bit.yaffs2
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc;./mkyaffs2image10<span class="hljs-number">0</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/ <span class="hljs-regexp">/usr/dopi</span>
<span class="hljs-regexp">/Hi3516EV200_SDK_V1.0.1.0/package</span>
<span class="hljs-regexp">/osdrv/pub</span>
<span class="hljs-regexp">/hi3516ev200_spi_image_uclibc/rootfs</span>_hi3516ev200_4k_24bit.yaffs2 <span class="hljs-number">2</span> <span class="hljs-number">4</span>;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/bin/pc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
mkyaffs2 <span class="hljs-number">0</span>.<span class="hljs-number">2.9</span>: image building tool <span class="hljs-keyword">for</span> YAFFS2.
warning: non-root users.

stage <span class="hljs-number">1</span>: scanning directory <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/rootfs_uclibc/'</span>... [done]
scanning complete, total <span class="hljs-number">466</span> objects.

stage <span class="hljs-number">2</span>: creating image <span class="hljs-string">'/usr/dopi/Hi3516EV200_SDK_V1.0.1.0/package/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_4k_24bit.yaffs2'</span>
[==================================================================================================================================================] <span class="hljs-number">467</span>/<span class="hljs-number">466</span> <span class="hljs-number">100</span>%

operation complete,
<span class="hljs-number">467</span> objects in <span class="hljs-number">2139</span> NAND pages.
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
<span class="hljs-keyword">chmod</span> <span class="hljs-number">644</span> /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/hi3516ev200_spi_image_uclibc/rootfs_hi3516ev200_4k_24bit.yaffs2
find /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc/ -name <span class="hljs-string">'*svn'</span> | xargs rm -rf
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc; <span class="hljs-keyword">chmod</span> +w usr/bin -R; <span class="hljs-keyword">chmod</span> +w usr/sbin -R; <span class="hljs-keyword">chmod</span> +w sbin -R; popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub/rootfs_uclibc /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
pushd /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub;tar czf rootfs_uclibc.tgz rootfs_uclibc;rm rootfs_uclibc -rf;popd
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv/pub /usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
/usr/dopi/Hi3516EV200_SDK_V1.<span class="hljs-number">0</span>.<span class="hljs-number">1.0</span>/<span class="hljs-keyword">package</span>/osdrv
---------finish osdrv work