Hi3518EV200学习记录之环境搭建

本文介绍如何在Ubuntu 10.04环境中搭建用于Hi3518E嵌入式系统的开发环境,包括SSH服务器、NFS服务器、TFTP服务器的安装配置过程,以及SDK安装和交叉编译工具链的设置方法。

Linux环境:Ubuntu10.04

SDK版本:(Hi3518E_SDK_V1.0.3.0.tgz)Hi3518E V200R001C01SPC030

一、安装SSH服务器

sudo apt-get install openssh-server

二、安装NFS服务器

1、sudo apt-get install nfs-kernel-server    #安装 NFS 服务器端

2、sudo apt-get install nfs-common           #安装 NFS 客户端

3、sudo vi /etc/exports 文件末尾添加     /nfsroot               *(rw,sync,no_root_squash)        #添加NFS共享目录

4、sudo mkdir /nfsroot                               #新建/nfsroot目录

      sudo chmod -R 777 /nfsroot                 #设置最宽松的权限

      sudo chown -R nobody /nfsroot

5、sudo /etc/init.d/nfs-kernel-server start   #启动NFS服务

三、安装TFTP服务器

1、sudo apt-get install tftpd-hpa tftp-hpa

2、sudo vi /etc/default/tftpd-hpa

修改如下:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"

3、sudo mkdir /tftpboot                               #新建/tftpboot 目录

      sudo chmod -R 777 /tftpboot

      sudo chown -R nobody /tftpboot

4、sudo service tftpd-hpa start                   #启动TFTP服务

四、安装SDK(参考Hi3518EV20X/Hi3516CV200 SDK 安装以及升级使用说明)

1、将Hi3518E V200R001C01SPC030//01.software/board/Hi3518E_SDK_V1.0.3.0.tgz拷贝到虚拟机Linux中~/目录下(使用WinSCP)

2、解压SDK

tar -zxf Hi3518E_SDK_V1.0.3.0.tgz

3、修改SHELL

shell默认指向dash,这里需要改为bash,否则后面解压SDK包括运行脚本会报错

rm -f /bin/sh

ln -s /bin/bash /bin/sh

4、安装SDK

cd Hi3518E_SDK_V1.0.3.0

./sdk.cleanup(非必要)

./sdk.unpack

5、安装交叉编译工具链

cd /Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux

tar -xvf arm-hisiv300-linux.tar.bz2

sudo ./cross.install.v300

echo $PATH 保arm-hisiv300-linux被添加到环境路径中

6、编译osdrv(参考osdrv目录下readme)

编译:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

若出现如下错误:

error:“mkimage" command not find - U-boot images will not be built

解决方法:

sudo apt-get install uboot-mkimage

若报错则按提示执行

sudo apt-get install u-boot-tools

重新编译:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

出现mkyaffs2image100错误提示

解决方法:

cd ~/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/mkyaffs2image/mkyaffs2image

make clean

make

 

 

到处sdk安装完成,uboot、kernel、rootfs也可以单独编译,详细参照osdrv/readme

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

本资源为arm-linux下的海思编译链工具V300 C语言有三种标准库如下: 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。 其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。 2.uClibc 一个小型的C语言标准库,主要用于嵌入式。 其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。 对应的,此处的u意思是μ,Micro,微小的意思。 uClibc的特点: (1)uClibc比glibc要小很多。 (2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。 3.EGLIBC EGLIBC = Embedded GLIBC EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。 EGLIBC的目标是: (1)保持源码和二进制级别的兼容于Glibc 源代码架构和ABI层面兼容 如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。 这样就可以复用之前的很多的程序了。 (2)降低(内存)资源占用/消耗 (3)使更多的模块为可配置的(以实现按需裁剪不需要的模块) (4)提高对于交叉编译(cross-compilation)和交叉测试(cross-testing)的支持 【目前了解到的海思交叉编译工具链的应用环境】 arm-hisiv100-linux为基于uclibc的工具链,arm-hisiv200-linux 为基于 glibc 的工具链; arm-hisiv300-linux为基于uclibc的工具链,arm-hisiv400-linux 为基于 glibc 的工具链; arm-hisiv500-linux为基于uclibc的工具链,arm-hisiv600-linux 为基于 glibc 的工具链。 (在开发的时候,你编译内核所用的交叉编译链跟用户的应用程序所用的交叉编译链一定需要相同,不然没法调用系统内核的依赖库)   其中eglibc这种很容易被人开发者忽视,从而选错了编译工具链。 uClibc和Glibc并不相同,两者有许多不同之处,有可能给你带来一些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值