0

Я пытаюсь перекрестно скомпилировать загружаемый модуль ядра, и у меня появилось предупреждающее сообщение о том, что я хотел бы получить помощь.Compile Warning - ARM Cross Compiler

Ниже предупреждение

make[1]: Entering directory `/home/userid/rowboat-android/kernel' 
    Building modules, stage 2. 
    MODPOST 1 modules 
WARNING: "omap_device_build" [/home/userid/myfiles/lcdc_load_device.ko] undefined! 
WARNING: "omap_hwmod_lookup" [/home/userid/myfiles/lcdc_load_device.ko] undefined! 
make[1]: Leaving directory `/home/userid/rowboat-android/kernel' 

Ниже является Makefile

obj-m :=lcdc_load_device.o 
lcdc_load_device-m := ../rowboat-android/kernel/arch/arm/plat-omap/omap_device.o 
lcdc_load_device-m += ../rowboat-android/kernel/arch/arm/mach-omap2/omap_hwmod.o 

ccflags-m := -I$(src)/../rowboat-android/kernel/arch/arm/plat-omap/include/plat/ 

KDIR := /home/userid/rowboat-android/kernel/ 
PWD := $(shell pwd) 

default: 
    $(MAKE) ARCH=arm CROSS_COMPILE=/home/userid/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- -C $(KDIR) SUBDIRS=$(PWD) modules 

clean: 
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean 

Я подозревал, что Makefile находит файл заголовка для "omap_device_build" и «omap_hwmod_lookup " функции.

Цените свою помощь, и спасибо вам заранее.

+1

Это полный make-файл? Это вызов 'make' снова с целью, которая не находится в вашем make-файле (' modules'). И какая команда 'make' вы ввели. Это просто «сделать»? – lurker

+0

Да, это полный make-файл. Я вошел в марку. Можете ли вы уточнить второе утверждение. У rowboat-android/kernel есть make-файл. Похоже, что моя проблема может быть в переменной KDIR –

+1

Цель по умолчанию в make-файле вызывает '$ (MAKE)' с целью «модулей», поэтому я не был уверен, где она будет выбирать эту цель. Но это не имеет никакого отношения к предупреждению. Что-то вызывает эти функции и не находит их в библиотеке. – lurker

ответ

0

Спасибо mbratch и бесхитростного шума за комментарии

Для решения этих ПРЕДУПРЕЖДЕНИЙ, символы должны быть экспортированы. По вышеуказанному вопросу поставлен вопрос

EXPORT_SYMBOL(omap_device_build) in omap_device.c 
EXPORT_SYMBOL(omap_hwmod_lookup) in omap_hwmod.c 

и скомпилировать ядро. Затем скомпилируйте загружаемый модуль ядра против скомпилированного ядра. Выполните следующие действия, чтобы проверить, если символы были экспортированы

grep omap_device_build /proc/kallsyms 
or 
grep omap_device_build Module.symvers 

Для получения более подробной информации ссылки Ниже приведены ссылки

Комментарии приветствуются

Спасибо вы