Android 7.1 Industry版本有概率启动报错(无法获取EGLConfig)

本帖最后由 prece 于 2020-7-22 11:48 编辑

在RK3399开发板/Station P1上,运行Android 7.1 Industry版本有概率启动报如下错误:

07-22 11:36:31.746 595 595 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 595 (surfaceflinger)
07-22 11:36:31.747 10 10 W : debuggerd: handling request: pid=595 uid=1000 gid=1003 tid=595
07-22 11:36:31.748 0 0 I KERNEL : [ 5175.189151] ueventd: ueventd started!
07-22 11:36:31.754 612 612 E : debuggerd: Unable to connect to activity manager (connect failed: Connection refused)
07-22 11:36:31.754 0 0 E KERNEL : [ 5175.190122] ueventd: invalid gid ‘trace’
07-22 11:36:31.754 612 612 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-22 11:36:31.754 612 612 F DEBUG : Revision: ‘0’
07-22 11:36:31.754 612 612 F DEBUG : ABI: ‘arm64’
07-22 11:36:31.755 612 612 F DEBUG : pid: 595, tid: 595, name: surfaceflinger >>> /system/bin/surfaceflinger <<<
07-22 11:36:31.755 612 612 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------
07-22 11:36:31.757 612 612 F DEBUG : Abort message: ‘no suitable EGLConfig found, giving up’
07-22 11:36:31.757 612 612 F DEBUG : x0 0000000000000000 x1 0000000000000253 x2 0000000000000006 x3 0000000000000008
07-22 11:36:31.757 612 612 F DEBUG : x4 6579614c74656700 x5 0000000000000000 x6 000000789c3a6000 x7 0000000000065756
07-22 11:36:31.757 612 612 F DEBUG : x8 0000000000000083 x9 ffffffffffffffdf x10 0000000000000000 x11 0000000000000001
07-22 11:36:31.757 612 612 F DEBUG : x12 0000000000000018 x13 000000005f17b43f x14 002c6c1e0fc29525 x15 000014064d772288
07-22 11:36:31.758 612 612 F DEBUG : x16 000000789bfb7ee0 x17 000000789bf61b4c x18 0000000000000000 x19 000000789c45bb40
07-22 11:36:31.758 612 612 F DEBUG : x20 0000000000000006 x21 000000789c45ba98 x22 000000000000000c x23 000000789c224290
07-22 11:36:31.758 612 612 F DEBUG : x24 000000789c2242d8 x25 0000000000000001 x26 000000789c224328 x27 1718e7c36578815e
07-22 11:36:31.758 612 612 F DEBUG : x28 0000000000000000 x29 0000007ff94e3cf0 x30 000000789bf5ef78
07-22 11:36:31.758 612 612 F DEBUG : sp 0000007ff94e3cd0 pc 000000789bf61b54 pstate 0000000060000000
07-22 11:36:31.762 612 612 F DEBUG :
07-22 11:36:31.762 612 612 F DEBUG : backtrace:
07-22 11:36:31.762 612 612 F DEBUG : #00 pc 000000000006bb54 /system/lib64/libc.so (tgkill+8)
07-22 11:36:31.762 612 612 F DEBUG : #01 pc 0000000000068f74 /system/lib64/libc.so (pthread_kill+64)
07-22 11:36:31.762 612 612 F DEBUG : #02 pc 0000000000023f68 /system/lib64/libc.so (raise+24)
07-22 11:36:31.762 612 612 F DEBUG : #03 pc 000000000001c810 /system/lib64/libc.so (abort+52)
07-22 11:36:31.762 612 612 F DEBUG : #04 pc 0000000000010da8 /system/lib64/libcutils.so (__android_log_assert+224)
07-22 11:36:31.762 612 612 F DEBUG : #05 pc 000000000003d35c /system/lib64/libsurfaceflinger.so
07-22 11:36:31.762 612 612 F DEBUG : #06 pc 000000000003cdb4 /system/lib64/libsurfaceflinger.so
07-22 11:36:31.762 612 612 F DEBUG : #07 pc 000000000004211c /system/lib64/libsurfaceflinger.so (_ZN7android14SurfaceFlinger4initEv+816)
07-22 11:36:31.762 612 612 F DEBUG : #08 pc 000000000000134c /system/bin/surfaceflinger
07-22 11:36:31.762 612 612 F DEBUG : #09 pc 000000000001a594 /system/lib64/libc.so (__libc_init+88)
07-22 11:36:31.762 612 612 F DEBUG : #10 pc 00000000000011e8 /system/bin/surfaceflinger

出现这个错误后,只能通过重启板子才能修复。
简单定位了一下,出现这个报错是因为SurfaceFlinger在执行eglGetConfig函数时,获取到的config数量为0(framework/native/services/surfaceflinger/RenderEngine/RenderEngine.cpp:287)。

请教Firefly各位同事,这个错误咱们有遇到过吗?有没有解决办法?

有详细点的logcat日志和内核日志吗?传上来分析一下。

本帖最后由 prece 于 2020-7-23 11:31 编辑

留意到出现问题时,还会有如下日志:
07-23 10:52:13.793 27 27 E mali : Failed creating base context during opening of kernel driver.
07-23 10:52:13.793 27 27 E mali : Kernel module may not have been loaded
07-23 10:52:13.793 27 27 W libEGL : eglInitialize(0x7557282000) failed (EGL_NOT_INITIALIZED)

这些日志似乎是从vendor/rockchip/common/gpu/MaliT860/lib/arm64/libGLES_mali.so打印出来的,请帮忙分析!

此外,出现错误时候,mali相关的kernel日志如下,不过这些日志和正常情况下的kernel日志并无很大区别。
[ 0.858899] mali ff9a0000.gpu: Failed to get regulator
[ 0.858915] mali ff9a0000.gpu: Power control initialization failed
[ 1.266923] mali ff9a0000.gpu: leakage=24
[ 1.279857] mali ff9a0000.gpu: temp=51111, pvtm=124275 (124155 + 120)
[ 1.281105] mali ff9a0000.gpu: pvtm-volt-sel=1
[ 1.282412] mali ff9a0000.gpu: GPU identified as 0x0860 r2p0 status 0
[ 1.282876] mali ff9a0000.gpu: Protected mode not available
[ 1.283800] mali ff9a0000.gpu: l=0 h=2147483647 hyst=5000 l_limit=0 h_limit=0
[ 1.284087] mali ff9a0000.gpu: Using configured power model mali-simple-power-model, and fallback mali-simple-power-model
[ 1.285296] mali ff9a0000.gpu: Probed as mali0
[ 1.574523] Mali: Mali device driver loaded

本帖最后由 lxp 于 2020-7-24 09:43 编辑

prece 发表于 2020-7-23 11:03
留意到出现问题时,还会有如下日志:
07-23 10:52:13.793 27 27 E mali : Failed creating base …

请问可以把整个日志文件发上来吗?详细点的日志才好定位问题!谢谢!

lxp 发表于 2020-7-24 09:40
请问可以把整个日志文件发上来吗?详细点的日志才好定位问题!谢谢!

完整的日志不是很方便,我已经仔细查看过了,和eglInitialize失败相关的就是上面的这些日志。
能帮忙查看一下libGLES_mali.so在什么情况下会打印下面这两句话吗?这个库的代码你们没有开源。

07-23 10:52:13.793 27 27 E mali : Failed creating base context during opening of kernel driver.
07-23 10:52:13.793 27 27 E mali : Kernel module may not have been loaded

prece 发表于 2020-7-25 17:12
完整的日志不是很方便,我已经仔细查看过了,和eglInitialize失败相关的就是上面的这些日志。
能帮忙查 …

只把开机部分log发出来即可,麻烦传一份正常开机和一份异常开机的log,不然不好分析

这个问题后来发现是我们自己导致的问题,已经解决了,谢谢!

07-23 10:52:13.793 27 27 E mali : Failed creating base context during opening of kernel driver.
07-23 10:52:13.793 27 27 E mali : Kernel module may not have been loaded
你好,您的这个错误是怎么解决的?能否提供一下解决方法。我也遇到了这个错误

prece 发表于 2020-7-31 09:38
这个问题后来发现是我们自己导致的问题,已经解决了,谢谢!

您好 请问怎么解决的

wx_frank_Sxy 发表于 2022-3-8 10:03
07-23 10:52:13.793 27 27 E mali : Failed creating base context during opening of kernel dri …

您好 请问问题解决了吗