当前位置: 首页 > news >正文

RK3588 openeuler 集成 QT5 调试

RK3588 openeuler 24.03 集成 QT5 调试

以下是大概调试步骤和流程, 需要详细的调试文档可私

主要涉及的技术栈:
显示驱动框架 -> GPU 驱动框架 -> OpenGL/OpenCL 库的支持 -> weston(wayland) 调试 -> QT5 调试 -> QT5 opengl 测试用例执行成功

开发环境: Ubuntu-22

rockchip#:~$ uname -a
Linux server1-rockchip 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:03:14 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

运行环境说明: openeuler-24.03

ok3588 ~ # cat /proc/version
Linux version 5.10.0-openeuler (oe-user@oe-host) (aarch64-openeuler-linux-gnu-gcc (crosstool-NG 1.26.0) 12.3.1 20230508, GNU ld (crosstool-NG 1.26.0) 2.41) #1 SMP Fri Oct 24 07:41:56 UTC 2025

目标板卡 飞凌OK3588:
在这里插入图片描述

1. yocto 构建项目

  • 构建项目指令
oebuild generate -p ok3588 -f systemd -f opengl -f qt5 -f wayland -d ok3588-qt

2. hdmi 显示外设的调试

  • 设备树修改使能hdmi, vop 等驱动
&route_hdmi0 {status = "okay";connect = <&vp0_out_hdmi0>;/delete-property/ force-output;/delete-node/ force_timing;
};&hdmi0_in_vp0 {status = "okay";
};&hdmi0 {status = "okay";
};&hdptxphy_hdmi0 {status = "okay";
};
  • 启动测试
./modetest -s 185@68:1920x1080  
  • 显示效果
    在这里插入图片描述

3. 需要调通 GPU 对 drm 的显示

  • 使能相关驱动
  • 启动有以下日志, 说明 CPU ID 加载正常
ok3588 ~ # dmesg | grep gpu
[    2.864729] mali fb000000.gpu: GPU identified as 0x7 arch 10.8.6 r0p0 status 0
  • GPU 测试, 使用 kmscube
ok3588 ~ # kmscube
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
Using display 0x557e516280 with EGL version 1.4
===================================
EGL information:version: "1.4 Valhall-"g6p0-01eac0""vendor: "ARM"client extensions: "EGL_EXT_client_extensions EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_platform_gbm EGL_KHR_platform_wayland EGL_EXT_platform_wayland"display extensions: "EGL_WL_bind_wayland_display EGL_NV_context_priority_realtime EGL_KHR_partial_update EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_yuv_surface EGL_EXT_pixel_format_float EGL_ARM_pixmap_multisample_discard EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_image_gl_colorspace EGL_EXT_create_context_robustness"
===================================
OpenGL ES 2.x information:version: "OpenGL ES 3.2 v1.g6p0-01eac0.ba52c908d926792b8f5fe28f383a2b03"shading language version: "OpenGL ES GLSL ES 3.20"vendor: "ARM"renderer: "Mali-LODX"extensions: "GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_EXT_texture_compression_astc_decode_mode GL_EXT_texture_compression_astc_decode_mode_rgb9e5 GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_unpack_subimage GL_EXT_color_buffer_float GL_EXT_float_blend GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_buffer_storage GL_EXT_texture_filter_anisotropic GL_OES_texture_float_linear GL_ARM_texture_unnormalized_coordinates GL_EXT_shader_framebuffer_fetch "
===================================
Rendered 120 frames in 2.000168 sec (59.994967 fps)
Rendered 240 frames in 4.016838 sec (59.748485 fps)
Rendered 359 frames in 6.016956 sec (59.664724 fps)
...
  • 显示效果如下
    RK3588 openeuler GPU 测试显示效果

4. 桌面环境支持

  • yocto 中加入相关 weston 相关服务配置

  • 板卡启动后, 启动相关服务

systemctl enable weston
systemctl start weston
  • 执行效果: 会有花色条纹输出到 hdmi 显示器上, 可以在这个基础上绘制 QT 应用
    在这里插入图片描述

5. openeuler SDK 导出

# 然后依次执行 
sh openeuler-glibc-x86_64-openeuler-image-armv8a-ok3588-toolchain-24.03-LTS.sh cd /home/rockchip/devlop/openEuler/linux_sdk/openEuler_SDK
# environment-setup-armv8a-openeuler-linux  site-config-armv8a-openeuler-linux  sysroots  version-armv8a-openeuler-linux# 执行以下导出环境
. environment-setup-armv8a-openeuler-linux # 使用以下指令验证
aarch64-openeuler-linux-gcc --version

在这里插入图片描述
在这里插入图片描述

6. Qt-Creator KIT 工具集配置 openeuler GCC 相关

在这里插入图片描述

  • 创建一个简单的 项目, 然后代码如下

    #include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
    {QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
    }
    
  • 编译, 上传至开发板

  • 通过 wayland(基于 weston 桌面)

    ok3588 ~ # ./untitled -platform wayland
    arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
    warning: queue 0x55c61c1630 destroyed while proxies still attached:wl_callback@17 still attachedwl_callback@16 still attachedmali_buffer_sharing@15 still attachedwl_callback@14 still attached
    
  • 显示效果
    在这里插入图片描述

  • 采用 eglfs 执行

    ok3588 ~ # ./untitled -platform eglfs
    arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
    Failed to move cursor on screen HDMI1: -14
    Failed to move cursor on screen HDMI1: -14
    
  • 效果如下
    在这里插入图片描述

7. QT-Opengl 测试

qt base 内含官方示例 2dpainting 项目, 导入 qt-creator, 编译

板卡执行, 由于 wayland 需要桌面合成器服务相关, 效率低, 兼容性差, 可以直接使用 eglfs 渲染, 性能高, CPU 占用低

ok3588 ~ # ./2dpainting -platform eglfs
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
Failed to move cursor on screen HDMI1: -14
Failed to move cursor on screen HDMI1: -14
  • 执行效果, 其中一个为qt 原生 , 另外一个使用 opengl 渲染

QT5-OpenGL 测试效果

http://www.jsqmd.com/news/71902/

相关文章:

  • 2025年热门的匹克球网行业内知名厂家排行榜 - 行业平台推荐
  • 2025年电磁感应加热器制造企业推荐榜单:感应加热器‌/高频感应加热器‌/电感应加热器源头厂家精选 - 品牌推荐官
  • 新手必看!10 分钟给个人博客装雷池 WAF,零代码搞定防护​
  • 国内产专业全自动反渗透设备生产厂家/制造商哪家品牌好?可提供定制服务 - 品牌推荐大师1
  • 2025年中国密封胶生产商排名:密封胶大型厂家有哪些?密封胶 - myqiye
  • 讲讲中央空调哪家品牌好?哪家品牌实力强? - 工业品牌热点
  • 2025年锌钢护栏定制厂家权威榜单:定制护栏/阳台护栏/市政护栏源头厂家精选 - 品牌推荐官
  • array数组 js
  • 2025年评价高的超微细加工胶体磨用户口碑最好的厂家榜 - 品牌宣传支持者
  • 2025北京10大留学机构排名知道 - 留学品牌推荐官
  • 2025年比较好的户外大型雕塑/石雕雕塑厂家最新权威实力榜 - 行业平台推荐
  • 2025北京比较好的留学中介有哪些 - 留学品牌推荐官
  • 2025北京出国留学机构哪家最好 - 留学品牌推荐官
  • 2025年12月全国五大线缆企业综合推荐指南 - 2025年11月品牌推荐榜
  • 2025年净气型通风柜/无管净气型通风柜选购建议:源头厂家/优质供应商推荐 - 品牌推荐大师
  • 2025北京留学机构综合实力排名 - 留学品牌推荐官
  • 扶小鹰平板:开启孩子全科学习的智慧之旅 - 博客万
  • 景区引流利器!高空滑索、悬崖秋千、无动力滑道源头厂家推荐 - 博客万
  • 2025北京哪家留学机构最好 - 留学品牌推荐官
  • 2025北京十大留学中介机构 - 留学品牌推荐官
  • 2025北京知名留学中介机构排名榜 - 留学品牌推荐官
  • 珠三角聚合物锂电厂家有哪些?行业实力企业盘点 - 品牌排行榜
  • 2025年12月喷涂,喷涂生产线,喷涂流水线厂家权威榜,自动化性能与售后体系实测!​ - 品牌鉴赏师
  • 安全有效十大益生菌品牌排名前十深度解析,口碑榜最好的十款推荐 - 博客万
  • 苏州威沃邦胶粘科技有限公司的规模怎样?口碑好不好? - mypinpai
  • 2025年下半年上海地区砂磨机设备供应商综合推荐与选择指南 - 2025年11月品牌推荐榜
  • 2025年五大环氧胶厂家推荐,专业环氧胶厂商选购指南 - myqiye
  • 驼奶粉哪个品牌最好最正宗?口碑最好的前十名发布,国家认可的驼奶品牌有哪些? - 博客万
  • 2025年东北华北地区净化间回收企业排行榜:信誉好、售后完善 - 工业品牌热点
  • 2025 面膜灌装机优质厂家 TOP10:区域标杆与技术先锋双驱动 - 品牌推荐排行榜