1

我想在 Pandabaord 上做 android Kitkat 移植。AOSP 代码编译成功,启动、系统、用户数据、u-boot 和 MLO 所有映像文件在编译后生成现在我想为 Panda 板制作一个可启动的 SD 卡,我使用了下面的脚本。

#!/bin/sh 
if [ $# -lt 2 ]; then
echo "example usage: $0 /dev/sdc \$ANDROID_ROOT"
exit 1
fi

DRIVE=$1
ANDROID_ROOT_DIR=$2

sudo umount ${DRIVE}*

sudo dd if=/dev/zero of=$DRIVE bs=1 count=1024
sudo sync
sudo parted $DRIVE mklabel gpt
sudo parted $DRIVE mkpart boot fat32 1MB 9MB
sudo parted $DRIVE mkpart system ext4 9MB 521MB
sudo parted $DRIVE mkpart cache ext4 521MB 1033MB
sudo parted $DRIVE mkpart userdata ext4 1033MB 2033MB
sudo parted $DRIVE mkpart media fat32 2033MB 3033MB
sudo sync

sudo mkfs.ext4 ${DRIVE}2 -L system
sudo mkfs.ext4 ${DRIVE}3 -L cache
sudo mkfs.ext4 ${DRIVE}4 -L userdata
sudo mkfs.vfat -F 32 ${DRIVE}5 -n media
sudo sync

sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/xloader.bin of=$DRIVE bs=131072 seek=1
sudo sync
sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/bootloader.bin of=$DRIVE bs=262144 seek=1
sudo sync
sudo dd if=${ANDROID_ROOT_DIR}/out/target/product/panda/boot.img of=${DRIVE}1
sudo sync
${ANDROID_ROOT_DIR}/out/host/linux-x86/bin/simg2img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.img ${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img
sudo dd if=${ANDROID_ROOT_DIR}/out/target/product/panda/system.ext4.img of=${DRIVE}2
sudo sync
sudo e2label ${DRIVE}2 system
sudo sync

运行上述脚本后,此代码将 DRIVE 划分为 5 个分区,分别是系统、缓存、用户数据和媒体。但是为什么没有创建引导?也就是{DRIVE}1没有设置知道吗?那么 xloader.bin、bootloader.bin 和 boot.img 会存储在哪里呢?

感谢您提前提供帮助。

4

1 回答 1

0

pandaboard 的 ROM 代码在两个地方查找“引导加载程序”代码,具体取决于您要使用的选项:

  • 原始模式 - 然后图像必须位于以下位置之一:SdCARD 上的 0KB、128KB、256KB、384KB 并且图像包含 ROM 检查的特殊标头。

  • 从活动主分区(文件必须称为 MLO)Fat12/16/32 引导。

看起来您将使用原始模式,因此 xloader.bin (MLO) 包含启动板的内容(偏移量 128KB)。该代码由熊猫板的ROM代码读取到内存,然后可能会加载下一阶段的bootloder-bootloader.bin

所以你在这里做什么:

sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/xloader.bin of=$DRIVE bs=131072 seek=1

sudo dd if=${ANDROID_ROOT_DIR}/device/ti/panda/bootloader.bin of=$DRIVE bs=262144 seek=1

只是将两个文件分别对应到 SDCARD 偏移量 128KB 和 256KB,并且这些图像存储在那里。

于 2014-10-01T21:26:20.363 回答