背景说明:

上一篇博文讲述了使用linaro release 14.10的现成boot和android kernel版本制作SD启动卡,本文讲述如何使用linaro release 14.10 android源码编译pandaboard的SD卡启动包.

制作步骤:

(¥),到http://releases.linaro.org/14.10/android/panda下载linaro_android_build_cmds.sh,存放在ubantu系统的某个文件夹下面。打开终端,进入 该目录下。执行$sh linaro_android_build_cmds.sh,会先下载android源码包到该目录下,文件夹名称就是"android"。

在下载过程中,会出现如下几个文件包不能下载的错误提示,出现该错误的原因是linaro文件库上已经删除了这几个目录(具体原因不详),但出现这个问题后,会导致下面的下载无法继续完成,因此也就不会有编译的结果了。

Fetching projects:  18% (76/420)  fatal: remote error: access denied or repository not exported: /people/harigopal.gollamudi/lava-blackbox
fatal: remote error: access denied or repository not exported: /people/harigopal.gollamudi/lava-blackbox
error: Cannot fetch people/harigopal.gollamudi/lava-blackbox
Fetching projects:  30% (126/420)  fatal: remote error: access denied or repository not exported: /people/ragesh.radhakrishnan/libjpeg-turbo
fatal: remote error: access denied or repository not exported: /people/ragesh.radhakrishnan/libjpeg-turbo
error: Cannot fetch people/ragesh.radhakrishnan/libjpeg-turbo
Fetching projects:  46% (194/420)  fatal: remote error: access denied or repository not exported: /people/harigopal.gollamudi/glmark2
fatal: remote error: access denied or repository not exported: /people/harigopal.gollamudi/glmark2
error: Cannot fetch people/harigopal.gollamudi/glmark2
Fetching projects: 100% (420/420), done.  
Syncing work tree:  34% (143/420)  fatal: failed to unpack tree object HEAD
Traceback (most recent call last):
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/main.py", line 506, in <module>    _Main(sys.argv[1:])
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/main.py", line 482, in _Main
    result = repo._Run(argv) or 0
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/main.py", line 161, in _Run
    result = cmd.Execute(copts, cargs)
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/subcmds/sync.py", line 681, in Execute   project.Sync_LocalHalf(syncbuf)
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/project.py", line 1196, in Sync_LocalHalf    self._InitWorkTree()
  File "/home/wjt/u-boot/linaro_omap4/aosp2/android/.repo/repo/project.py", line 2298, in _InitWorkTree
    raise GitError("cannot initialize work tree")
error.GitError: cannot initialize work tree

上述问题的解决办法是:到已经下载的开源安卓源码(AOSP)中找到.repo文件夹(隐藏文件夹),在该文件夹下面有manifest.xml,这个是repo(版本管理软件)用来创建本地目录的工具,根据上面的错误查找到相应的*.git文件,可以查看到其在本地目录中的位置,然后将这3个文件拷贝到对应的目录下面,就可以顺利完成安卓系统编译工作,整个下载编译大概需要6个小时左右(视网络与工作机的速度情况),生成的版本在android/out/target/product/pandaboard下面,有MLO、u-boot.bin、u-boot.img、boot.tar.bz2、system.tar.bz2、userdata.tar.bz2等。

(¥),执行如下脚本,用于下载配置linaro的版本制作工具包,

  $ sudo add-apt-repository ppa:linaro-maintainers/tools$ sudo apt-get update$ sudo apt-get install linaro-image-tools

(¥),进入android/out/target/product/pandaboard目录下,执行如下脚本,先查看sd卡的分区情况,是否存在sdc1,sdc2,sdc3,sdc4,sdc5等分区,如果存在将生成的MLO,boot.bin,boot.img,kernel,android系统安装到相应的分区中,要注意分区的名称是sdc还是sdx(正常情况下,经过这一步后,会在SDX的system分区下生成一系列系统文件夹如app、bin、etc、framework、verdor灯,如果没有,则说明sd卡分区存在问题,需要先用gparted工具将原分区删除后,再执行如下命令,应该会正确生成分区文件系统)

$dmesg|tail
$linaro-android-media-create --mmc /dev/sdc --dev panda --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

(¥),进入android/out/target/product/pandaboard目录下,将install-binaries-4.0.4.sh(调用安装图形库并加载到SD卡中的脚本)和imgtec-panda-imm76i-67545da7.tgz(图形库安装脚本)拷贝到该目录下,在本目录下执行如下脚本(注意,如果执行过程中存在下载链接问题等,需要将所需要的文件单独下载,并需要单步执行脚本)

$ chmod a+x install-binaries-4.0.4.sh
$ ./install-binaries-4.0.4.sh

(¥),将SVT制作的MLO,boot.bin,boot.img替换SD卡中boot目录下的文件,然后右键“弹出驱动器”,将SD卡从ubantu系统中卸载,并将SD卡装到pandaboard上,上电启动,就可以看到显示器上的android标志了。

Pandaboard OMAP4460用linaro android源码启动相关推荐

  1. Android4.0源码Launcher启动流程分析【android源码Launcher系列一】

    最近研究ICS4.0的Launcher,发现4.0和2.3有稍微点区别,但是区别不是特别大,所以我就先整理一下Launcher启动的大致流程. Launcher其实是贯彻于手机的整个系统的,时时刻刻都 ...

  2. Android 源码分析 Activity的启动模式

    一直想抽空针对AMS进行源码分析,无奈一方面因为很忙,另外AMS很复杂,涉及的知识点也比较多,今天利用五一假期对AMS的一个方面,Activity的启动模式进行源码分析,这里面包括了ActivityR ...

  3. Android中ICS4.0源码Launcher启动流程分析【android源码Launcher系列一】

    最近研究ICS4.0的Launcher,发现4.0和2.3有稍微点区别,但是区别不是特别大,所以我就先整理一下Launcher启动的大致流程.Launcher其实是贯彻于手机的整个系统的,时时刻刻都在 ...

  4. android 源码编译 模拟器emulator启动,Android 模拟器运行编译后的源码

    下载Android源码以及如何编译,这里就不多介绍了,照着www.android.com给的步骤进行,主要介绍一下使用make命令编译好了源码之后,如何使用模拟器来运行生成的镜像之类的文件. 方式应该 ...

  5. Android 源码 PackageManagerService 启动流程分析

    <Android 源码 installPackage 流程分析>一节着重分析了 apk 安装流程,接下来我们分析 PackageManagerService 启动时都做了些什么? 执行 P ...

  6. Intent.createChooser方法源码解析(按我的解析,只有一个Intent是不会启动的??Android源码7.1.2)

    参考: https://www.geek-share.com/detail/2631984744.html https://tuzhao.org/article/34#directory0136555 ...

  7. 【Android 源码学习】 init启动

    目录 Android 源码学习 init启动 从main.cpp开始 init.cpp 部分逻辑 init启动zygote 属性服务 总结 Android 源码学习 init启动 Android 11 ...

  8. Android源码编译及启动模拟器

    Android源码编译及启动模拟器 源码下载 (1)更改下载源 (2)安装源码下载工具 (3)下载源码 (4)安装环境依赖 源码编译 启动模拟器 源码下载 Ubuntu18.0 (1)更改下载源 源码 ...

  9. 【Android 源码学习】Zygote启动原理

    Android 源码学习 Zygote启动原理 望舒课堂 Zygote进程启动原理学习记录整理. Zygote简介 Zygote是进程在init进程启动时创建的,进程本身是app_process,来源 ...

最新文章

  1. 阿里员工绩效只拿3.25!自我反省:平时假装努力!晚上没加班!去厕所时间太长!还老买彩票!...
  2. linux memcache 源码包,Linux 安装Memcache扩展支持(示例代码)
  3. 简述数据字典的结构及其作用_数据结构——树基本概念及其遍历
  4. 如何使用JavaScript开发AR(增强现实)移动应用 (一)
  5. scrapy 搜索关键字_Scrapy 新浪微博搜索爬虫
  6. 32岁武汉硕士毕业4年后重新高考,考上本硕需再读8年:“不是一时冲动”
  7. typedef和#define的作用域问题
  8. php怎么创建进程,在php中为长时间运行的进程创建后台进程
  9. Jmeter系列之参数化
  10. GAN(Generative Adversarial Networks) 初步
  11. C语言的图形函数库贴吧,自己写的一个图形库,有点问题.来请教大家了
  12. 证券secuerity英语
  13. Cannot pull, git cannot resolve reference ORIG_HEAD
  14. oracle between and 边界查询用法
  15. loopback接口介绍
  16. 谷歌浏览器Google如何设置站点弹出窗口
  17. Arcgis开发系列2 - 修改arcgis infowindow 放大和缩小的模板
  18. 5、C++结构体的使用
  19. CARLA 学习笔记1:CARLA简介
  20. LaTex论文排版 | latex插入图片

热门文章

  1. Linux常用命令(bash的使用、关机和重启命令)
  2. ROS 重要框架、接口学习资源小汇总
  3. WIN10怎么让自己桌面看起来好看一点
  4. 给机器加脑子的“三板斧”
  5. 45个英文论文写作神网站!
  6. 高等数学一:函数与极限:考点总结
  7. 在加权异构图上的基于元路径个性化推荐——SemRec
  8. Windows Server 2012 活动目录安装
  9. 一位高人解答的关于开启“数据漫游”才能上网的解答
  10. hive常用内部函数