海思SDK安装并编译osdrv问题汇总

文章目录

  • 前言:
  • 1、开发环境:
  • 2、拷贝并解压。将 Hi3536_SDK_V2.0.7.0.tgz拷贝到 Linux 服务器上。
  • 3、 安装
  • 4、编译OSDRV
    • 4.1 问题1
    • 4.2 问题2
    • 4.3 问题3
    • 4.4 问题4
    • 4.5 问题5
    • 4.6 问题6
    • 4.7 问题7
    • 4.8 问题8
    • 4.9 问题9
    • ---------finish osdrv work,表示整个osdrv编译成功了


前言:

1:编译前请先自行安装所需交叉编译器(参考SDK里文档)
2:海思平台下多款芯片SDK编译均可参考
3:本文参考说明以 Hi3536_SDK_V2.0.7.0 为例


1、开发环境:

windows10电脑 + 虚拟机15 Pro + Ubuntu18.0.4

2、拷贝并解压。将 Hi3536_SDK_V2.0.7.0.tgz拷贝到 Linux 服务器上。

cd ~/sambashare/
cp /my_work/sdk/hs_sdk/Hi3536V100R001C02SPC070/01.software/board/Hi3536_SDK_V2.0.7.0.tgz ./ -f
tar -xzf Hi3536_SDK_V2.0.7.0.tgz

3、 安装

cd Hi3536_SDK_V2.0.7.0/
sudo ./sdk.unpack
source /etc/profile

注:如果执行 source 不生效,重启虚拟机即可。

4、编译OSDRV

进入osdrv目录。先执行clean命令,确保SDK命令是干净的

cd Hi3536_SDK_V2.0.7.0/osdrv
sudo make OSDRV_CROSS=arm-hisiv300-linux distclean

执行make all,编译整个osdrv目录

sudo make OSDRV_CROSS=arm-hisiv300-linux CPU_TYPE=single PCI_MODE=none all

4.1 问题1

/bin/sh: 1: pushd: not found

解决方法1

步骤1:which sh,结果是/bin/sh
步骤2:ls -l /bin/sh,结果sh指向dash
步骤3:sudo rm /bin/sh
步骤4:sudo ln -s /bin/bash /bin/sh
步骤5:ls -l /bin/sh,结果sh指向bash

解决方法2

步骤1:sudo dpkg-reconfigure dash 【NO】

海思SDK安装并编译osdrv问题汇总_第1张图片

步骤2:ls -l /bin/sh,结果sh指向bash

4.2 问题2

make[2]: arm-hisiv300-linux-gcc: Command not found

解决方法

步骤1,cd Hi3536_SDK_V2.0.7.0/osdrv/opensource/toolchain/arm-hisiv300-linux
步骤2,tar -xzf arm-hisiv300-linux.tar.bz2
步骤3,sudo ./cross.install.v300
步骤4,vi ~/.bashrc 【在文件末尾追加: export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH】
步骤5,source ~/.bashrc 【确保环境变量设置生效,可以用 echo $PATH 查看是否成功导入】

arm-hisiv300-linux-gcc -v
出现了gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v300)说明安装成功

4.3 问题3

“mkimage” command not found - U-Boot images will not be built

解决方法1

步骤1:cd osdrv/opensource/uboot/u-boot-2010.06
步骤2:ls 【可以看到里面uboot.bin已经生成了】
步骤3:cd tools 【里面有mkimage.c和mkimage】
步骤4:file mkimage 【写x86-64位的架构,ubuntu16.0.04也是x86-64架构,因此可以在当前虚拟机上运行】
步骤5:sudo cp mkimage /usr/local/bin
步骤6:cd ../../
步骤7:ls 【发现里面要u-boot-2010.06文件夹和u-boot-2010.06.tgz压缩包】
步骤8:mki[连续按TabTab键] 【发现补全mkimage,说明已经成功解决了】

解决方法2

sudo apt-get install u-boot-tools

4.4 问题4

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

解决方法

sudo apt-get install zlib1g-dev

4.5 问题5

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

原因:在于 ubuntu 操作系统版本太高, 而SDK使用的 mtd-utils 版本太低导致

解决方法

步骤1:sudo vi /usr/include/netdb.h
步骤2:set nu 【显示行号】
步骤3/__USE_XOPEN2K 【回车搜索】
步骤4:将第79行的#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED和相应的第82行的#endif用//注释掉
步骤5/__USE_XOPEN2K 【回车搜索】
步骤6:第565行的#ifdef __USE_XOPEN2K和第681行的的#endif用//注释掉 【用:681命令跳转到681行】

4.6 问题6

mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’
Makefile:204: recipe for target ‘hipctools’ failed

解决方法

下载 mtd-utils_1.5.2.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/ 替换如下:

步骤1:cd osdrv/tools/pc/jffs2_tool
步骤2:cp ~/sambashare/mtd-utils_1.5.2.orig.tar.bz2 ./
步骤3:mv mtd-utils-1.5.0.tar.bz2 mtd-utils-1.5.0_backup.tar.bz2 //备份原始版本 
步骤4:mv mtd-utils_1.5.2.orig.tar.bz2 mtd-utils-1.5.2.tar.bz2   //重命名新版本
步骤5:修改jffs2_tool/Makefile:
	 	MTD_UTILS := mtd-utils-1.5.2  //修改mtd-utils的新版本号

保存退出

注意:osdrv/tools/board/mtd-utils/mtd-utils-1.5.0.tar.bz2 是不需要替换的,否则编译时会报错: mkfs.jffs2.c:71:21: fatal error: sys/acl.h: No such file or directory

4.7 问题7

configure: error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)

解决方法

sudo apt-get install libncurses5-dev libncursesw5-dev

4.8 问题8

uuid/uuid.h no such file or directory

解决方法

sudo apt-get install uuid-dev

4.9 问题9

/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory

解决方法

sudo apt-get install g++-multilib

---------finish osdrv work,表示整个osdrv编译成功了

【参考文献】
HI3518EV200 SDK安装并编译osdr

你可能感兴趣的:(海思SDK开发,linux,arm开发,bash)