2017-06-07 3 views
0

einfügen Ich versuche, den OV5640 Kameratreiber als Modul in yocto zu verwenden. Also nahm ich den .c-Code und eine Make-Datei (basierend auf dem Beispiel hallo-mod)Wie OV5640 Kameratreiber als Modul in yocto

obj-m += OV5640.o 
SRC := $(shell pwd) 
all: 
    $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules 
modules_install: 
    $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install 
clean: 
    $(MAKE) -C $(KERNEL_SRC) M=$(SRC) clean 

Ich habe auch ein Rezept in yocto

DESCRIPTION = "..." 
LICENSE = "GPL-2.0" 
LIC_FILES_CHKSUM = "\ 
    file:// ${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ 
" 

inherit module 

SRCREV = "${AUTOREV}" 
BPV = "0.0.0" 
PV = "${BPV}+git${SRCREV}" 

SRC_URI = "git://git/my-repo;protocol=ssh;user=git;branch=master \ 
" 

S = "${WORKDIR}/git" 

Im git Repo habe ich die .c Code der Kamera und des Makefiles.

Aber wenn ich versuche zu bauen, scheitert es auf do_compile und sagt:

fatal error: v4l2-int-device.h: No such file or directory

Wenn ich auf die Datei im ‚tmp‘ -Ordner von yocto suchen Ich finde man in:
tmp/Arbeits- shared/myboard/kernel-source/treiber/media/plattform/mxc/capture/v4l2-int-device.h

Die Frage ist, wie kann ich das Rezept ändern, um das Modul zu bauen? Und das ohne den Quellcode oder das Makefile zu ändern.

Hinweis:
Ich habe auch versucht, CFLAGS_prepend = " -I${STAGING_KERNEL_DIR}/drivers/media/platform/mxc/capture " zu dem Rezept hinzuzufügen, aber das gab keinen Erfolg.

+0

Wohin kopieren Sie den C-Code? Kompiliert es sich mit einem "in-kernel-build"? Welche Version/Zweig des YP verwenden Sie? Können Sie das gesamte Protokoll do_compile freigeben? – g0hl1n

Antwort

0

Sie benötigen eine Makefile zu ändern und hinzufügen:

ccflags-y += -I$(KERNEL_SRC)/drivers/media/platform/mxc/capture/ 

Sie können auch versuchen, es aus dem Baum zu kompilieren, die Variable KERNEL_SRC, Quelle Ihrer Umgebung einstellen müssen, und kompilieren.