Building bootloader and kernel

Bootloader

Startwith building the bootloader. To learn more about the bootloader process or toclarify details,
lookin here

Usethe link above for commands on how to build u-boot and MLO. Use the parametersprovided below with those commands

Onceyou have cloned a git source, you will need to switch to a branch indicatedbelow (for bootloader or kernel).

/*This command lists the various branches to switch to and the current branchon*/

gitbranch -a

/*Thiscommand switches HEAD to a particular branch*/

gitcheckout -b <some-local-branch-name-here><branch-name-mentioned-below>

u-boot

source:git://gitorious.org/pandaboard/u-boot.git

branch:origin/omap4_panda_es2.0

boardconfig: omap4430panda_config

xloader

source:git://gitorious.org/pandaboard/x-loader.git

branch:origin/omap4_panda_L24.9

boardconfig: omap4430panda_config

Kernel

Oncedone building the bootloader, copy u-boot.bin and mkimage to a PATH folder andbuild the kernel. (Additional details can be found at
here)

source:git://gitorious.org/pandroid/kernel-omap

branch:origin/L27.5.2_panda

boardconfig: android_4430panda_defconfig

Latest release

source:git://gitorious.org/pandroid/kernel-omap

branch:origin/L27.8.2_panda

boardconfig: android_panda_defconfig

Android filesystem

Thefilesystem that is being used on PandaBoard is the reference file system fromTI OMAP4 releases. These are referred with L27x tags. Pandroid releases arerebased almost once a month. Please refer
to the Pandroidproject page for latest update on releases.

Thebelow example shows the instructions for the Froyo release from L27.5.2. Youcan refer to the details on the release and the build instructions from
http://omappedia.org/wiki/L27.INC1.5.2_Froyo_ES2_Release_Notes



Get Reference Source

Youcan get the Android source for this release by doing:

gitclone git://git.omapzoom.org/platform/omapmanifest.git

cdomapmanifest

gitreset --hard RLS27.5.2_Froyo

exportMANIFEST=`pwd`

mkdir-p 27.5.2/mydroid; cd 27.5.2/mydroid

exportMYDROID=`pwd`

repoinit -u $MANIFEST

reposync

Note:The manifest for some releases also contains the Bootloader. Ignore these asthey are meant for the Blaze platform. Build them from the PandaBoard projetcin gitorious.



Add Pandroid features

Pandroidprovides a desktop like environment with the use of HDMI display and USBkeyboard and mouse. To enable mouse cursor support and some PandaBoard specificfeatures, please apply the following
patches on top of your filesystem source.

Thanksto rowboat project from where we can cherry pick these patches.

Addrowboat git tree as a remote to cherry pick the patches. The patches are to beapplied in frameworks/base.

Aftercloning (repo sync) the TI Blaze release, perform the following.

cd frameworks/base

git remote add rowboatgit://gitorious.org/rowboat/frameworks-base.git

git fetch rowboat

git branch -a

git cherry-pick24117ce3ae32c40798d2d9bda80675814f76730d

git cherry-pick ac82681dffdba3ad0b93ed3558365bac1dacbcd1

git cherry-pick b0f60c6

git cherry-pick afee303

git cherry-pick 64d7c77

Building Android Filesystem(AFS)



cd$MYDROID

cp-Rfp device/ti/blaze/buildspec.mk.default buildspec.mk

Building AFS with Android Codecs Edit: “device/ti/blaze/BoardConfig.mk”: Uncomment “USE_CAMERA_STUB:= true” Comment “BOARD_USES_TI_CAMERA_HAL := true” Comment "HARDWARE_OMX:= true”

Note: No change inBoardConfig.mk to use TI Codecs

Onstep below use the number of cores you have available; i.e. -j4 or -j12:

makeclean (required for rebuild only) make -j4 2>&1 |tee$MYDROID/logs/android_make.out



Preparing Android binaries

ForGingerbread and onwards, the default build system generates eMMC basedbinaries, making
AndroideMMC Booting as default.

Thefollowing steps will prepare a directory, called myfs, containing all necessaryAndroid files that you must include within your SD card.

cd$YOUR_PATH

mkdirmyfs

cdmyfs

cp-Rfp $MYDROID/out/target/product/blaze/root/* .

cp-Rfp $MYDROID/out/target/product/blaze/system/ .

cp-Rfp $MYDROID/out/target/product/blaze/data/ .

cp-Rfp $MYDROID/device/ti/blaze/init.omap4sdp.rc init.rc

====Copy BT drivers and firmware ====

cp-Rfp <Path_To_Your_Kernel>/drivers/misc/ti-st/bt_drv.ko .

cp-Rfp <Path_To_Your_Kernel>/drivers/misc/ti-st/st_drv.ko .

cp-Rfp TIInit_7.2.31.bts system/etc/firmware

====Copy WLAN drivers and firmware ===

cp-Rfp $MYDROID/hardware/ti/wlan/wl1271/platforms/os/linux/tiwlan_drv.kosystem/etc/wifi

cp-Rfp firmware.bin system/etc/wifi

Next,modify the following file in the android file system created - tiwlan.ini filein directory system/etc/wifi.

Change the line 193

FROM:

STRFRefClock = 1 # Unit: Options5'bXX000 : Bit 0,1,2 - (0: 19.2MHz; 1: 26MHz; 2: 38.4MHz  (Default); 3: 52MHz;  4: 38.4MHz XTAL) ;

TO:

STRFRefClock = 2 # Unit: Options5'bXX000 : Bit 0,1,2 - (0: 19.2MHz; 1: 26MHz; 2: 38.4MHz  (Default); 3: 52MHz;  4: 38.4MHz XTAL) ;

Onlychange the STRFRefClock value from 1 to 2. The default tiwlan.ini is preset forthe Blaze and the Pandaboard requires a different value.



Additional Changes

Onceyou have created the Android filesystem (AFS), please make the below changes.Currently, PandaBoard is using the product spec from Blaze (another OMAP4 devplatform) and hence some changes are needed.

In"init.rc" file, diable the secondary display (comment out the below 4lines)

#Enable secondary display on Blaze

#  write/sys/devices/platform/omapdss/display1/enabled 1

#  write/sys/devices/platform/omapdss/overlay1/enabled 0

#  write/sys/devices/platform/omapdss/overlay1/manager "2lcd"

#  write/sys/devices/platform/omapdss/overlay1/enabled 1

Tomount the SD card, update "vold.fstab" file in system/etc/ toindicate 'mmc1' instead of 'mmc0'

##Example of a standard sdcard mount for the emulator / Dream

#Mounts the first usable partition of the specified device

Change

dev_mount sdcard /mnt/sdcard auto/devices/platform/mmci-omap-hs.0/mmc_host/mmc1

To

dev_mount sdcard /mnt/sdcard auto/devices/platform/mmci-omap-hs.0/mmc_host/mmc0

Note:Media clips are copied in the 1st partition (boot) for them to be detected byGallery app. If your SD card is not getting mounted, you could try through"Media Scanner" app.



A minimal FileSystem

Youcould also try the following minimal filesystem.

wgethttp://www.elinux.org/images/b/bd/Minimal-rootfs.tar.gz

addinit=/linuxrc to the bootargs

Pandaboard ES编译bootloader、xloader、内核、以及安卓系统的更多相关文章

  1. 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程

    原文                   http://blog.csdn.net/zhaoxy_thu/article/details/18883015                 本文主要对从 ...

  2. 超详细分析Bootloader到内核的启动流程(万字长文)

    @ 目录 Bootloader启动流程分析 Bootloader第一阶段的功能 硬件设备初始化 为加载 Bootloader的第二阶段代码准备RAM空间(初始化内存空间) 复制 Bootloader的 ...

  3. Linux课程实践二:编译模块实现内核数据操控

    一.内核模块原理 1. Linux内核增加功能 Linux内核整体结构很庞大,包含了很多的组件,现在有两种方法将需要的功能包含进内核当中: - 静态加载:将所有的功能都编译进Linux内核. - 动态 ...

  4. linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)

    内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...

  5. 使用uboot的tftp下载bootloader、内核、文件系统

    开发板 jz2440 下载uboot.bin tftp 0x30000000 u-boot.bin nand erase bootloader nand write bootloader 下载内核 t ...

  6. 【转】如何下载并编译Android4.0内核源码goldfish(图文)

    原文网址:http://blog.csdn.net/flydream0/article/details/7070392 关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程 ...

  7. linux内核系列(一)编译安装Linux内核 2.6.18

    1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所 ...

  8. 编译Android4.3内核源代码

     --------------------------------------------------------------------------------------------------- ...

  9. 【转】6.4.6 将驱动编译进Linux内核进行测试

    原文网址:http://www.apkbus.com/android-98520-1-1.html 前面几节都是将Linux驱动编译成模块,然后动态装载进行测试.动态装载驱动模块不会随着Android ...

随机推荐

  1. pat 1022 digital library

    #include <iostream> #include <sstream> #include <string> #include <vector> # ...

  2. ATS 分级缓存

    理解缓存分级cache hierarchies 缓存分级是由彼此能够相互通信的各级缓存组成的,ATS支持几种类型的缓存分级.所有的缓存分级都有父子缓存概念. 父缓存位于缓存分级的较高级别,ATS能将请 ...

  3. 完全卸载SQL Server 2008r2

    完全卸载SQL Server 2008r2   "五一"时进行了系统重装,在没有卸载SQL Server 2008情况下尝试安装SQL Server 2008r2 ,安装提示成功但 ...

  4. C++——函数的调用

    调用前先声明函数: >>若函数定义在调用点之前,则无需另外声明 >>若函数定义在调用点之后,则需要在调用函数前按如下形式声明函数原型(原型声明) 类型标识符   被调用函数名( ...

  5. 【原创】POI 生成Excel文件并下载

    ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 效果图: 实现 1.在pom中添加依赖: <!-- https://mvnrepository.com/artifact/org.apa ...

  6. JVM类加载机制---类加载器

    一.概念 "通过一个类的全限定名来获取描述此类的二进制字节流",实现这个动作的代码模块成为 类加载器. 二.分类 从java开发人员的角度出发,系统提供的类加载器大致分为如下3类: ...

  7. ansible playbook实践(三)-yaml文件写法

    playbook基于YAML语法来编写,基本语法规则如下: 1.大小写敏感 2.使用缩进表示层级关系 3.缩进时不允许使用Tab键,只允许使用空格 4.缩进的空格数目不重要,只要相同层级的元素左侧对齐 ...

  8. 《深入理解Java虚拟机》——垃圾收集器与内存分配策略

    GC需要完成: 哪些内存需要回收 什么时候回收 如何回收 如何确定对象不再使用 引用计数算法 给对象添加一个引用计数器,当有一个地方引用它时,计数器值进行加1操作:当引用失效时,计数器值进行减1操作: ...

  9. ZooKeeper简介与集群部署

    ZooKeeper 是一个开源的分布式协调服务,由雅虎公司创建,是Google Chubby的开源实现,ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的 ...

  10. [Python Study Notes]字符串操作

    字符串操作 a.字符串格式化输出 name = "liu" print "i am %s " % name     #输出: i am liu   PS: 字符 ...