Thread 中讨论的其他器件: OMAP3515
工具/软件:Linux
运行 Linux 内核2.6.29.6的 OMAP3530可以使用的最新版本的图形 SDK 是什么?
我正在尝试使用 Qt 5.8使用较新的软件升级旧设备。 该器件使用 OMAP3530处理器和基于2.6.29.6的 Linux 内核。 (我们不能选择升级到较新的内核。) 目前、我们使用图形 SDK 3.01.00.02 (带有次要补丁)。 在其 EGL/eglext.h 中、此版本的 SDK 使用 EGL 扩展版本3、如下宏所示:
#define EGL_EGLEXT_VERSION 3
Qt 5.8内提供的 QtWebEngine 要求我们使用 EGL 扩展版本4、这似乎是在图形 SDK 4.06中引入的。 但是、我似乎无法根据2.6.29.6的 Linux 内核编译较新 SDK 中的内核模块。 这是我的尝试:
Precor@SEAL9004:~μ C/Graphics_SDK_4_06_00_03$使 OMAPES=3.x
正在构建 SGX 内核模块...
make[1]:输入目录`/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM
make[1]:离开目录`/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM
make[1]:输入目录`/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM
使-C /home/precor/workdir/lsp/linux-2.6.29_omap3515 m=`pwd`
make[2]:输入目录`/home/precor/workdir/lsp/linux-2.6.29_omap3515
LD /home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/bufferclass_ti/built-in.o
抄送[M]/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/bufferclass_ti/bc_cat.o
LD [M]/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/bufferclass_ti/bufferclass_ti.o
LD /home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/built-in.o
抄送[M]/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_displayclass.o
抄送[M]/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.o
/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.c:51:致命错误:Linux/omapfb.h:无此类文件或目录
编译已终止。
maked[4]:***[/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux/omaplfb_linux.o 错误1
maked[3]:***[/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM/services4/3rdparty/dc_omapfb3_linux 错误2.
maked[2]:***[_MODULE_/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM 错误2.
make[2]:离开目录`/home/precor/workdir/lsp/linux-2.6.29_omap3515
maked[1]:***[全部]错误2.
make[1]:离开目录`/home/precor/Graphics_SDK_4_06_00_03/GFX_Linux_KM
make:***[buildkernel]错误2.
丢失的文件 omapfb.h 在我的系统中的另一个目录中找到:
Precor@SEAL9004:~ë/Graphics_SDK_4_06_00_03$找到 omapfb.h
/home/precor/workdir/lsp/linux-2.6.29_omap3515/arch/arm/plat-omap/include/mach/omapfb.h
/home/precor/workdir/lsp/linux-2.6.29_omap3515/drivers/video/omap2/omapfb.h
我不确定它是否像尝试在 dc_omapfb3_linux/omapplfb_linux.c 内更改此 include 文件的路径那样简单 我已经尝试这样做、但仍然会遇到编译器错误。
我能够成功编译当前内核的最后一个4.x 系列 SDK 为4.03.00.02。 遗憾的是、此版本没有我们需要的 EGL 扩展。
我注意到、在编译4.03时、系统从不同的目录中拾取有问题的文件。
4.03.00.02:
GRAPHICS_SDK_4_03_00_02/GFX_LINUX_KM/Services4/3rdparty/dc_OMAP3430_linux/omapplfb_linux.c
4.06.00.03:
GRAPHICS_SDK_4_06_00_03/GFX_LINUX_KM/Services4/3rdparty/dc_omapfb3_linux/omapfb_linux.c
因此、看起来 dc_OMAP3430_Linux 中的 omapfb_linux.c 与2.6.29.6编译、但 dc_omapfb3_Linux 中的这一个编译器不会。
我将以不同的方式陈述我的问题。
为 OMAP3530编译4.06所需的最低 Linux 内核版本是什么? 还是更好的、5.x 的图形 SDK?
我们使用的是 softfp 工具链。
下面是编译 Graphics SDK 4.03.00.02所需的补丁:
diff -rupn Graphics_SDK_4_03_00_02/GFX_LINUX_KM/Services4/3rdparty/dc_OMAP3430_linux/omapplfb_linux.c Graphics_SDK_4_03_00_02.maapched/GFX_LINUX_KM/Services4/3rdparty/dc_OMAP3430_Linux_omap.c
-- Graphics_SDK_4_03_00_02/GFX_Linux_KM/Services4/3rdparty/dc_OMAP3430_linux/omapplfb_linux.c 2011-03-08 04:27:35.000000000 -0800
++ Graphics_SDK_4_03_00_02.patched/GFX_LINUX_KM/Services4/3rdparty/dc_OMAP3430_Linux/omapplfb_Linux.c 2017-06-20 01:06:14.205927036 -0700
@@-61、7 +61、7 @@ extern int omap_dispc_request_IRQ (unsign
extern void omap_dispc_free_IRQ (unsigned long、void (*)(void *)、void *);
extern void omap_dispc_set_plane_base (int 平面、IMG_UINT32 phys_addr);
其他
-#include
+#include
#include
#include
静态 OMAP-dispc_isr_t * pOMAPLFBVSyncISRHandle =空;
@@-123、8 +123、7 @@静态内联内部 OMAPLFBRegisterVSyncIS
静态内联 int OMAPLFBUnregisterVSyncISR (OMAPLFB_SWAPCHAIN * psSwapChain)
{
-返回 OMAP-dispc_unregister_ISR (OMAPLFBVSyncISR、psSwapChain、
- DISPC_IRQ_VSYNC);
+返回 OMAP-dispc_unregister_ISR (OMAPLFBVSyncISR);
}
其他
@@-233、7 +232、7 @@ OMAP-ERROR OMAPLFBUninstallVSyncISR (OMA
#if !defined (CONFIG_OMAP2_DSS)
OMAP-dispc_free_IRQ (DISPC_IRQ_VSYNC、OMAPLFBVSyncISR、psSwapChain);
其他
- OMAP-dispc_unregister_ISR (OMAPLFBVSyncISR、psSwapChain、DISPC_IRQ_VSYNC);
+ OMAP-dispc_unregister_ISR (OMAPLFBVSyncISR);
#endif
返回 OMA_OK;
}
diff -rupn Graphics_SDK_4_03_00_02/GFX_Linux_km/Services4/srvkm/devices/SGX/sgxinit.c Graphics_SDK_4_03_00_02.patched/GFX_Linux_km/Services4/srvkm/devices/SGX/sgxinit.c
-- Graphics_SDK_4_03_00_02/GFX_Linux_km/Services4/srvkM/devices/SGX/sgxinit.c 2011-03-08 04:27:36.000000000 -0800
++ Graphics_SDK_4_03_00_02.patched/GFX_Linux_km/Services4/srvkm/devices/SGX/sgxinit.c 2017-06-20 01:06:23.489594761 -0700
@@-408、7 +408、6 @@ PVRSRV_ERROR SGXInitialize (PVRSRV_SGXDEV
}
其他
- if (cpu_is_omap3630 ())
OSWriteHWReg (psDevInfo->pvRegsBaseKM、0xFF08、0x8000000);//OCP 旁路模式
#endif