1

我正在编译在OMAPZoom.org上找到的 Android 2.6.35 内核,我被我认为是一个愚蠢的 Makefile 问题所困扰。

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

产生以下错误(加上更多相关错误):

drivers/built-in.o: In function `dsscomp_createcomp':
drivers/video/omap2/dsscomp/device.c:175: undefined reference to `tiler_set_buf_state'

drivers/video/omap2/dsscomp/device.c 具有以下#include 指令:

#include <mach/tiler.h>

我相信它引用了以下包含原型的文件:

arch/arm/mach-omap2/include/mach/tiler.h

反过来,tiler_set_buf_state 定义在:

drivers/media/video/tiler/tiler.c

该功能正在正确使用,包含标题。这让我认为定义没有被编译。这个项目正在使用一个相当大的递归 Makefile 设置。

我不确定我还能在这里放什么有用的东西,但是如果有什么有用的东西可以问我。我希望有人可以推动我朝着正确的方向前进。

4

2 回答 2

1

驱动程序/媒体/视频/tiler/Kconfig 说什么?你确定所有的 CFLAGS 都设置正确了吗?我已经为 omap4 平台构建了一个 android,并且必须在我的 makefile 中传递这个变量:“TARGET_BOARD_PLATFORM=omap4”。我还没有确切地追踪到它的去向。(我的系统也有一个复杂的 Makefile)。但是您可能应该确保在您的 makefile 中某处正确设置了 ARCH_OMAP4。

在我的系统上,Kconfig 有:

config TILER_OMAP
    tristate "OMAP TILER support"
    default y
    depends on ARCH_OMAP4
help
       TILER driver for OMAP based boards.

config DUCATI_BUFFER_PROTECTION
    tristate "OMAP DUCATI input buffer protection"
    default y
    depends on TILER_OMAP
help
       Reserve 8MB memory for input buffer protection
于 2012-06-06T16:43:00.093 回答
0

好吧,这很尴尬:

该存储库中有两个(相关)分支:

p-android-omap-2.6.35
p-android-omap3-2.6.35

第一个不适用于 OMAP3,或者至少不适用于 Zoom3(android_zoom3_defoncifg 的板配置)。

要为 Zoom3 构建内核,您必须使用第二个 (p-android-omap3-2.6.35) 分支,否则您会遇到大量构建错误。浪费了一天的大部分时间从第一个分支重写“损坏的”代码,认为这是不正确的,因为我使用的是旧板。在正确的分支上进行了结帐,并且它没有任何错误地构建。

对不起。希望这对其他人有帮助!

于 2012-06-06T17:03:28.697 回答