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

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系统开发的前期准备工作就完成了。

基于海思Hi3716cv200的Android源码编译及烧写,布布扣,bubuko.com

时间: 2024-10-12 22:04:30

基于海思Hi3716cv200的Android源码编译及烧写的相关文章

基于海思Hi3716cv200的Android源码编译及烧写之内置存储卡

问题:把编译好的镜像烧写到小板上后,发现设置--->存储 里只显示0.98G的系统空间,而且在设置--->应用 点开后会崩溃.崩溃时的日志信息如下: time( 3407): at com.android.settings.applications.ManageApplications$TabInfo.updateStorageUsage(ManageApplications.java:333) E/AndroidRuntime( 3407): at com.android.settings.

基于Hi3716cV200的Android源码编译问题---fastboot-burn.bin

在编译源码时有时会报与"fastboot-burn.bin"有关的错误. 解决办法如下: 进入device/hisilicon/bigfish/sdk目录,一次执行 make hiboot_clean; make hiboot_install. 如果在这个过程中报弄cfg.mak文件的错误,解决办法之一是在Android源码根目录进行一次完整编译,直到出错停止,此时会生成cfg.mak文件:解决方法之二是从sdk/configs拷贝单板配置文件到sdk目录并改名为cfg.mak. ==

android 源码编译及其运行模拟器相关问题记录

最近一直在看android源码相关的文档,包括编译源码,还有framework层的代码,本人很懒,一直没有写博客,今天想自己在编译一下源码,并且运行在模拟器中. 源码的版本不同,需要的jdk可能也有所不同,一切都参照官方给与的文档,下载源码的方法也参考官方文档. 注意点:1.环境变量要设置正确,不要出现错误 2.基本没有一次就能顺利编译源码的,多少都会出错,根据提示修改错误,安装一些包和库就可以搞定,具体问题具体查找,我遇到的问题也可多了,都是按官方文档解决的.有些问题可能和你的编译环境相关,这

有关android源码编译的几个问题

项目用到编译环境,与源码有些差异不能照搬,关键是连源码都没编译过,下面基本上是行网上照的各种自学成才的分享,病急乱投医了,都记在下面作为参照吧. 1.验证是否编译正确,在终端执行 emulator & (注:可进入${ANDROID_PRODUCT_OUT}目录,后执行 emulator -image system.img -data userdata.img -ramdisk ramdisk.img) 模拟器能正常启动则表明编译成功 Android源码编译调试详解  Android2.2的,有

Android源码编译jar包BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY的区别(二)

上文简单介绍了BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY编译出来jar包的区别, 那么你如果拿到了一个内容是dex格式的jar包,而你又偏偏需要这个jar包导入Eclipse来做开发, 手头偏偏又没有这个jar包的源码,或者有源码,但是没有Android源码编译(mm)的环境,怎么办? 这个时候谷歌安卓反编译工具(dex2jar, 本人实在太懒,就不提供下载链接了)就有用处了, 将jar包里面的dex文件(classes.dex)用此神器转换成一个

Android源码编译

Android源码编译学习小结 内容 系统源码编译 笔者之前在学习安卓系统源码的编译,为了能够印象深刻,粗略的总结了以下内容,希望对我一样的初学者有一些帮助. 系统编译的初始化指令 对android编译环境进行初始化很简单,分为两步.第一步打开终端输入source build/envseup.sh加载所需的文件. $ source build/envseup.sh including device/asusource build/envseup.shs/grouper/vendorsetup.s

Android源码编译make的错误处理

android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台: Linux yanggang 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux(Ubuntu10.10  32bit) 首先,我们先安装一些常用的工具curl: sudo  apt-get  inst

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我们编译好的系统刷到普通的Android手机上,因此在一般的科学实验中我们更多的是将修改好的android源码编译成模拟器,以模拟器的形式证明实验的成功与否. 事实上,Android作为一款开放源代码的移动设备操作系统,Google最初就考虑到了真机编译的问题,而关于这个问题的解决方案体现在每次Goo

android源码编译完成之后

android源码编译完成之后,在根目录下会有一个out目录生成,如果我们想要运行虚拟机的话,需要配置一下环境变量. 首先我们使用下面的命令打开配置环境变量的文件: gedit ~./bashrc 在这个文件的最后,添加如下代码: export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin export PATH=$