DSP

移植waland/weston 到AM335X 在运行的时候运行不成功分析

2019-07-13 17:14发布



首页 » 技术论坛 » 数字信号处理器 (DSP) & ARM® 微处理器 » Sitara™ Cortex-A8 和 ARM9 微处理器 » 移植waland/weston 到AM335X 在运行的时候运行不成功,求解!!
搜索 高级搜索 详细
  • 15 回复
  • 5 订户
  • 发表于5月前
选项

移植waland/weston 到AM335X 在运行的时候运行不成功,求解!!

此问题已被解答
  • fa linag 作者  发表于 2017-7-28 10:54 秀才220分 移植的时候基本用到的库都是TI 官方SDK0301里面的库,不同的只是自己重新编译wayland、weston 。 在运行自己编译的库的时候就运行不起来提示如下: [02:15:40.904] Using config file '/etc//weston.ini'
    [02:15:40.904] Loading module '/home/pc335/wayland/install/lib/weston/drm-backend.so'
    [02:15:40.918] Output repaint window is 7 ms maximum.
    [02:15:40.918] initializing drm backend
    [02:15:40.927] using /dev/dri/card0
    [02:15:40.930] Loading module '/home/pc335/wayland/install/lib/weston/gl-renderer.so'
    failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory
    failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory
    loaded module : gbm_pvr.so
    found valid GBM backend : gbm_pvr.so
    [02:15:41.026] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDisplay.
    [02:15:41.054] failed to choose EGL config
    [02:15:41.093] failed to initialize egl
    [02:15:41.098] fatal: failed to create compositor backend 但是我只要把gl-renderer.so这个库替换成SDK0301 里面提供的就可以运行成功,其他的库什么都没变 [02:49:26.521] Using config file '/etc//weston.ini'
    [02:49:26.521] Loading module '/home/pc335/wayland/install/lib/weston/drm-backend.so'
    [02:49:26.535] Output repaint window is 7 ms maximum.
    [02:49:26.535] initializing drm backend
    [02:49:26.544] using /dev/dri/card0
    [02:49:26.545] Loading module '/home/pc335/wayland/install/lib/weston/gl-renderer.so'
    failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory
    failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory
    loaded module : gbm_pvr.so
    found valid GBM backend : gbm_pvr.so
    [02:49:26.574] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDisplay.
    [02:49:26.595] warning: EGL_EXT_buffer_age not supported. Performance could be affected.
    [02:49:26.595] Retrieving EGL client extension string failed.
    [02:49:26.604] input device 'ti-tsc', /dev/input/event0 is tagged by udev as: Touchscreen
    [02:49:26.604] input device 'ti-tsc', /dev/input/event0 is a touch device
    [02:49:26.640] EGL version: 1.4 build 1.14@3699939 (MAIN)
    [02:49:26.640] EGL vendor: Imagination Technologies
    [02:49:26.640] EGL client APIs: OpenGL_ES 
    [02:49:26.640] EGL extensions: EGL_IMG_client_api_ogl EGL_KHR_image
    EGL_KHR_image_base EGL_KHR_gl_texture_2D_image
    EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
    EGL_KHR_vg_parent_image EGL_IMG_cl_image EGL_KHR_fence_sync
    EGL_IMG_context_priority EGL_IMG_hibernate_process
    EGL_IMG_image_plane_attribs EGL_KHR_surfaceless_context
    EGL_KHR_wait_sync EGL_KHR_create_context
    EGL_WL_bind_wayland_display
    [02:49:26.640] GL version: OpenGL ES 2.0 build 1.14@3699939 (MAIN)
    [02:49:26.640] GLSL version: OpenGL ES GLSL ES 1.00 build 1.14@3699939 (MAIN)
    [02:49:26.640] GL vendor: Imagination Technologies
    [02:49:26.640] GL renderer: PowerVR SGX 530
    [02:49:26.640] GL extensions: GL_OES_rgb8_rgba8 GL_OES_depth24
    GL_OES_vertex_half_float GL_OES_texture_float
    GL_OES_texture_half_float GL_OES_element_index_uint
    GL_OES_mapbuffer GL_OES_fragment_precision_high
    GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image
    GL_OES_EGL_image_external GL_OES_required_internalformat
    GL_OES_depth_texture GL_OES_get_program_binary
    GL_OES_packed_depth_stencil GL_OES_standard_derivatives
    GL_OES_vertex_array_object GL_OES_egl_sync
    GL_OES_surfaceless_context GL_EXT_discard_framebuffer
    GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
    GL_EXT_multisampled_render_to_texture GL_EXT_shader_texture_lod
    GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg
    GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc
    GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888
    GL_IMG_read_format GL_IMG_program_binary
    GL_IMG_uniform_buffer_object
    GL_IMG_multisampled_render_to_texture GL_KHR_debug
    [02:49:26.641] GL ES 2 renderer features:
    read-back format: RGBA
    wl_shm sub-image to texture: no
    EGL Wayland extension: yes
    [02:49:26.641] Chosen EGL config details:
    RGBA bits: 8 8 8 8
    swap interval range: 1 - 1
    [02:49:26.641] cursor buffers unavailable, using gl cursors
    [02:49:26.641] Failed to initialize backlight
    [02:49:26.643] Applying calibration: 0.991399 0.009865 -1.011108 0.007399 0.995098 -1.997589 (normalized -0.001264 -0.003329)
    [02:49:26.643] Output LVDS-1, (connector 26, crtc 24)
    mode 800x600@57.6, preferred, current
    mode 800x600@57.6, preferred
    [02:49:26.644] Compositor capabilities:
    arbitrary surface rotation: yes
    screen capture uses y-flip: yes
    presentation clock: CLOCK_MONOTONIC, id 1
    [02:49:26.644] Loading module '/home/pc335/wayland/install/lib/weston/desktop-shell.so'
    [02:49:26.646] launching '/home/pc335/wayland/install/libexec/weston-keyboard'
    [02:49:26.649] launching '/home/pc335/wayland/install/libexec/weston-desktop-shell'
    [02:49:26.750] DRM: DPMS: failed property set for LVDS-1
    PVR:(Error): [ 1350-> 1350] < gbm_pvr_bo_import():274|ERROR> GBM import function not supported [0, ] 启动的方式是 :启动GPU unset WAYLAND_DISPLAY weston --tty=1 gl-renderer.so 是编译weston 时候生成的,是不是在编译weston的时候再官方的交叉编译的时候需要链接上一些TI自己的GPU相关的驱动库?? 求解 
  • fa linag 作者  发表于 2017-7-28 10:55 秀才220分 还是说在编译weston 的时候需要一些配置项??
  • fa linag 作者  发表于 2017-9-19 9:35 秀才220分 问题已经解决
  • Touch Tsou 作者  发表于 2017-10-6 6:48 秀才76分 遇到同样的错误,使用的是最新版的ti-processor-sdk-linux-am335x-evm-04.01.00.06-Linux-x86-Install.bin里面的默认文件系统, 能说一下解决思路么?
  • fa linag 作者  发表于 2017-10-10 22:31 秀才220分 你看清楚你的第一个报错是报的failed to choose EGL config 这个错误么?
  • fa linag 作者  发表于 2017-10-10 22:38 秀才220分 如果是的话,你要重新编译你的weston ,修改源码里面读取返回的EGL config 配置项相关的数组值,在gl-renderer.c 里面,我发现他读取回来的值不成功,返回的是0 值。
  • Segmentation fault 作者  发表于 2017-12-6 15:00 秀才528分 你好,因为ti提供的Weston版本过旧,在运行Qt时存在一些问题,所以我同样是使用ti 官方SDK0301里面的库,来编译wayland,weston ,我的weston版本为2.0 从buildroot中获取的,在加载gl-renderer.so发生和你同样的错误:failed to choose EGL config,想问一下该如何修改源码里面读取返回的EGL config 配置项相关的数组值,非常期待你的回答
  • soul fly 作者  发表于 2017-12-7 0:18 秀才10分 同问
  • fa linag 作者  发表于 2017-12-7 9:07 推荐答案 确认者:  秀才220分 我是根据运行时报的错误,然后锁定到weston源码里面的gl-renderer.c 中的   egl_choose_config(struct gl_renderer *gr, const EGLint *attribs,
    const EGLint *visual_id, const int n_ids,
    EGLConfig *config_out) 这个函数里面的 match_config_to_visual(gr->egl_display,visual_id[i],configs, matched); 函数返回了(-1)。 导致 配置RGBA bits的配置文件匹配失败,进入函数里面的后我也无法查找为什么根据egl_display 得到的配置属性与configs[ ]数组存放好的配置属性匹配不成功,导致最后返回了-1. 最后我在函数的返回值,也就是在函数 egl_choose_config(struct gl_renderer *gr, const EGLint *attribs,
    const EGLint *visual_id, const int n_ids,
    EGLConfig *config_out)  调用match_config_to_visual()的地方给定一个返回值。比如:  因为根据我们的板子要求RGBA bit是8 8 8 0 ,所以我给定的值是6。(其他0到9 的值也可以运行成功) for (i = 0; config_index == -1 && i < n_ids; i++)
                         config_index = match_config_to_visual(gr->egl_display,
                                                                                                  visual_id[i],
                                                                                                  configs,
                                                                                                  matched);
    /*2017.9.26 add : */
    printf(" ~~~~~~ xiugai 2017.9.25 ~~~~~ ");
    config_index = 6 ; 这个是我的改法,希望能够帮到你
  • Segmentation fault 作者  发表于 2017-12-7 11:11 秀才528分 按照你提供的方法,现在已经成功运行起来Weston-2.0,非常感谢。 我将config_index改为6,此时RGBA输出值为5 6 5 0。使用TI 原版文件系统 RGBA输出值为8 8 8 8,所以对于config_index的值和RGBA值的对应关系不是很明白。

  • fa linag 作者  发表于 2017-12-7 11:20 秀才220分 对的,是5650,上边提到的8880写错了,这个我具体也没有了解的很清楚,应该是RGBA四种颜 {MOD}位数据,TI官方的8888 运行起来显示各方面也没发现有什么错误,但是我之前试过如果选用其他的配置的话屏幕显示会出现错误。
  • fa linag 作者  发表于 2017-12-7 11:28 秀才220分 TI原来应该采用的是config_index = 0 ;  这种配置选项
  • tyrael cui 作者  发表于 2017-12-21 21:05 秀才130分 您好!我在触摸屏校准时遇到了问题,weston-calibrator的结果总是不正确,我用evtest看过输出的坐标,也在触摸屏的驱动里输出过坐标值,感觉是正确的。所以怀疑weston出了问题。现在想移植一下weston,请问能给出大致步骤和思路吗?谢谢!
  • Segmentation fault 作者  发表于 2017-12-26 10:42 秀才528分 使用的是TI的SDK吗?如果是的话那应该系统上是不存在问题的,确定触摸屏上报到系统层的坐标值是正确的吗?如果仍然正确,感觉与weston的关系也不大,建议检查其他的地方。 如果非要移植weston的话,因为我这边是用的buildroot做的系统,安装包之间的依赖关系可以解决,如果选择自己编译源码的话,weston跟wayland有强依赖,而wayland的编译难度比较大,依赖也似乎比较多。希望能帮到你
  • tyrael cui 作者  发表于 2017-12-26 12:02 秀才130分 谢谢您的答复!我用的就是ti的sdk,文件系统也是ti的那个大包。请问如何能确定系统层得到的坐标是否正确呢?我在ti_adc_tsc的源码里输出了坐标,感觉是对的。用evtest也看过,每触摸一下,就会输出一串坐标,坐标都在4095之内,数值也挺稳定,且和触摸位置成线性变化。您觉得这样能断定系统层得到了正确坐标吗?还有哪些因素可能导致校准失败呢?我现在没什么思路了,还请多指教,拜谢!对了,我用的屏是1280*800的,直接指定的edid文件,显示正常,不知道这会不会有影响?
12 TI 全球网站 |  公司信息 |  联系我们 |  投资者关系 (英文內容) |  新闻稿 |  招贤纳士 | my.TI 登录 |  所有搜索 |  站点地图 © Copyright 1995-2018 Texas Instruments Incorporated. All rights reserved. 注册商标 |  隐私保护 |  使用条款