2017-09-04 2 views
0

나는 github에서 코드를 컴파일하기위한 yocto 제조법을 가지고 있습니다. 일부 파일을 수정하고 github에서 가져온 코드에 패치를 적용하려고합니다. 다음은 코드 작성법입니다. 내 패치 다음yocto 제조법의 파일에 패치 적용

SUMMARY = "Linux NFC stack for NCI based NXP NFC Controllers" 
HOMEPAGE = "https://github.com/NXPNFCLinux/linux_libnfc-nci" 
LICENSE = "Apache-2.0" 
LIC_FILES_CHKSUM = "file://src/include/linux_nfc_api.h;endline=17;md5=42fdb99b3ff2c12f594b22a774cb7308" 
SECTION = "libs" 

SRC_URI = "git://github.com/NXPNFCLinux/linux_libnfc-nci.git \ 

file:///home/pratyush/Desktop/custom_board/drivers/PN7150/linux_libnfc-nci/demoapp-main-patch1.patch" 
SRCREV = "7cf539d3d9c0d682c8da5968fbf5615ae9993060" 
PV = "2.1+git${SRCPV}" 
EXTRA_OECONF =" --enable-pn7150" 

S = "${WORKDIR}/git" 

inherit autotools 
FILES_${PN} += "${libdir}/libnfc_nci_linux-1.so" 
FILES_SOLIBSDEV = "${libdir}/libnfc_nci_linux.so" 

따라서

--- /home/root/PN7150/linux_libnfc-nci/Makefile.am 
+++ Makefile.am 
@@ -1,7 +1,7 @@ 
lib_LTLIBRARIES = libnfc_nci_linux.la 

-sbin_PROGRAMS = nfcDemoApp 
-nfcDemoApp_DEPENDENCIES = libnfc_nci_linux.la 
+sbin_PROGRAMS = readNfc 
+readNfc_DEPENDENCIES = libnfc_nci_linux.la 

LDFLAGS = -Bstatic 

@@ -9,13 +9,13 @@ 
LDFLAGS += -L$(openssldir)/lib -lcrypto -lssl 
endif 

-nfcDemoApp_FLAGS = -I$(srcdir)/demoapp -I$(srcdir)/src/include 
+readNfc_FLAGS = -I$(srcdir)/demoapp -I$(srcdir)/src/include 

AM_CPPFLAGS = \ 
-I$(srcdir)/src/include \ 
$(INCLUDE_PARAMS) \ 
$(libnfc_nci_linux_la_FLAGS) \ 
- $(nfcDemoApp_FLAGS) 
+ $(readNfc_FLAGS) 

if LLCP1_3 
AM_CPPFLAGS += \ 
@@ -177,7 +177,7 @@ 
src/service/linux_nfc_api.c \ 
src/service/linux_nfc_factory_api.c 

-nfcDemoApp_SOURCES := \ 
+readNfc_SOURCES := \ 
    demoapp/main.c \ 
    demoapp/tools.c 

@@ -231,6 +231,6 @@ 
libnfc_nci_linux_la_LDFLAGS +=-DPN551C2=3 
libnfc_nci_linux_la_LDFLAGS += -shared -pthread -ldl -lrt -fPIC -release 1 -versionnfo 0:0:0 

-nfcDemoApp_LDFLAGS = -pthread -ldl -lrt -lnfc_nci_linux 
+readNfc_LDFLAGS = -pthread -ldl -lrt -lnfc_nci_linux 

을 적용하는 내가 가져온 코드를 GitHub의 현지에서 패치를 적용합니다. 하지만 패치를 적용하려고 할 때 항상 다음 오류가 발생합니다. "입력 라인 3에서 패치 할 파일을 찾을 수 없습니다"

답변

1

문제는 어떻게 패치를 생성했는지입니다. 가장 쉬운 방법은 (git에 익숙하다면) git을 사용하는 것입니다. 그렇지 않으면 두 개의 완전한 소스 트리를 diffing하는 것이 좋습니다.

문제를 해결하는 한 가지 방법은 SRC_URI 행에 ;striplevel=0을 추가하는 것입니다. (bitbake/OE에 의해 strip level 1이 가정 됨).

또 다른 방법은 시작하기 위해 패치를 수정하는 것입니다 :

--- a/Makefile.am 
+++ b/Makefile.am 

문제를 해결해야한다고.