再接着将system.img写入到mmc.bin5并格式化mmc.bin7( 脚本实现,执行需要root权限):
#! /bin/bash set -e -x #Disk mmc.bin: 1610 MB, 1610612736 bytes #255 heads, 63 sectors/track, 195 cylinders, total 3145728 sectors #Units = sectors of 1 * 512 = 512 bytes #Sector size (logical/physical): 512 bytes / 512 bytes #I/O size (minimum/optimal): 512 bytes / 512 bytes #Disk identifier: 0x61a15a29 # Device Boot Start End Blocks Id System #mmc.bin1 2048 526335 262144 83 Linux #mmc.bin2 526336 1050623 262144 83 Linux #mmc.bin3 1050624 1574911 262144 83 Linux #mmc.bin4 1574912 3145727 785408 5 Extended #mmc.bin5 1576960 2101247 262144 83 Linux #mmc.bin6 2103296 2627583 262144 83 Linux # system partition /dev/sd?5 DEV=`losetup -o $((1576960*512)) --sizelimit $((262144*1024)) -f --show mmc.bin` if [ $? != 0 ] ; then exit 1; fi echo "DEV=${DEV}" if [ "${DEV}x" =~ "^/dev/loop" ] ; then exit 2; fi dd if=system.img of=${DEV} losetup -d ${DEV} # data partition /dev/sd?6 DEV=`losetup -o $((2103296*512)) --sizelimit $((262144*1024)) -f --show mmc.bin` if [ $? != 0 ] ; then exit 1; fi echo "DEV=${DEV}" if [ "${DEV}x" =~ "^/dev/loop" ] ; then exit 2; fi mkfs.ext4 -L data ${DEV} set +e tune2fs -O ^huge_file ${DEV} fsck.ext4 ${DEV} set -e losetup -d ${DEV} echo "Done!"
最后,修改out/host/linux-x86/bin/brilloemulator-arm文件:
exec \ ${ANDROID_BUILD_TOP}/prebuilts/android-emulator/linux-x86_64/qemu/linux-x86_64/qemu-system-aarch64 \ -M vexpress-a9 \ -m ${MEM}M \ -kernel ${ANDROID_BUILD_TOP}/out/target/product/brilloemulator_arm/kernel \ -initrd ${ANDROID_BUILD_TOP}/out/target/product/rpi/ramdisk.img \ -sd ${ANDROID_BUILD_TOP}/out/target/product/rpi/mmc.bin \ -append "console=ttyAMA0 ro noinitrd androidboot.hardware=rpi rootwait noinitrd init=/init androidboot.selinux=permissive" \ -nographic \ -redir tcp:5555::5555 \ -dtb ${ANDROID_BUILD_TOP}/out/target/product/brilloemulator_arm/kernel-dtb \ "$@"
执行brilloemulator-arm就可以开机了。
- 让Raspberry Pi 2B运行brilloemulator_arm-eng编译出来的代码