IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题

           最近,消费类 IP Camera 越来越火爆,典型产品形态为门铃、门锁、猫眼、电池 IPC 等。海思对该类产品给出了解决方案:由 Camera Soc(Hi3518EV300) 和 IoT-wifi Soc(Hi3861LV100)两颗芯片联合实现。其中hi3518 实现 IP Camera 唤醒状态下媒体相关功能(图像采集, 处理,编码,码流存储及传输)及个性化业务功能,hi3861L Wifi则提供网络通信功能,camera电源管理、待机保活和远程唤醒等功能。

          对于门铃、猫眼等产品,Hi3518如果使用linux系统,则不能达到低功耗和快速启动的要求,为满足该需求,将hi3518改用华为LiteOS系统,再配合hi3861L wifi功能,则能轻松达到快速启动要求。

如下为Hi3518EV300 LiteOS的冷启动时间,基本可以控制在几百ms以内。通常情况下Hi3518EV300处于断电状态,仅依靠Hi3861LV100进入保活状态,响应远程唤醒指令或外部中断信号,来控制Hi3518EV300电源使能,这样便能大大降低整个系统功耗。

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第1张图片

下面就先来介绍一下整个开发环境的搭建和sdk的编译方法,也以防自己遗忘。

一、安装编译环境 (基于平台:Ubuntu 16.04)

1.配置bash

sudo dpkg-reconfigure dash

 选择No

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第2张图片

2.安装依赖软件包

sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk curl upx

3.创建/etc/ld.so.preload 

执行sudo touch /etc/ld.so.preload,官方说是为了解决 64bit linux server 上某些第三方库编译失败的问题

二、安装交叉编译工具链

解压交叉编译工具链包:

tar axvf arm-himix310-linux.tgz

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第3张图片

解压后进入目录,查看用法:

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第4张图片

直接执行脚本安装即可,也可自行指定安装路径:

source ./arm-himix310-linux.install

安装完成后查看是否安装成功: 

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第5张图片

三、安装mtd-utils工具依赖组件

因为sdk使用了 mtd-utils2.0.2 来生成和制作 ubifs、jffs2、squashfs 文件系统镜像,需要安装依赖组件

sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config

配置pkg-config 工具搜索路径:

vim ~/.bashrc

在最后面添加:

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linuxgnu/pkgconfig"

安装automake1.15.1

因为mtd-utils2.0.2 依赖于 automake1.15.1 版本,先看看有没有安装automake。

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第6张图片

如果已经安装不是1.15.1版本,则现删除原有automake版本:

sudo apt-get autoremove automake

如果没有安装,则下载安装包:

wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz

然后编译安装automake即可:

tar zxvf automake-1.15.1.tar.gz

cd automake-1.15.1/

./configure

make

sudo make install

四、编译SDK

1.解压sdk包

tar -axvf Hi3518EV300_Hi3861L_SHC_V5.0.1.0.tgz

2.进入已解压目录,创建软连接,选择编译配置文件

cd Hi3518EV300_Hi3861L_SHC_V5.0.1.0

#编译3518 Camera端

ln -vfs configs/config_hi3518ev300_demb_gc2053.conf config.conf

#编译3861L wifi端

ln -vfs configs/config_hi3861lv100_demb_mqtt_pir_key.conf config.conf

3.遇到的问题:

1.python脚本中没有找到reduce定义 

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第7张图片

原因分析及解决办法:

由于之前在系统中开发其它项目时,将python默认配置成了python3,而在Python3 之后,reduce这个方法从全局命名空间中移除,放在了 functools模块,因为如果想正确执行,必须将它import出来,在报错的.py文件前添加如下语句即可:

from functools import reduce

修改文件路径为: platform/sdk/platform/liteos/liteos/tools/scripts/dynload_tools/dynload_sh/make_symlst.py

IP Camera Sample(hi3518E+hi3861L)开发环境搭建及SDK编译问题_第8张图片

 

 

 

你可能感兴趣的:(Linux基础学习,知识积累)