意:本文引用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 fromhttp://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