首先我们根据安装按照海思提供的文档进行依次安装
第一步 Hi3531A_SDK_Vx.x.x.x版本升级操作说明
如果您是首次安装本SDK,请直接参看第2步。
第二步 首次安装SDK
1、Hi3531A SDK包位置
在"Hi3531A_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531A_SDK_Vx.x.x.x.tgz 的文件,
该文件就是Hi3531A的软件开发包。
2、解压缩SDK包
在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531A_SDK_Vx.x.x.x.tgz ,
解压缩该文件,可以得到一个Hi3531A_SDK_Vx.x.x.x目录。
3、展开SDK包内容
返回Hi3531A_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。
如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。
4、在linux服务器上安装交叉编译器
1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
进入Hi3531A_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv300-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):
进入Hi3531A_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv400-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
3) 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可
查看版本:
arm-hisiv300-linux-gcc -v
注:本人在安装时,由于超级用户的原因和随意加sudo导致环境变量没有配置好,建议在当前用户下安装好之后查看下环境变量 vim ~./bashrc 和 sudo vim /etc/profile 。
或者直接在切换su超级用户之后运行./cross.instal脚本。
配置好记得source ~./bashrc 和 source /etc/profile。
安装完成
5、编译osdrv
参见osdrv目录下readme
此处摘出一段我用到的编译内核的一块。
注:arm-hisiv300-linux工具链对应uclibc库,arm-hisiv400-linux工具链对应glibc库。具体命令如下
单独编译kernel:
待进入内核源代码目录后,执行以下操作
cp arch/arm/configs/hi3531a_full_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage
或者 用arm-hisiv400-linux工具链编译对应glibc库将v300替换成v400即可。
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig之后如下:
在这儿直接选择你想加的配置即可,具体看需求。
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage之后:
出现错误:
/bin/sh: arm-hisiv400-linux-gcc: 未找到命令
/home/miao/Hi3531AV100R001C01SPC030/01.software/board/Hi3531A_SDK_V1.0.3.0/osdrv/opensource/kernel/linux-3.10.y/./Kbuild:35: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 127
Makefile:844: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
解决方法:
直接在切换su超级用户之后运行
成功编译uImage.
大功告成!