linux 生成的system.img没有在模拟器上运行

kg7wmglp  于 5个月前  发布在  Linux
关注(0)|答案(2)|浏览(52)

我想为Android TV构建一个自定义ROM。
我已经按照Android Source Code - AOSP website上给出的步骤,并使用以下命令下载了源代码:

repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j16 -c

source build/envsetup.sh
lunch aosp_x86-eng

字符串
要构建系统映像,我使用以下命令:

make -j16


它使用最新的Q版本来构建:

PLATFORM_VERSION_CODENAME=Q
PLATFORM_VERSION=Q
TARGET_PRODUCT=aosp_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=LiveTv
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-130-generic-x86_64-Ubuntu-16.04.4-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OC-MR1
OUT_DIR=out


构建总是成功的。system.imgramdisk.img也会生成。
我想在模拟器上测试系统镜像。我使用了下面的命令:

./emulator -avd tvrom -sysdir out/target/product/generic_x86/ -system out/target/product/generic_x86/system.img -ramdisk out/target/product/generic_x86/ramdisk.img -data out/target/product/generic_x86/userdata.img -kernel prebuilts/qemu-kernel/x86/kernel-qemu


avd的名称是tvrom,其他参数是我构建的系统映像的路径。
但是,在这样做之后,system.img不会在模拟器中启动,并且仍然是黑屏。
此外,在终端中打印时出现错误:

Segmentation fault (core dumped)


我搜索了一下,但没有找到任何解决办法。有人能帮忙吗?

已编辑

如果有人提供了在Android Emulator上刷新和 Boot 最新的AOSP_X86或AOSP_X86_64自定义ROM的步骤列表,那么它将是有用的。

yftpprvb

yftpprvb1#

1.主分支不是稳定的分支。请始终同步正式标记的分支。
1.模拟器的正确午餐目标是32位的sdk_phone_x86或64位的sdk_phone_x86_64。

pu82cl6c

pu82cl6c2#

验证构建配置:仔细检查您的构建配置,尤其是lunch命令。确保您为Android TV x86选择了正确的目标。您可以使用lunch来选择正确的目标:
午餐aosp_x86-eng
使用预构建内核:您可以尝试使用模拟器本身提供的内核,而不是使用prebuilts目录中的内核。使用-kernel-qemu选项,而不指定路径:
./emulator -avd tvrom -sysdir out/target/product/generic_x86/ -system out/target/product/generic_x86/system.img -ramdisk out/target/product/generic_x86/ramdisk.img -data out/target/product/generic_x86/userdata.img -kernel prebuilts/qemu-kernel/x86/kernel-qemu
使用Android TV AVD:创建一个专门用于Android TV的AVD。您可以使用AVD管理器来执行此操作:
avdmanager create avd -n tvrom -k“system-images;android-29;google_apis_playstore;x86”
然后,使用AVD名称启动模拟器:
模拟器-avd tvrom
重建和修复:如果上述步骤都不能解决问题,您可能需要清理生成并尝试重建ROM。有时,问题可能是由不完整或损坏的生成引起的。
make clean make -j16

相关问题