ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译

首先我们根据安装按照海思提供的文档进行依次安装


第一步 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, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可

        ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第1张图片

 查看版本:

arm-hisiv300-linux-gcc -v

        注:本人在安装时,由于超级用户的原因和随意加sudo导致环境变量没有配置好,建议在当前用户下安装好之后查看下环境变量 vim ~./bashrc 和 sudo vim /etc/profile 。

或者直接在切换su超级用户之后运行./cross.instal脚本。

ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第2张图片

 

配置好记得source ~./bashrc 和 source /etc/profile。

 安装完成

ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第3张图片

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之后如下:

ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第4张图片

在这儿直接选择你想加的配置即可,具体看需求。

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

ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第5张图片

解决方法:

直接在切换su超级用户之后运行

成功编译uImage. 

ubuntu系统中安装SDK以及交叉编译工具后编译遇到的问题解决海思Hi3531A内核编译_第6张图片

大功告成!

 

你可能感兴趣的:(ubuntu,物联网)