我使用 Yocto (Krogoth) 来构建我的 imx6 映像和工具链,但是它对于内核驱动程序的工作有点沉重和缓慢。因此,我的开发周期是自己构建内核,只需使用在 yocto 中运行的“do_patch”的输出作为源代码树基础并获取工具链环境。
这通常不是问题,因为我主要关注的是软件堆栈的那一端。但是,我现在需要能够在不断更新的内核之上运行 Qt 应用程序(在 eglfs 下运行),以寻找错误。为此,我需要 imx6 图形驱动程序工作,所以我从 git://github.com/Freescale/kernel-module-imx-gpu-viv.git 获取 galcore 源代码导出我的内核构建目录,制作并部署它。该模块完美加载。但是,运行已经使用 Yocto 构建的工作应用程序会导致崩溃,在 libQt5EglDeviceIntegration.so.5 中的某个位置。所有库等都是原始工作映像的一部分,与我获取内核源代码的位置相同。
我需要做什么才能完成这项工作?Qt 的某些部分是否与图形驱动程序相关联,这将迫使我重建整个库?galcore.ko和Qt有什么关系?现在我的应用程序和 linux 内核之间是否存在奇怪的依赖关系?!
编辑:PEBCAK。我是个白痴。我没有从正确的 SHA1(配方中列出的)检查 galcore 驱动程序。不过,下面的答案很有启发性,所以我想保留这个问题。