Pandaboard ES编译bootloader、xloader、内核、以及安卓系统

注意:本文引用www.pandaboard.ord 里面getting started的启动内容。按需要编译自己的系统。


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

 

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 /drivers/misc/ti-st/bt_drv.ko .

cp-Rfp /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


你可能感兴趣的:(嵌入式底层开发,Linux内核的一点事)