• 热门专题

基于海思Hi3716cv200的Android源码编译及烧写

作者:  发布日期:2014-05-21 20:14:13
Tag标签:源码  
  • 1、先说说硬件配置,我最开始是在Win7(I7 4770,8G RAM,2T硬盘)里装ubuntu10.10 64位系统(4G RAM,200G 硬盘)进行源码编译,大概花了3个多小时。而且还多次出现outofmemoryerror 错误。最后将硬件升级为I7 4770、16G内存、2T硬盘,不装虚拟机,直接跑Ubuntu 10.10系统,Swap分区为16G,编译一次大概花了40分钟,没有报任何错误。 所以不推荐在虚拟机里面跑。

    2、根据官方文档配置编译环境:

    官方文档说的是在“发布包/Software/ServerInstall”目录中使用root权限执行ServerInstall.sh脚本,如:

       software/ServerInstall$sudo ./ServerInstall.sh

    但是经过我的实际操作发现,脚本中对jdk的安装配置指令无法执行,原因是它提供的源不对。我的解决办法是从Oracle官网直接下载jdk-6u45-linux-x64.bin,copy到/usr/lib/jvm(没有的目录要自己建)中进行安装,然后再/etc/bash.bashrc中配置java的环境变量:

    export JAVA_HOME="/usr/lib/jvm/xxx" 
    export PATH="/usr/lib/jvm/xxx/bin":$PATH

    注意:xxx指代你安装后的java目录名。

    然后再执行脚本:

    software/ServerInstall$sudo ./ServerInstall.sh


    3、重新登录后进入Android源码解压后的目录$ANDROID_SRC,在根目录下依次执行以下命令:

    source build/envsetup.sh 
    lunch Hi3716CV200-eng


    如果出现bison未找到之类的错误,使用

    sudo apt-get install bison
    


    装好即可。

    3、所有错误都解决后,就可以执行

    make bigfish -j8 2>&1 | tee bigfish.log


    命令进行源码的完整编译了。注意我的CPU是I7 4770,属于四核八线程,所以用-j8选项。而华为他们用的编译服务器是64核 CPU、32G内存,所以他们可以用-j32参数。总之,这个参数应该根据你的cpu来选。

    4、完整编译的结果就是在out\target\product\Hi3716CV200/下的Nand和Emmc目录下都会生成相应的镜像。接下来就是把这些镜像烧写到他们提供的开发板上。

    烧写镜像需要的工具:PC(Windows系统,因为华为只提供了windows下的烧写工具)、海思开发板、usb转串口线,网线,

    将生成Emmc目录拷贝到PC上。(之所以拷Emmc目录,是因为我这个板子的U14芯片焊接的是Emmc芯片,如果你的板子焊接的是Nandflash,就要拷Nand目录)。将$ANDROID_HOME/devicehisilicon/bigfish/sdk/tools/windows目录拷贝到PC上。windows目录中存储的是烧写工具拿一根usb转串口线,连接板子的J35和PC的USB接口上,打开超级终端。拿一根网线,连接板子的j13和PC的网口,并配置PC的IP地址为192.168.1.1 关闭开发板电源,打开windows目录中的Hitool工具,使用其中的HiBurn插件。具体配置见海思提供的视频教程。配置好后,选择”烧写eMMC“,分区表文件选择Emmc目录下的xml文件,然后在下面的选项中把Emmc目录中的所有镜像配置进去。点击”烧写“按钮后,打开开发板电源,就开始少写了,烧写完成会有提示。

    5、烧写完成后,使用HDMI线将开发板连接到显示器,启动开发板,开始会出现一段车展视频(FastPlay),随后便会进入Android系统。但是,目前的系统还不能播放mkv,ts等视频文件,原因是没有相关的库文件。这个得需要向华为索要音视频库,然后解压,并将最后的.so文件拷贝到Android系统的/system/lib目录。拷贝方法:

    将开发板和PC分别联网(必须得保证在同一局域网下,没测试两者互联,想来应该也是可以的),开发板Ip:192.168.0.88,PC ip:192.168.0.86在PC的命令行里执行:
    adb kill-server
    adb connect 192.168.0.88:5555
    adb devices(检查是否连接成功)
    adb remout
    adb push /audiolib/**/.../prebuilts/ /system/lib
    adb reboot

    注意:最好在push后reboot前,在超级终端里查看/system/lib目录下是否增加了一些音视频库文件

    至此,基于Hi3716c的Android系统开发的前期准备工作就完成了。



About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规