robherring / generic_device

A generic android device repository
62 stars 29 forks source link

linaro_arm64-userdebug build #20

Open shugaoye opened 6 years ago

shugaoye commented 6 years ago

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)

robherring commented 6 years ago

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).

shugaoye commented 6 years ago

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 ?

shugaoye commented 6 years ago

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 ?

robherring commented 6 years ago

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).