AnsweredAssumed Answered

[imx6 ]Android4.4.3--surfaceflinger导致系统起不来,ldb显示问题

Question asked by q g on Apr 20, 2015
Latest reply on Aug 7, 2015 by Biyong Sun

急!!!!!!好几天了,求指教!

 

我们板子参照sabresd设计的。之前使用系统android4.2.2,现在移植官网BSP android4.4.3

目前surfaceflinger导致系统启动失败。一直打印如下红色显示的信息。

request_suspend_state: wakeup (3->0) at 7437213333 (1970-01-01 00:00:04.592911333 UTC)

130|root@sabresd_6dq:/ # request_suspend_state: wakeup (0->0) at 956991823113 (1970-01-01 00:15:54.147520447 UTC)

init: untracked pid 6193 exited

request_suspend_state: wakeup (0->0) at 961401889447 (1970-01-01 00:15:58.557587114 UTC)

init: untracked pid 6221 exited

 

uboot环境变量设置setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=off video=mxcfb2ff video=mxcfb3ff vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=110ea1d4df646307

Logcat中:

 

I/SurfaceFlinger(  119): SurfaceFlinger is starting

I/SurfaceFlinger(  119): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...

D/libEGL  (  119): loaded /system/lib/egl/libEGL_VIVANTE.so

D/libEGL  (  119): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so

D/libEGL  (  119): loaded /system/lib/egl/libGLESv2_VIVANTE.so

I/imx6.gralloc(  119): fb_device_open dispid:0, fb:0

I/imx6.gralloc(  119): 32bpp setting of Framebuffer with RGBA8888 format!

W/imx6.gralloc(  119): using (fd=18)

W/imx6.gralloc(  119): id           = DISP3 BG - DI1

W/imx6.gralloc(  119): xres         = 1024 px

W/imx6.gralloc(  119): yres         = 768 px

W/imx6.gralloc(  119): xres_virtual = 1024 px

W/imx6.gralloc(  119): yres_virtual = 2304 px

W/imx6.gralloc(  119): bpp          = 32

W/imx6.gralloc(  119): r            =  0:8

W/imx6.gralloc(  119): g            =  8:8

W/imx6.gralloc(  119): b            = 16:8

W/imx6.gralloc(  119): width        = 163 mm (159.568100 dpi)

W/imx6.gralloc(  119): height       = 122 mm (159.895081 dpi)

W/imx6.gralloc(  119): refresh rate = 60.01 Hz

I/FslHwcomposer(  119): using fsl hwc!!!

I/FslHwcomposer(  119): int hwc_device_open(const hw_module_t*, const char*, hw_device_t**),553

I/FslHwcomposer(  119): using fsl hwc!

I/FslHwcomposer(  119): fb0 is ldb

I/FslHwcomposer(  119):  device

I/FslHwcomposer(  119): fb1 is overlay device

W/FslHwcomposer(  119): open /sys/class/graphics/fb2 failed

W/FslHwcomposer(  119): open /sys/class/graphics/fb3 failed

W/FslHwcomposer(  119): open /sys/class/graphics/fb4 failed

W/FslHwcomposer(  119): open /sys/class/graphics/fb5 failed

I/FslHwcomposer(  119): hwcomposer: open framebuffer fb0

 

 

由于新内核使用dts。我跟Android4.2.2的内核相比较如下:

1、4.4.3时,使用LVDS接口,不知道是不是这么配置就可以了????

①kernel_imx/arch/arm/boot/dts/imx6qdl-sabresd.dtsi

mxcfb1: fb@0 {

        compatible = "fsl,mxc_sdc_fb";

        disp_dev = "ldb";

        interface_pix_fmt = "RGB666";

        mode_str ="1024x600M@60";

        default_bpp = <32>;

        int_clk = <0>;

        late_init = <0>;

        status = "okay";

    };

 

 

2、4.2.2时,我们使用LVDS接口,值修改添加了两个文件,是OK的。

①kernel_imx/drivers/video/mxc/ldb.c

 

②kernel_imx/arch/arm/mach-mx6/board-mx6q_sabresd.c

  在board-mx6q_sabresd.c文件中添加BT101IW01模式,如下:

{ /*fb0*/

    .disp_dev = "ldb",

    .interface_pix_fmt = IPU_PIX_FMT_RGB666,

    .mode_str = "BT101IW01",

    .default_bpp = 32,

    .int_clk = false,

    .late_init = false,

    },

Outcomes