pandabaord SD卡上的引导分区没有正确创建
问题描述:
我想做Pandabaord上的android Kitkat Porting。 AOSP代码编译成功,现在编译后生成引导,系统,用户数据,u-boot和MLO所有映像文件。我想为Panda板制作一个可引导的SD卡,我使用下面的脚本。pandabaord 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全部存储在哪里?
感谢您的提前帮助。在PANDABOARD的
答
ROM代码会在两个地方是“引导程序”的代码,根据选项,您要使用:
原始模式 - 那么图像必须在以下位置之一: SdCARD上的0KB,128KB,256KB,384KB和镜像包含ROM检查的特殊标题。
从活动的主分区(文件必须称为MLO)Fat12/16/32启动。
它看起来像你要使用原始模式,所以xloader.bin(MLO)包含东西启动你的板(偏移128KB)。该代码是通过ROM代码读取内存PANDABOARD ,然后可能加载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
只是应付两个文件到SD卡的偏移128KB和256KB,这些图像存储在那里。