generic_device
generic_device copied to clipboard
linaro_arm64-userdebug build
Hi Rob,
I tried to build linaro_arm64-userdebug and test it in QEMU, but I got some errors. Please help to take a look at the attached log files. It seems something is wrong with drm_hwcomposer. I tested both android-m and hwc2 branches.
01-24 03:51:59.296 1588 1588 E hwc-drm-plane: Could not get rotation property
01-24 03:51:59.300 1588 1588 I hwc-drm-plane: Could not get alpha property
01-24 03:51:59.338 1588 1588 E hwc-drm-plane: Could not get rotation property
The kernel config may have problem either. I got the below errors from dex2oat: linaro_arm64_defconfig.txt
01-24 04:01:40.409 1612 1612 E art : Could not create image space with image file '/system/framework/boot.art'. Attempting to fall back to imageless running. Error was: Failed to generate image '/data/dalvik-cache/arm64/system@[email protected]': Failed execv(/system/bin/dex2oat --image=/data/dalvik-cache/arm64/system@[email protected] --dex-file=/system/framework/core-oj.jar --dex-file=/system/framework/core-libart.jar --dex-file=/system/framework/conscrypt.jar --dex-file=/system/framework/okhttp.jar --dex-file=/system/framework/core-junit.jar --dex-file=/system/framework/bouncycastle.jar --dex-file=/system/framework/ext.jar --dex-file=/system/framework/framework.jar --dex-file=/system/framework/telephony-common.jar --dex-file=/system/framework/voip-common.jar --dex-file=/system/framework/ims-common.jar --dex-file=/system/framework/apache-xml.jar --dex-file=/system/framework/org.apache.http.legacy.boot.jar --oat-file=/data/dalvik-cache/arm64/system@[email protected] --instruction-set=arm64 --instruction-set-features=smp,a53 --base=0x7028b00
01-24 04:01:40.410 1612 1612 E art : Attempted image: /system/framework/boot.art
01-24 04:01:41.332 1727 1732 F dex2oat : art/dex2oat/dex2oat.cc:450] dex2oat did not finish after 570 seconds
01-24 04:01:41.543 1613 1613 E art : Could not create image space with image file '/system/framework/boot.art'. Attempting to fall back to imageless running. Error was: Failed to generate image '/data/dalvik-cache/arm/system@[email protected]': Failed execv(/system/bin/dex2oat --image=/data/dalvik-cache/arm/system@[email protected] --dex-file=/system/framework/core-oj.jar --dex-file=/system/framework/core-libart.jar --dex-file=/system/framework/conscrypt.jar --dex-file=/system/framework/okhttp.jar --dex-file=/system/framework/core-junit.jar --dex-file=/system/framework/bouncycastle.jar --dex-file=/system/framework/ext.jar --dex-file=/system/framework/framework.jar --dex-file=/system/framework/telephony-common.jar --dex-file=/system/framework/voip-common.jar --dex-file=/system/framework/ims-common.jar --dex-file=/system/framework/apache-xml.jar --dex-file=/system/framework/org.apache.http.legacy.boot.jar --oat-file=/data/dalvik-cache/arm/system@[email protected] --instruction-set=arm --instruction-set-features=smp,div,atomic_ldrd_strd --base=
01-24 04:01:41.543 1613 1613 E art : Attempted image: /system/framework/boot.art
[ linaro_arm64_android_m.txt linaro_arm64_hwc2.txt
](url)
Use the master branch for drm_hwc, but for now hwc2 is the same. The rotation error isn't fatal (probably should just be info msg).
I'm not sure what's going on with dex2oat. Could be timing out because QEMU is too slow. You can change the build config to do the optimization at build time (DEX_PREOPT).
Thanks! Using DEX_PREOPT, I resolved the dex2oat issue. However, the key issue is the below error message.
01-24 03:51:59.349 1588 1588 E hwcomposer-drm: Failed to create dummy sw sync timeline -1
This error causes the below problem:
static int hwc_device_open(const struct hw_module_t *module, const char *name,
struct hw_device_t **dev) {
...
ret = ctx->dummy_timeline.Init();
if (ret) {
ALOGE("Failed to create dummy sw sync timeline %d", ret);
return ret;
}
...
The function hwc_device_open is not completed successfully due to this. Do you have any idea why ctx->dummy_timeline.Init() fail ?
I did more investigation and I found that sw_sync.c is not existed in the common kernel so /dev/sw_sync is not available. You should have this in your environment, right ?
The kernel files have moved around a bit and /dev/sw_sync has moved to debugfs. You need the kconfig options enabled. libsync should have the necessary updates unless you are on N or earlier (IIRC).