01、HI3518环境搭建和熟悉

01、HI3518环境搭建和熟悉

@(HI3518EV200学习)

参考博文:https://blog.csdn.net/qq_39436605/article/details/90081360

软硬件环境和准备

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

安装交叉编译工具

路劲: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)

编译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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值