Hi3531 SDK v2.0.8.0 安装

1、Hi3531 SDK包位置

    在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz 的文件,

该文件就是Hi3531的软件开发包。

2、解压缩SDK包

    在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531_SDK_Vx.x.x.x.tgz ,

解压缩该文件,可以得到一个Hi3531_SDK_Vx.x.x.x目录。

3、展开SDK包内容

    返回Hi3531_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。

如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。

4、在linux服务器上安装交叉编译器

    1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):

       进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

      进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。(原文档没有)

    2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):

       进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

  

    3) 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

5、编译osdrv

    参见osdrv目录下readme

———————以上为厂家提供教程———————

几点说明:

1、uclibc是面向嵌入式Linux系统的小型的C标准库,glibc是Linux的标准运行库。

使用某一工具链编译后,如果需要更换工具链,请先将原工具链编译文件清除,然后再更换工具链编译。

开始我发现使用arm-hisiv100-linux编译内核时,会提示找不到该命令,换到arm-hisiv200-linux可以。估计就是上述问题吧。

2、source命令即执行命令,和“./”是一样的。(个人理解)

3、Linux下也有环境变量,如下:

    常见的配置文件包括:

      (1-1)/etc/profile:对所有用户生效;此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行;并从/etc/profile.d目录的配置文件中搜集shell的设置。例如:编辑/etc/profile文件,添加CLASSPATH变量   

          # vi /etc/profile

          添加一行:export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

          修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效

     (1-2)/etc/bashrc:对所有用户生效;为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取编辑方法如上,不再赘述

     环境变量的查看

        (1)使用echo命令查看单个环境变量。例如:echo $PATH

        (2)使用env查看所有环境变量。例如:env

        (3)使用set查看所有本地定义的环境变量。例如:set

          另外,unset可以删除指定的环境变量。

          常用的环境变量



          PATH 决定了shell将到哪些目录中寻找命令或程序

          HOME 当前用户主目录

          HISTSIZE 历史记录数

          LOGNAME 当前用户的登录名

          HOSTNAME 指主机的名称

          SHELL 当前用户Shell类型

          LANGUGE  语言相关的环境变量,多语言可以修改此环境变量

          MAIL 当前用户的邮件存放目录

          PS1 基本提示符,对于root用户是#,对于普通用户是$



好,继续。

这里的重点肯定在第五步。下面详细说说。

osdrv目录结构说明:

osdrv

├─Makefile ------------------------------ osdrv目录编译脚本

├─busybox ------------------------------- 存放busybox源代码的目录

├─tools --------------------------------- 存放各种工具的目录

│  ├─board_tools ----------------------- 各种单板上使用工具

│  │  ├─reg-tools-1.0.0 --------------- 寄存器读写工具

│  │  ├─mtd-utils --------------------- flash裸读写工具

│  │  ├─udev-100 ---------------------- udev工具集

│  │  ├─gdb --------------------------- gdb工具

│  │  ├─parted ------------------------ 大容量硬盘分区工具

│  │  └─e2fsprogs --------------------- mkfs工具集

│  └─pc_tools -------------------------- 各种pc上使用工具

│      ├─mkfs.cramfs ------------------- cramfs文件系统制作工具

│      ├─mkfs.jffs2 -------------------- jffs2文件系统制作工具

│      ├─mkimage ----------------------- uImage制作工具

│      ├─mkyaffs2image301 -------------- yaffs2文件系统制作工具

│      ├─nand_production --------------- nand flash烧写文件制作工具

│      └─uboot_tools ------------------- uboot镜像制作工具、xls文件及ddr初始化脚本、bootrom工具

├─toolchain ----------------------------- 存放工具链的目录

│  ├─arm-hisiv100nptl-linux ---------------- hisiv100nptl交叉工具链

│  └─arm-hisiv200-linux ---------------- hisiv200交叉工具链

├─pub ----------------------------------- 存放各种镜像的目录

│  ├─image_glibc ----------------------- 基于hisiv100nptl工具链编译,可供FLASH烧写的映像文件,包括uboot、内核、文件系统

│  ├─image_uclibc ---------------------- 基于hisiv200工具链编译,可供FLASH烧写的映像文件,包括uboot、内核、文件系统

│  ├─bin ------------------------------- 各种未放入根文件系统的工具

│  │  ├─pc ---------------------------- 在pc上执行的工具

│  │  ├─board_glibc ------------------- 基于hisiv100nptl工具链编译,在单板上执行的工具

│  │  └─board_uclibc ------------------ 基于hisiv200工具链编译,在单板上执行的工具

│  ├─rootfs_uclibc.tgz ----------------- 基于hisiv100nptl工具链编译的根文件系统

│  └─rootfs_glibc.tgz ------------------ 基于hisiv200工具链编译的根文件系统

├─drv ----------------------------------- 存放外设驱动的目录

│  └─pcie_mcc -------------------------- pcie消息通讯层驱动

├─rootfs_scripts ------------------------ 存放根文件系统制作脚本的目录

├─uboot --------------------------------- 存放uboot源代码的目录

└─kernel -------------------------------- 存放kernel源代码的目录

第一步,开始编译内核。

cp arch/arm/configs/godnet_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage

即执行了make menuconfig 和 make uImage。

执行make menuconfig 后会显示一个菜单,大概是对Linux内核的配置,不过对于刚接触Linux的我来说,先略过,直接Quit。

执行make uImage会编译出Linux内核,先说一下 几种linux内核文件的区别 (网上一把,随便抓一个过来)

vmlinux  编译出来的最原始的内核文件,未压缩。
zImage   是vmlinux经过gzip压缩后的文件。
bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。
uImage   U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。
vmlinuz  是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
initrd   是“initial ramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。

多说一句的话,就是:
zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置。

所以呢,由于我使用uboot来load,编译出的内核肯定会有uImage这个格式。

但是,我在这里碰到了一个问题:

make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage

  CHK     include/linux/version.h

  CHK     include/generated/utsrelease.h

make[1]: `include/generated/mach-types.h' is up to date.

  CALL    scripts/checksyscalls.sh

  CHK     include/generated/compile.h

  Kernel: arch/arm/boot/Image is ready

  SHIPPED arch/arm/boot/compressed/lib1funcs.S

  AS      arch/arm/boot/compressed/lib1funcs.o

  LD      arch/arm/boot/compressed/vmlinux

  OBJCOPY arch/arm/boot/zImage

  Kernel: arch/arm/boot/zImage is ready

  UIMAGE  arch/arm/boot/uImage

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

make[1]: *** [arch/arm/boot/uImage] Error 1

make: *** [uImage] Error 2

系统提示"mkimage" command not found - U-Boot images will not be built。

也就是说,mkimage该工具没起作用。mkimage是在编译完uboot之后生成的,我查看了一下,我这里确实有,所以按照原理来说,把它放到该呆的地方去就成啦。

按照上述对环境变量的解释,修改/etc/bashrc,在里面加入了mkimage的路径,我编!结果不成。

把mkimage放/bin下,我再编!OK。

 

再想想,我看了一下环境变量:

[root@localhost linux-3.0.y]# echo $PATH

/usr/bin:/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin:/opt/hisi-linux/x86-arm/arm-hisiv100-linux/target/bin:/usr/lib/qt-3.3/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/wanghx/bin

这里插一句,Linux下环境变量是靠:来分割的。

把mkimage扔到/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin下试试,嗯,终于成了。

  CHK     include/linux/version.h

  CHK     include/generated/utsrelease.h

make[1]: `include/generated/mach-types.h' is up to date.

  CALL    scripts/checksyscalls.sh

  CHK     include/generated/compile.h

  Kernel: arch/arm/boot/Image is ready

  SHIPPED arch/arm/boot/compressed/lib1funcs.S

  AS      arch/arm/boot/compressed/lib1funcs.o

  LD      arch/arm/boot/compressed/vmlinux

  OBJCOPY arch/arm/boot/zImage

  Kernel: arch/arm/boot/zImage is ready

  UIMAGE  arch/arm/boot/uImage

Image Name:   Linux-3.0.8

Created:      Thu Apr 25 15:42:10 2013

Image Type:   ARM Linux Kernel Image (uncompressed)

Data Size:    3496948 Bytes = 3414.99 kB = 3.33 MB

Load Address: 80008000

Entry Point:  80008000

  Image arch/arm/boot/uImage is ready

看看有木有:

[root@localhost linux-3.0.y]# cd arch/arm/boot

[root@localhost boot]# ls

bootp  compressed  Image  install.sh  Makefile  uImage  zImage

OK。终于编出来了。

先到这里

时间: 2024-09-08 23:28:40

Hi3531 SDK v2.0.8.0 安装的相关文章

Hi3531 SDK 安装以及升级使用说明

Hi3531 SDK 安装以及升级使用说明 第一章 Hi3531_SDK_Vx.x.x.x版本升级操作说明    如果您是首次安装本SDK,请直接参看第2章.     第二章 首次安装SDK 1.Hi3531 SDK包位置     在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz 的文件, 该文件就是Hi3531的软件开发包. 2.解压缩SDK包     在linux服务器上(或者一台装

sdk-写的代码在anroid5.0显示未安装

问题描述 写的代码在anroid5.0显示未安装 在5.0一下都可以正常的运行,但是5.0的机子安装不上. 配置清单里面是支持到最新版本了的. 项目是搭建在andbase框架上的,使用了环信的sdk.不知道是不是这些原因导致 的安装不了的问题.望解答,谢谢! 解决方案 肯定不是配置清单的原因,是你的源代码,或者使用的 框架的问题. 建议你使用真机调试一下,看看是什么情况.

Apache SOAP的Web Services在Tomcat4.0.4的安装和测试

apache|services|web 相关下载: Apache SOAP http://xml.apache.org/soap/index.html Tomcat4.0.4 http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.4/ 1.安装Apache SOAP到C盘根目录,即C:\soap-2_3_1 2.安装Tomcat4.0.4到C:\Program Files\Apache Tomcat 4.0 3.复制C:

RedFlag Linux 5.0桌面版安装oralce10

本文中描述的步骤可能有些不是必须的,但笔者没有进一步验证,故将安装过程中的所有步骤均列出在此. 1. 安装 Redflag Linux 5.0 桌面版 2. 安装前得准备,打几个补丁 1). redhat linux9下第一张光盘下的RedHat/RPMS/compat-libstdc++-7.3- 2.96.118.i386.rpm(安装方法rpm -ivh ***) 2). oracle9i204下的linux补丁 P3006854(这是在安装racle9i时用的,但由于oracle9i安装

.Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决

原文:.Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决 说真心话,Eclipse跟我们.net的VS比起来就是屌丝比高富帅,一切都是那么的难用,速度慢得我无法忍受 于是想试试Google钦点的Android Studio IDE工具,这跟ADT一样也是一套集成工具,也需要安装java JDK 1.下载最新的JDKhttp://developers.sun.com/downloads/ 我是下载JDK1.7版本,安装过程可

ImageEn3.0控件安装 for delphi7

问题描述 ImageEn3.0控件安装 for delphi7 刚接触ImageEn3.0控件,安装了2.2.3版本的,结果缺少*.dcu文件,3.0的该怎么安装啊?

android4.0.4 contacts安装失败,提示:手机中没有该应用所需的共享用户或签名不匹配

问题描述 android4.0.4 contacts安装失败,提示:手机中没有该应用所需的共享用户或签名不匹配 手机具有root权限,在修改好contacts后,打包好并签好名后,会报安装失败:手机中没有该应用所需的共享用户或签名不匹配 请问大侠有什么解决办法?注:其它的应用程序修改好后打包并签好名后可以安装上,为什么contacts会出这样的错呢?? 哪位大侠碰到过,怎么解决?? 解决方案 解决了,谢谢各位的支持,在mainfest下有android:sharedUserId="android

c语言 编程-DirectX 9.0 Summer 2004 SDK和VC++6.0编程时总是出现问题,怎么办???

问题描述 DirectX 9.0 Summer 2004 SDK和VC++6.0编程时总是出现问题,怎么办??? #define DIRECTINPUT_VERSION 0x0800 //声明DirectX Input的版本是8.0 #ifndef _WIN32_DCOM #define _WIN32_DCOM #endif #define pr printf #pragma once #define INITGUID //确保INITGUID已被定义 #define INTERFACE IDi

u盘-CentOS 7.0 U盘安装失败

问题描述 CentOS 7.0 U盘安装失败 用U盘安装CentOS7,在安装的时候在"启动安装包进程"卡住,然后提示错误无法安装.请问要怎么解决? 解决方案 网上很多的,百度一下看看 解决方案二: 只有百度才能解决 百度一下 有很多 要细心 一步一步来 解决方案三: 参考这个做U盘安装盘,前段时间才通过U盘装了centos 7.0.http://jingyan.baidu.com/article/a3a3f81188f74c8da2eb8a17.html