ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HI3518环境搭建

2022-01-17 21:31:01  阅读:196  来源: 互联网

标签:uclibcgnueabi gcc ln 环境 HI3518 linux hisiv300 arm 搭建


1、HI3518环境搭建

1.1软硬件环境和准备

1.ubuntu:16.04 可联网
2.window7
3.HI3518EV200开发板(网卡、SD卡、16Mspi_flash、USB 、 串口)
4.SDK包:Hi3518E V200R001C01SPC040

1.2安装交叉编译工具

路劲:Hi3518E V200R001C01SPC040\01.software\board\Hi3518E_SDK_V1.0.4.0.tgz

①、将编译工具链拷到ubuntu,并解压

cp /mnt/hgfs/winshare/Hi3518E_SDK_V1.0.4.0.tgz ./
tar -xvf Hi3518E_SDK_V1.0.4.0.tgz

②、运行sdk.unpack

解压后的文件:package scripts sdk.cleanup sdk.unpack
运行 sdk.unpack source sdk.unpack,会自动解压等操作

③、安装交叉工具链

进入路径:/osdrv/opensource/toolchain
有两个,我们选择第一个arm-hisiv300-linux ,再进入
运行cross.install.v300 ./cross.install.v300
进入 /opt/hisi-linux/x86-arm/arm-hisiv300-linux/ 发现自动帮我们把编译工具链安装到此处了

④、创建交叉编译工具链符号链接

为工具链创建符号链接,因为编译osdrv时,需要使用arm-hisiv300-linux, 在此目录下,进入bin文件夹,创建一个脚本creat_hisiv300.sh,直接运行 source creat_hisiv300.sh,脚本内容如下

ln -s arm-hisiv300-linux-uclibcgnueabi-addr2line arm-hisiv300-linux-addr2line
ln -s arm-hisiv300-linux-uclibcgnueabi-ar arm-hisiv300-linux-ar
ln -s arm-hisiv300-linux-uclibcgnueabi-as arm-hisiv300-linux-as
ln -s arm-hisiv300-linux-uclibcgnueabi-c++ arm-hisiv300-linux-c++
ln -s arm-hisiv300-linux-uclibcgnueabi-c++filt arm-hisiv300-linux-c++filt
ln -s arm-hisiv300-linux-uclibcgnueabi-cpp arm-hisiv300-linux-cpp
ln -s arm-hisiv300-linux-uclibcgnueabi-elfedit arm-hisiv300-linux-elfedit
ln -s arm-hisiv300-linux-uclibcgnueabi-g++ arm-hisiv300-linux-g++
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc arm-hisiv300-linux-gcc
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-4.8.3 arm-hisiv300-linux-gcc-4.8.3
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-ar arm-hisiv300-linux-gcc-ar
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-nm arm-hisiv300-linux-gcc-nm
ln -s arm-hisiv300-linux-uclibcgnueabi-gcc-ranlib arm-hisiv300-linux-gcc-ranlib
ln -s arm-hisiv300-linux-uclibcgnueabi-gcov arm-hisiv300-linux-gcov
ln -s arm-hisiv300-linux-uclibcgnueabi-gdb arm-hisiv300-linux-gdb
ln -s arm-hisiv300-linux-uclibcgnueabi-gprof arm-hisiv300-linux-gprof
ln -s arm-hisiv300-linux-uclibcgnueabi-ld arm-hisiv300-linux-ld
ln -s arm-hisiv300-linux-uclibcgnueabi-ld.bfd arm-hisiv300-linux-ld.bfd
ln -s arm-hisiv300-linux-uclibcgnueabi-nm arm-hisiv300-linux-nm
ln -s arm-hisiv300-linux-uclibcgnueabi-objcopy arm-hisiv300-linux-objcopy
ln -s arm-hisiv300-linux-uclibcgnueabi-objdump arm-hisiv300-linux-objdump
ln -s arm-hisiv300-linux-uclibcgnueabi-ranlib arm-hisiv300-linux-ranlib
ln -s arm-hisiv300-linux-uclibcgnueabi-readelf arm-hisiv300-linux-readelf
ln -s arm-hisiv300-linux-uclibcgnueabi-size arm-hisiv300-linux-size
ln -s arm-hisiv300-linux-uclibcgnueabi-strings arm-hisiv300-linux-strings
ln -s arm-hisiv300-linux-uclibcgnueabi-strip arm-hisiv300-linux-strip

⑤、添加环境变量

vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
重启终端,以便环境变量生效
验证是否生效 arm-hisiv300-linux-gcc -v
出现以下错误
bash: /opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin/arm-hisiv300-linux-gcc: No such file or directory

⑥、解决64位ubuntu不兼容32bit工具问题

以上问题由于64位ubuntu不兼容32bit工具问题,使用以下步骤解决
sudo aptitude install lib32z1 第一个选择N
sudo aptitude install lib32stdc++6-4.8-dbg 第一个选择N
有时选择国内镜像源安装可能不成功

⑦、验证安装成功

运行arm-hisiv300-linux-gcc -v出现版本号
gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v300)

1.3编译OSDRV及出现的问题

进入cd /usr/HI/Hi3518E_SDK_V1.0.4.0/osdrv/编译时使用

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

①、问题 /bin/sh: 1: pushd: not found

查看sh链接为dash
改为bash
rm -sh
ln -s bash sh

②、问题 “mkimage” command not found - U-Boot images will not be built

进入/usr/HI/Hi3518E_SDK_V1.0.4.0/osdrv/opensource/uboot/u-boot-2010.06/tools
将mkimage拷贝到/bin
cp mkimage /bin

③、问题 compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

sudo aptitude install zlib1g-dev

④、问题 serve_image.c:103:35: error: dereferencing pointer to incomplete type ‘struct addrinfo’

在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致
修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释
注意#ifdef与#endif是一一对应的

⑤、mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’

先下载mtd-utils_1.5.2.orig.tar.bz2
下载地址:http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2
拷贝到此目录下:/osdrv/tools/pc/jffs2_tool
重命名为:mtd-utils_1.5.2.orig.tar.bz2
更改同目录下的makefile MTD_UTILS := mtd-utils-1.5.2

⑥、问题 mkfs.ubifs/mkfs.ubifs.h:46:23: fatal error: uuid/uuid.h: No such file or directory compilation terminated.

在这里插入代码片

⑦、问题 error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)

sudo apt-get install libncurses5-dev libncursesw5-dev

————————————————
注:本文参考原文链接

标签:uclibcgnueabi,gcc,ln,环境,HI3518,linux,hisiv300,arm,搭建
来源: https://blog.csdn.net/qq_21794157/article/details/122548049

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有