Я компилирую ядро Android 2.6.35, найденное на OMAPZoom.org, и я застрял в том, что, по моему мнению, является глупой проблемой 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'
драйверы/видео /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.
Я не совсем уверен, что еще я могу здесь внести, что будет полезно, но если есть что-то полезное, спросите меня. Я надеялся, что кто-то может дать мне толчок в правильном направлении.
Ну, это неудобно:
В этом репозитории есть два (релевантных) раздела:
p-android-omap-2.6.35
p-android-omap3-2.6.35
Первый из них не работает с OMAP3 или, по крайней мере, с Zoom3 (конфигурация платы android_zoom3_defoncifg).
Чтобы построить ядро для Zoom3, вы должны использовать вторую (p-android-omap3-2.6.35) ветвь или получить тонны ошибок сборки. Потерял большую часть дня, переписывая "сломанный" код из первой ветки, думая, что это неправильно, потому что я использую более старую доску. Была ли проверка на правильной ветке, и она была построена без каких-либо ошибок.
Сожалею. Надеюсь, это будет полезно для кого-то еще!
Что говорят драйверы/медиа/видео /tiler/Kconfig? Вы уверены, что все CFLAGS установлены правильно? Я создал андроид для платформы omap4 и должен был передать эту переменную в моем make файле: "TARGET_BOARD_PLATFORM = omap4". Я точно не проследил, где это происходит (у моей системы тоже есть сложный Makefile). Но вы, вероятно, должны убедиться, что ARCH_OMAP4 правильно установлен где-то в вашем файле makefile.
В моей системе 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