[Gta04-owner] Where did /dev/dri/card0 and /dev/fb0 run off to?

Josua Mayer josua.mayer97 at gmail.com
Fri Jun 22 23:34:56 CEST 2018


And some more progress!
The error message about dummy sw sync timeline goes away when
1) /sys/kernel/debug/sync/sw_sync is writable by surfaceflinger
2) libsync is patched to know about that path

2) is easily solved by cherry-picking a commit from upstream
1) is a little more troublesome: I understand ueventd is responsible for
setting permissions, so I added a line to ueventd.gta04.rc:
/sys/kernel/debug/sync/sw_sync    0660    root    graphics
But an ls after boot has shown that the file continues to be owned by
root, with mode 644.
I finally ended up adding a chmod 666 to init.gta04.rc "on boot".

Now SurfaceFlinger makes some serious progress by creating an EGL
context and getting information about available GL-ES, until it finally
dies :(
01-01 07:08:45.634  2371  2371 F libc    : Fatal signal 11 (SIGSEGV),
code 1, fault addr 0x0 in tid 2371 (surfaceflinger)

Please find attached a log-file with more detailed information.

I also made a false conclusion down below!
pwm_omap_dmtimer was always loaded, the missing modules were
encoder-opa362 and connector-analog-tv. Without these omapdrm never went
ahead to create the framebuffer, and dri devices.

I am not sure I will be able to figure out why SurfaceFlinger dies.
Volunteers welcome to drop in!

br
Josua Mayer

Am 22.06.2018 um 21:35 schrieb Josua Mayer:
> Okay. We know that fb0 exists on the letux debian, which the android
> kernel .config is based off.
> So the problem is likely a kernel module that has to be loaded, but had
> been overlooked.
>
> I took all modules present on the letux system, and added a section to
> load_modules.sh for loading them one by one. Called sleep 1 after each
> one and let it boot once more. This time I could watch when the
> framebuffer device came up:
> 01-01 05:06:51.872  1555  1555 I load_modules.sh: Loading module
> snd_soc_gtm601
> 01-01 05:06:52.055  1555  1555 I load_modules.sh: done
> 01-01 05:06:53.413  1555  1555 I load_modules.sh: Loading module
> pwm_omap_dmtimerdone
> [   63.811706] omapdrm omapdrm.0: DMM not available, disable DMM support
> [   64.031341] omapdrm omapdrm.0: Tiled buffers require DMM
> [   64.086120] Console: switching to colour frame buffer device 60x40
> [   64.116973] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
>
> So it appears I have identified at least one module that was missing,
> pwm_omap_dmtimer.
> Maybe there are some more, as a lot more modules were actually loaded by
> the script.
>
> But this is good news, because replicant is getting much further now:
> 01-01 05:06:55.681  2651  2651 I SurfaceFlinger: SurfaceFlinger is starting
> 01-01 05:06:55.684  2651  2651 I SurfaceFlinger: SurfaceFlinger's main
> thread ready to run. Initializing graphics H/W...
> 01-01 05:06:55.684  2651  2651 D libEGL  : Emulator without GPU support
> detected. Fallback to software renderer.
> 01-01 05:06:55.693  2651  2651 D libEGL  : loaded
> /system/lib/egl/libGLES_android.so
> 01-01 05:06:55.857  2651  2651 E gralloc : failed to put fb info
> 01-01 05:06:55.857  2651  2651 W gralloc : page flipping not supported
> (yres_virtual=640, requested=1280)
> 01-01 05:06:55.857  2651  2651 I gralloc : using (fd=12)
> 01-01 05:06:55.857  2651  2651 I gralloc : id           = omapdrm
> 01-01 05:06:55.857  2651  2651 I gralloc : xres         = 480 px
> 01-01 05:06:55.857  2651  2651 I gralloc : yres         = 640 px
> 01-01 05:06:55.857  2651  2651 I gralloc : xres_virtual = 480 px
> 01-01 05:06:55.857  2651  2651 I gralloc : yres_virtual = 640 px
> 01-01 05:06:55.857  2651  2651 I gralloc : bpp          = 32
> 01-01 05:06:55.857  2651  2651 I gralloc : r            = 16:8
> 01-01 05:06:55.857  2651  2651 I gralloc : g            =  8:8
> 01-01 05:06:55.857  2651  2651 I gralloc : b            =  0:8
> 01-01 05:06:55.857  2651  2651 I gralloc : width        = 76 mm
> (160.421051 dpi)
> 01-01 05:06:55.857  2651  2651 I gralloc : height       = 102 mm
> (159.372543 dpi)
> 01-01 05:06:55.857  2651  2651 I gralloc : refresh rate = 60.00 Hz
> 01-01 05:06:55.884  2651  2651 E hwc-drm-plane: Could not get rotation
> property
> 01-01 05:06:55.884  2651  2651 I hwc-drm-plane: Could not get alpha property
> 01-01 05:06:55.886  2651  2651 E hwc-drm-plane: Could not get rotation
> property
> 01-01 05:06:55.886  2651  2651 I hwc-drm-plane: Could not get alpha property
> 01-01 05:06:55.888  2651  2651 E hwc-drm-plane: Could not get rotation
> property
> 01-01 05:06:55.888  2651  2651 I hwc-drm-plane: Could not get alpha property
> 01-01 05:06:55.889  2651  2651 E hwcomposer-drm: Failed to create dummy
> sw sync timeline -1
> 01-01 05:06:55.890  2651  2651 E SurfaceFlinger: composer device failed
> to initialize (Operation not permitted)
> 01-01 05:06:55.890  2651  2651 W SurfaceFlinger: no suitable EGLConfig
> found, trying a simpler query
> 01-01 05:06:55.890  2651  2651 F SurfaceFlinger: no suitable EGLConfig
> found, giving up
> 01-01 05:06:55.890  2651  2651 F libc    : Fatal signal 6 (SIGABRT),
> code -6 in tid 2651 (surfaceflinger)
> 01-01 05:06:55.890  2651  2651 F libc    : Unable to open connection to
> debuggerd: Connection refused
>
> Now is the time to figure out which of these error messages is fatal,
> and how to solve the underlying problem, e.g. what is this rotation
> property, and where should it come from?
> As to the sw sync timeline: I remember seeing this a few months ago, and
> it was related to a kernel driver that may need loading.
>
> Am 22.06.2018 um 18:49 schrieb Josua Mayer:
>> Good day to you all,
>>
>> While again looking into where I left off with replicant a few months
>> ago, I came across a big blocker that more or less prevents any
>> meaningful work:
>> Neither /dev/fb0 nor /dev/dri/* do exist.
>> How can we find out why that happens?
>>
>> Versions:
>> I am using my own kernel branch based on letux-4.17.2 instead of the
>> previously known-working version work/lukas/android-4.10.
>> I wanted to minimize the number of patches on the android kernel, and be
>> closer to upstream while potentially debugging problems in
>> drm_hwcomposer and how it talks to /dev/dri/card0.
>>
>> In that previous 4.10 tree I notice this commit:
>> commit 00702c5e70b8adb8c1b0c116f1d4a41e3569ada1
>> boot:dts: disable display1/tv0 to make /dev/graphics/fb0 appear
>>
>> I checked its diff, and all it does is remove an alias from device-tree,
>> so it does not really seem to disable anything.
>> And sure enough, applying this change in my DTBs makes no difference to
>> the issue of missing /dev/fb0 (and dri).
>>
>> Lukas, do you remember what the idea behind that commit was?
>>
>> Please find attached a boot log of my latest replicant build. Maybe it
>> contains a hint for the more trained eye?
>>
>> br
>> Josua Mayer
>>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: replicant2.log
Type: text/x-log
Size: 104317 bytes
Desc: not available
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20180622/56c527c0/attachment-0001.bin>


More information about the Gta04-owner mailing list