天天看点

海思HI3518e开发板 SDK安装使用

已经完成了海思sdk包的相关实验,

1 安装海思交叉编译工具链由于工具链是32位的,64位的ubuntu需要安装32位的兼容包;

2 中间遇到问题,使用aptitude安装lib32z1和lib32stdc++6-4.8-dbg;

3 使用/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux/目录下的cross.install.v300来安装交叉编译工具链,该程序会将交叉编译工具链安装在

/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin/目录下,符号连接arm-hisiv300-linux-放在了/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/目录下,所有需要将这个目录导出到环境变量,方法vi打开/etc/profile文件,添加export PATH=”/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH”,到文件底部,这样每次开机都会这行这个语句将符号连接导出到换将变量,然后运行一下source /etc/profile,可以通过运行arm-hisiv300-linux-gcc -v来测试工具链是否安装正确

4 编译osdrv

(1)编译整个osdrv目录:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

(2)清除整个osdrv目录的编译文件:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 clean:

(3)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean

(4)单独编译kernel:

cp arch/arm/configs/hi3518ev200_full_defconfig .config

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

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

(5)单独编译模块:

cp arch/arm/configs/hi3518ev200_full_defconfig .config

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

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- modules

(6)单独编译uboot:

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- hi3518ev200_config

将生成的u-boot.bin 复制到osdrv/tools/pc/uboot_tools/目录下

运行./mkboot.sh reg_info.bin u-boot-ok.bin

生成的u-boot-ok.bin即为可用的u-boot镜像

整体编译过程中出现的错误

错误:compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

因为找不到zlib.h所以编译错误,zlib.h在tools/pc/zlib/tmp/include目录中有,只需要复制到tools/pc/jffs2_tool/tmp/include目录中即可。注意同时要将zconf.h也复制过去的。还有,要将tools/pc/jffs2_tool/tmp/lib目录下的libz.a libz.so libz.so.1 libz.so.1.2.7等4个文件复制到tools/pc/jffs2_tool/tmp/lib目录下,不然一会儿还得报错。

其他错误

还报错就不管了,此时~/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/jffs2_tool/tmp/mtd-utils-1.5.0已经有了mkfs.jffs2了,我们就是只要这个而已,手工将其复制到osdrv/pub/bin/pc目录下即可。

错误信息:serve_image.c:32:18: error: storage size of ‘hints’ isn’t known

解决方法:修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释,如下图(注意#ifdef与#endif是一一对应的,而且里面有两个)

最终结果

在osdrv/pub/image_uclibc目录下得到的uboot和uImage即是我们要的uboot镜像和kernel的uImage镜像,而根文件系统镜像在osdrv/pub目录下。