robherring / generic_device

A generic android device repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

linaro_arm64-userdebug build

shugaoye opened this issue · comments

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@framework@boot.art': Failed execv(/system/bin/dex2oat --image=/data/dalvik-cache/arm64/system@framework@boot.art --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@framework@boot.oat --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@framework@boot.art': Failed execv(/system/bin/dex2oat --image=/data/dalvik-cache/arm/system@framework@boot.art --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@framework@boot.oat --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).