在nxp的官方yocto sdk中。
gpu提供的egl等是二进制,在imx gpu viv这个包中。
imx-gpu-viv 包本身,包含了 EGL、OpenGL ES、OpenCL 等用户空间库
$ ls meta-imx/meta-imx-bsp/recipes-graphics/imx-gpu-viv
imx-gpu-viv_6.4.11.p4.4-aarch32.bb
imx-gpu-viv_6.4.11.p4.4-aarch64.bb
imx-gpu-viv-6-overrides.inc
$ ls meta-freescale/recipes-graphics/imx-gpu-viv
imx-gpu-viv_6.4.11.p3.2-aarch32.bb
imx-gpu-viv_6.4.11.p3.2-aarch64.bb
imx-gpu-viv-6.inc
包含关系是 meta-imx下面的
imx-gpu-viv_6.4.11.p4.4-aarch64.bb 包含 imx-gpu-viv-6-overrides.inc
在包含 meta-freescale下面的 imx-gpu-viv-6.inc
weston依赖的virtual/egl由imx_gpu_viv提供:
$ bitbake -e | grep "^PREFERRED_PROVIDER_virtual/egl="
PREFERRED_PROVIDER_virtual/egl="imx-gpu-viv"
它以二进制提供,下载地址:
$ bitbake -e imx-gpu-viv | grep "^SRC_URI="
SRC_URI="https://www.nxp.com/lgfiles/NMG/MAD/YOCTO//imx-gpu-viv-6.4.11.p4.4-aarch64-8626797.bin;fsl-eula=true"
下载后是一个bin, 其实是个shell + 压缩包。执行后可以解压
$ bash imx-gpu-viv-6.4.11.p4.4-aarch64-8626797.bin
$ ls imx-gpu-viv-6.4.11.p4.4-aarch64-8626797/
COPYING gpu-core gpu-demos gpu-tools SBOM.spdx.json SCR-imx-gpu-viv.txt
imx-gpu-viv-6.inc
这个文件定义了do_install
do_install () {
install -d ${D}${libdir}
install -d ${D}${includedir}
install -d ${D}${bindir}
cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir}
cp -r ${S}/gpu-core/usr/include/* ${D}${includedir}
cp -r ${S}/gpu-demos/opt ${D}
cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir}
# Use vulkan header from vulkan-headers recipe to support vkmark
rm -rf ${D}${includedir}/vulkan/
# Install SOC-specific drivers
if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then
cp -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir}
fi