搭建开发环境
还是windows下载东西快,今天网络差。只好在win下用迅雷下载一些包。
1.1 下载etcher
1.2 准备ubuntu16.04 iso
1.3 用etcher 制作ubuntu启动USB
I3台式机开机按F12进入BOOT选项
1.4 等待安装完成
1.5 复制Hi3518E_V200R001C01SPC030至主机
1.6 ssh
sudo apt install openssh-server
1.7 解压
tar -zxf Hi3518E_SDK_V1.0.3.0.tgz
1.8 更改source.list
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
./sdk.cleanup
运行shell的时候出现 ./sdk.unpack: source: not found
ubuntu16.04 系统默认的SH(脚本解析器)为dash,可以使用 ls -l /bin/sh 命令查看
修改默认脚本解析器为bash,方法如下:
1、命令行输入:sudo dpkg-reconfigure dash
2、选择
3、ls -l /bin/sh 查询确认
./sdk.unpack
cd osdrv/opensource/toolchain/arm-hisiv300-linux
sudo ./cross.install.v300
导入环境变量
export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin:$PATH
echo $PATH
修改~/.bashrc
vim ~/.bashrc
在最底部添加:
export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin:$PATH
让配置生效
source ~/.bashrc
cd ~/HI3518EV200/Hi3518E_SDK_V1.0.3.0/osdrv/
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all
错误,系统找不到arm-hisiv300-linux-gcc,说明交叉编译工具未安装完成
解决方法
步骤1,进入工具链及其安装程序的目录位置:Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux
步骤2,解压工具链:tar -xvf arm-hisiv300-linux.tar.bz2
步骤3,安装工具链:sudo ./cross.install.v300
步骤4,进入交叉编译工具链的挂载目录:cd /opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin
步骤5,ls 【发现里面有很多arm-hisiv300-linux-uclibcgnueabi-xxx编译工具链】
步骤6,file file arm-hisiv300-linux-uclibcgnueabi-gcc 【ELF 32-bit LSB executable,也就是说这个交叉编译工具链是32位的,但是我是用的虚拟机上Ubuntu16.04是64位的,因此必须安装32位的兼容包】
步骤7,cd ../target/bin
步骤8,ls 【发现里面有很多arm-hisiv300-linux-xxx编译工具链,这些是arm-hisiv300-linux-uclibcgnueabi-xxx的符号链接,就是我们要找的arm-hisiv300-linux工具链,可以用ls -l查看】
步骤9,pwd 【/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin,记住这个路径,需要将这个路径导入到环境变量中:见步骤9,10】
步骤10,vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
步骤11,source ~/.bashrc 【确保环境变量设置生效.,可以用echo $PATH查看是否成功导入】
步骤12,ping www.baidu.com 【确保虚拟机能上网】
步骤13,sudo apt install lib32z1 【注意:要安装任何软件之前,一定要确保虚拟机能上网】
步骤14,sudo apt install lib32stdc++6-4.8-dbg 【注意:要安装任何软件之前,一定要确保虚拟机能上网】
cd ~/HI3518EV200/Hi3518E_SDK_V1.0.3.0/osdrv/
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all
解决方法1:
步骤1,cd 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:
步骤1, ping www.baidu.com 确保虚拟机能上网
步骤2,sudo apt-get install u-boot-tools
解决方法
步骤1,sudo apt install zlib1g-dev
原因
在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致
解决方法
修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释,如下图(注意#ifdef与#endif是一一对应的)
步骤1,sudo vim /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行】
-----------
Makefile:204: recipe for target 'hipctools' failed
解决方案:下载mtd-utils-1.5.2.tar.bz2,替换osdrv\tools\pc\jffs2_tool目录下的mtd-utils-1.5.0.tar.bz2
步骤1,wget http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2
步骤2,下载完可以直接放到osdrv\tools\pc\jffs2_tool目录下,同时修改压缩包名字为mtd-utils-1.5.2.tar.bz2,方可被识别。
步骤3,同时修改该目录下的Makefile,将版本号改为1.5.2。第22行的mtd-utils-1.5.0改为mtd-utils-1.5.2
解决方案:
sudo apt-get install libncurses5-dev libncursesw5-dev
解决方法:sudo apt-get install uuid-dev
最终编译完成会出现以下画面:
HI3518EV200 SDK安装并编译osdr。 https://www.cnblogs.com/Ocean-Star/p/8902397.html
Hi3518EV200的环境搭建, https://blog.csdn.net/oqqhutu12345678/article/details/78968791
Hi3518EV200的环境搭建-Ubuntu16、18遇到的问题集锦,https://blog.csdn.net/qq_27158179/article/details/86745776