建立Hi3559 开发环境须知

操作系统:CentOS7.4 minimal
SDK版本:Hi3559V100R003C02SPC009

建立开发环境步骤在此不表,文档《Hi3559V100/Hi3556V100 SDK安装使用说明.pdf》已经介绍很详细了,只是它针对的平台是ubuntu14.04 64bit server,不过我要把它安装到centos系统上,并且是最小系统,很多软件包都没有,当然基本的C/C++开发工具(gcc/g++/make/autoconf/gdb)还是有的。既然在最小系统上编译这么庞大的软件代码难免会遇到各种各样问题,这种心理准备我是有的,本着兵来将挡水来土掩的心态处之即可。这两天实际操作过程中果不其然遇到了动态库找不到情况,还好通过yum解决了,具体问题不表,现将解决方法介绍如下:
1、下载安装bc、ncurse开发包、glibc-static包:
yum install bc ncurses-devel glibc-static -y
2、替换默认的3.82版本make为3.81,由于yum无法降级make,只能下载源码编译然后替换/usr/bin/make。

这里要特别说明一下第二步操作原因,如果不做这个降级处理,在执行osdrv/tools/pc/mkimage_tool/fastboot下Makefile时报错:Makefile:517: *** mixed implicit and normal rules. Stop.具体代码片段:
platform.mk \
%: %_config
$(MAKE)

根据以往经验,这一定时make工具版本太新或太旧造成的,具体是哪个最近版本才支持就只能通过二分判断法来找寻答案了,结果升级到最新的4.2不行,试着降级到3.80也不行,最后降级到3.81才解析通过,看来海思编写编译脚本的高手对3.81版make规则运用很娴熟,问题是为什么这个规则的出现前无古人后无来者呢?

设置Centos7 时区

查看时间及时区:
timedatectl

列举所有时区:
timedatectl list-timezones

设置时区:
timedatectl set-timezone Asia/Hong_Kong

也可将/etc/localtime 文件链接到/usr/share/zoneinfo下面的指定时区文件达到设置时区目的,如:
ln -s /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

Centos7 外网不通

之前装了个minimal 形式的Centos7,并且修改网络配置脚本配置为静态IP,在使用过程中经常发现锁屏后再打开始终无法通过ssh 连接,能连接情况下会多出一个192.168.187.1 的IP,路由也多出一条记录。通过仔细观察和对比,终于发现多出的IP 是之前备份的ifcfg-ens33.dhcp 配置文件导致,原来启动网络服务时所有ifcfg-开头的配置文件都会解析处理,多出的路由记录就是由NAT 网关的dhcp 服务器分配的,最初以为是192.168.187.1,通过ip route 查看正确网关应该是192.168.187.2,于是我在目前的ifcfg-ens33 网卡配置文件中加上了网关配置项就可以出外网了:
GATEWAY=192.168.187.2

这样也就解决了陌生IP 和笔记本锁屏后重开无法连接问题。

附最终配置文件:
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.187.131
GATEWAY=192.168.187.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=054d1cb3-1e42-479a-a578-6e0f462927d7
DEVICE=ens33
ONBOOT=yes
PROXY_METHOD=none
BROWSER_ONLY=no
PREFIX=24