leb-panda does not work "E/FramebufferNativeWindow( 2057): couldn't open framebuffer HAL (No such device)"

Bug #778192 reported by Alexander Sack on 2011-05-05
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linaro Android
Fix Released
Critical
Unassigned

Bug Description

seems we see this by default a) because we don't build with the right pandroid kernel and b) because something else is fishy (one idea is that the pvrsrvinit command in init.omap4.rc isn't run ... but who knows).

the init command is here:

http://git.linaro.org/gitweb?p=android/device/linaro/pandaboard.git;a=blob;f=init.omap4.rc;h=1887d1eacee48392c20de95483a78d480c52d702;hb=refs/heads/LEB-panda

Alexander Sack (asac) wrote :

i uploaded a .35 kernel from omapzoom .35 branch here: http://people.linaro.org/~asac/tmp/uImage.panda.35 ... dont consider this being good though ... had to hack the code; could be that I messed something else up.

Changed in linaro-android:
importance: Undecided → Critical
status: New → Confirmed
milestone: none → linaro-11.05-final
Alexander Sack (asac) wrote :

targetting for final 11.05 ... lets get this done!!

Alexander Sack (asac) wrote :

also blocking LEB ... so critical

Zach Pfeffer (pfefferz) wrote :

This is a serial log of 2 boots on the prebuilt leb-panda, build 23: https://android-build.linaro.org/builds/~linaro-android/leb-panda/#build=23. It shows the:

I/sysproc ( 1080): Entered system_init()
I/sysproc ( 1080): ServiceManager: 0x192a38
I/SurfaceFlinger( 1080): SurfaceFlinger is starting
I/SurfaceFlinger( 1080): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/SurfaceFlinger( 1080): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
E/FramebufferNativeWindow( 1080): couldn't open framebuffer HAL (No such device)
I/DEBUG ( 942): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 942): Build fingerprint: 'unknown'
I/DEBUG ( 942): pid: 1080, tid: 1088 >>> system_server <<<
I/DEBUG ( 942): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000005c
I/DEBUG ( 942): r0 ac526a34 r1 00000000 r2 0008eaa0 r3 00000000
I/DEBUG ( 942): r4 00182340 r5 ac52d608 r6 0008eaa0 r7 f5536b2e
I/DEBUG ( 942): r8 00100000 r9 a811d82d 10 434a9000 fp 00192e90
I/DEBUG ( 942): ip ac52d7dc sp 435a8d58 lr af9049d8 pc ac518cbe cpsr a0000030
I/DEBUG ( 942): d0 0000000000000000 d1 4148207265666665
I/DEBUG ( 942): d2 6461657268742076 d3 7420796461657269
I/DEBUG ( 942): d4 49202e6e7572206f d5 7a696c616974696e
I/DEBUG ( 942): d6 7061726720676e69 d7 0000000073636968

Zach Pfeffer (pfefferz) wrote :

The only thing that changed was the kernel, which I got from:

http://people.linaro.org/~asac/tmp/uImage.panda.35

Same basic error:

I/Zygote ( 1228): Accepting command socket connections
E/BatteryService( 1229): Could not open /sys/class/power_supply
I/sysproc ( 1229): Entered system_init()
I/sysproc ( 1229): ServiceManager: 0xe8418
I/SurfaceFlinger( 1229): SurfaceFlinger is starting
I/SurfaceFlinger( 1229): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/SurfaceFlinger( 1229): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
E/FramebufferNativeWindow( 1229): couldn't open framebuffer HAL (No such device)
I/DEBUG ( 1075): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1075): Build fingerprint: 'unknown'
I/DEBUG ( 1075): pid: 1229, tid: 1237 >>> system_server <<<
I/DEBUG ( 1075): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000005c
I/DEBUG ( 1075): r0 ac526a34 r1 00000000 r2 0008eaa0 r3 00000000
I/DEBUG ( 1075): r4 00192d60 r5 ac52d608 r6 0008eaa0 r7 e201c2a0
I/DEBUG ( 1075): r8 00100000 r9 a811d82d 10 4328d000 fp 00181940
I/DEBUG ( 1075): ip ac52d7dc sp 4338cd58 lr af9049d8 pc ac518cbe cpsr a0000030
I/DEBUG ( 1075): d0 0000000000000000 d1 4148207265666665
I/DEBUG ( 1075): d2 6461657268742076 d3 7420796461657269

Zach Pfeffer (pfefferz) wrote :

The errors between 35 and 38 are the same.

38

I/SurfaceFlinger( 1275): SurfaceFlinger is starting
I/SurfaceFlinger( 1275): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
E/SurfaceFlinger( 1275): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
E/FramebufferNativeWindow( 1275): couldn't open framebuffer HAL (No such device)
I/DEBUG ( 1075): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1075): Build fingerprint: 'unknown'
I/DEBUG ( 1075): pid: 1275, tid: 1283 >>> system_server <<<
I/DEBUG ( 1075): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000005c
I/DEBUG ( 1075): r0 ac526a34 r1 00000000 r2 0008eaa0 r3 00000000
I/DEBUG ( 1075): r4 00192d60 r5 ac52d608 r6 0008eaa0 r7 e154867c
I/DEBUG ( 1075): r8 00100000 r9 a811d82d 10 4328d000 fp 00181940
I/DEBUG ( 1075): ip ac52d7dc sp 4338cd58 lr af9049d8 pc ac518cbe cpsr a0000130
I/DEBUG ( 1075): d0 0000000000000000 d1 4148207265666665
I/DEBUG ( 1075): d2 6461657268742076 d3 7420796461657269
I/DEBUG ( 1075): d4 49202e6e7572206f d5 7a696c616974696e
I/DEBUG ( 1075): d6 7061726720676e69 d7 0000000073636968
I/DEBUG ( 1075): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 1075): d10 0000000000000000 d11 0000000000000000

35

I/SurfaceFlinger( 1126): SurfaceFlinger is starting
I/SurfaceFlinger( 1126): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
EnSger( 1126): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
E/FramebufferNativeWindow( 1126): couldn't open framebuffer HAL (No such device)
I/DEBUG ( 1075): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 1075): Build fingerprint: 'unknown'
I/DEBUG ( 1075): pid: 112t,id: 1134 >>> system_server <<<
I/DEBUG ( 1075): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000005c
I/DEBUG ( 1075): r0 ac526a34 r1 00000000 r2 0008eaa0 r3 00000000
I/DEBUG ( 1075): r4 00192d60 r5 ac52d608 r6 0008eaa0 r7 ea0054e7
I/DEBUG ( 1075): r8 00100000 r9 a811d82d 10 4328d000 fp 00181940
I/DGB ( 1075): ip ac52d7dc sp 4338cd58 lr af9049d8 pc ac518cbe cpsr a0000030
I/DEBUG ( 1075): d0 0000000000000000 d1 4148207265666665
I/DEBUG ( 1075): d2 6461657268742076 d3 7420796461657269
I/DEBUG ( 1075): d4 49202e6e7572206f d5 7a696c616974696e
I/DEBUG ( 1075): d6 7061726720676e69 d7 0000000073636968
I/DEBUG ( 1075): d8 00000002613658d9 d9 0000000000000000
I/DEBUG ( 1075): d10 0000000000000000 d11 0000000000000000

Zach Pfeffer (pfefferz) wrote :
Download full text (12.7 KiB)

Making a little progress.

I've got our AOSP tree, TI's kernel and our toolchain.

After changing the name of init.omap4.rc to init.omap4430.rc I got
through the first issue:

E/FramebufferNativeWindow( 1293): couldn't open framebuffer HAL (No such device)

Since init.omap4430.rc runs /system/bin/pvrsrvinit and
/system/etc/init.omap4.sh run (still need to check that init.omap4.sh
actually runs) I get to my second issue (no overlay):

I/SurfaceFlinger( 1326): SurfaceFlinger is starting
I/SurfaceFlinger( 1326): SurfaceFlinger's main thread ready to run.
Initializing graphics H/W...
E/SurfaceFlinger( 1326): Couldn't open /sys/power/wait_for_fb_sleep or
/sys/power/wait_for_fb_wake
D/FramebufferNativeWindow( 1326):
frameworks/base/libs/ui/FramebufferNativeWindow.cpp:84: call
hw_get_module(-1416
445233)
I/HAL ( 1326): checking for /system/lib/hw/gralloc.omap4430.so
I/HAL ( 1326): checking for /vendor/lib/hw/gralloc.omap4430.so
I/HAL ( 1326): checking for /system/vendor/lib/hw/gralloc.omap4430.so
I/HAL ( 1326): hardware/libhardware/hardware.c,165 access returns -1
I/HAL ( 1326): checking for /system/lib/hw/gralloc.omap4.so
I/HAL ( 1326): checking for /vendor/lib/hw/gralloc.omap4.so
I/HAL ( 1326): checking for /system/vendor/lib/hw/gralloc.omap4.so
I/HAL ( 1326): hardware/libhardware/hardware.c,165 access returns 0
I/HAL ( 1326): hardware/libhardware/hardware.c,179
I/HAL ( 1326): hardware/libhardware/hardware.c,184
I/HAL ( 1326): hardware/libhardware/hardware.c,187
load(-1416445233, /system/vendor/lib/hw/gralloc.omap4.so) r
eturns 0
D/FramebufferNativeWindow( 1326):
frameworks/base/libs/ui/FramebufferNativeWindow.cpp:88 at
framebuffer_open
D/FramebufferNativeWindow( 1326): Again!
D/SurfaceFlinger( 1326): -1403884864: call hw_get_module(109)
I/HAL ( 1326): checking for /system/lib/hw/overlay.omap4430.so
I/HAL ( 1326): checking for /vendor/lib/hw/overlay.omap4430.so
I/HAL ( 1326): checking for /system/vendor/lib/hw/overlay.omap4430.so
I/HAL ( 1326): hardware/libhardware/hardware.c,165 access returns -1
I/HAL ( 1326): checking for /system/lib/hw/overlay.omap4.so
I/HAL ( 1326): checking for /vendor/lib/hw/overlay.omap4.so
I/HAL ( 1326): checking for /system/vendor/lib/hw/overlay.omap4.so
I/HAL ( 1326): hardware/libhardware/hardware.c,165 access returns -1
I/HAL ( 1326): checking for /system/lib/hw/overlay.default.so
I/HAL ( 1326): hardware/libhardware/hardware.c,179
D/libEGL ( 1326): loaded /system/lib/egl/libGLES_android.so
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:128
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:133
window->query = ab91a8e5
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:139
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:63
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:68
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:73
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:79
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:87
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:94 i = 0
D/EGLUtils( 1326): frameworks/base/libs/ui/EGLUtils.cpp:94 i = 1
D/EGLUtils( 1326): framework...

Zach Pfeffer (pfefferz) wrote :
Zach Pfeffer (pfefferz) wrote :

A little more debug.

void DisplayHardware::init(uint32_t dpy) calls:

eglCreateContext calls:

static egl_connection_t* validate_display_config(
       EGLDisplay dpy, EGLConfig config,
       egl_display_t const*& dp)
{
   dp = get_display(dpy);
   if (!dp) return setError(EGL_BAD_DISPLAY, (egl_connection_t*)NULL);

   if (intptr_t(config) >= dp->numTotalConfigs) {
       return setError(EGL_BAD_CONFIG, (egl_connection_t*)NULL);
   }
   egl_connection_t* const cnx = &gEGLImpl[dp->configs[intptr_t(config)].impl];
   if (cnx->dso == 0) {
       return setError(EGL_BAD_CONFIG, (egl_connection_t*)NULL); <------
   }
   return cnx;
}

So cnx->dso being 0 causes the assert.

All I've got is:

struct egl_connection_t
{
   inline egl_connection_t() : dso(0) { }
   void * dso;
   gl_hooks_t * hooks[2];
   EGLint major;
   EGLint minor;
   egl_t egl;
};

which get initialized in:

frameworks/base/opengl/libs/EGL/Loader.cpp

Loader::driver_t::driver_t(void* gles)
{
   dso[0] = gles;
   for (size_t i=1 ; i<NELEM(dso) ; i++)
       dso[i] = 0;
}

to gles

but its already destroyed so things break. Checking the first error...

Alexander Sack (asac) wrote :

this turned out to be an issue with a) getting all the bits properly in place (making things being produced from build-service fixed this!) and b) allocating proper vram with 24M for first screen for 1080p.

leb-panda seems to work; have some issues with power management killing the board after being idle for too long ... will file a separate bug.

Changed in linaro-android:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers