发布时间:2025-08-18 来源:瑞迅科技 浏览量:227
在工业控制、智能零售、AI机器人等领域,高性能、稳定可靠且具备丰富人机交互能力的嵌入式设备需求激增。
瑞迅科技推出的基于瑞芯微旗舰级芯片RK3568的系列主板,凭借其强劲的四核A55 CPU、高效Mali G52 GPU、丰富接口(多路USB、以太网、CAN、串口等)及工业级可靠性,成为复杂QT应用开发的优秀硬件平台。
QMAKE_INCDIR_OPENGL[_ES2]配置
EGLFS Mali 无法被选中,提示错误
确保1问题解决的情况下,如果出现EGLFS Mali提示是no的情况,可以查看config.log,看log中是否有提示fbdev_window.h找不到。如果是可以在“/usr/include/EGL”下手动
创建fbdev_window.h文件,内容如下:
/*
1. This confidential and proprietary software may be used only as
2. authorised by a licensing agreement from ARM Limited
3. (C) COPYRIGHT 2008-2011 ARM Limited
4. ALL RIGHTS RESERVED
5. The entire notice above must be reproduced on all authorised
6. copies and copies may only be made to the extent permitted
7. by a licensing agreement from ARM Limited.
*/
/**
8. @file fbdev_window.h
9. @brief A window type for the framebuffer device (used by egl and tests)
*/
extern "C" {
typedef enum
{
FBDEV_PIXMAP_DEFAULT = 0,
FBDEV_PIXMAP_SUPPORTS_UMP = (1<<0),
FBDEV_PIXMAP_ALPHA_FORMAT_PRE = (1<<1),
FBDEV_PIXMAP_COLORSPACE_sRGB = (1<<2),
FBDEV_PIXMAP_EGL_MEMORY = (1<<3) /* EGL allocates/frees this memory */
} fbdev_pixmap_flags;
typedef struct fbdev_window
{
unsigned short width;
unsigned short height;
} fbdev_window;
typedef struct fbdev_pixmap
{
unsigned int height;
unsigned int width;
unsigned int bytes_per_pixel;
unsigned char buffer_size;
unsigned char red_size;
unsigned char green_size;
unsigned char blue_size;
unsigned char alpha_size;
unsigned char luminance_size;
fbdev_pixmap_flags flags;
unsigned short *data;
unsigned int format; /* extra format information in case rgbal is not enough, especially for YUV formats */
} fbdev_pixmap;
}
交叉编译中OpenGL问题
问题出在安装了libgles2-mesa、libgles2-mesa-dev这两个库上,并且qmake配置的
QMAKE_LIBS_EGL += -lEGL -lGLESv2
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL
两个依赖库都匹配成了libgles2-mesa、libgles2-mesa-dev中的库。在Rockchip系统中如果采用的GPU是官方闭源的驱动,需要安装Rockchip提供的mali库安装包,安装包会将libGLESv2.so、libEGL.so安装到/usr/lib/aarch64-linux-gnu/mali下,所以上面的库连接就会出错,通过在/usr/lib/aarch64-linux-gnu创建libGLESv2.so、libEGL.so符号连接,解决该问题。
ln -s mali/libEGL.so libEGL.so
ln -s mali/libGLESv2.so libGLESv2.so
另外config.log如果提示缺少glUniform1f、glClear两个函数的定义。可以通过下面命令在libmali.so找到。
strings libmali.so | grep "glUniform1f"
strings libmali.so | grep "glClear"
通过以上修改后scene3d可正常运行,并且GPU的使用率也有变化。
欢迎持续关注,共同探讨!
交叉编译中OpenGL问题
Copyright © 2021 陕西瑞迅电子信息技术有限公司 All Rights Reserved 备案号:陕ICP备13008281号