2016-11-28 1 views
0

나는 RaspberryPi3에 대해 작동하는 Yocto 이미지가 있습니다./etc/ppp/peers/스크립트 파일을 3 개 추가하고 싶습니다. 필자는 컴파일되지 않은 파일을 루트 파일 시스템에 추가하는 것이 상당히 일반적인 일이라고 생각했지만, 컴파일 된 파일을 사용하고 autotools 레서피를 상속하는 유일한 예는 찾을 수 있습니다.사용자 정의 Yocto 제조법을 사용하여 Raspberry Pi 파일 시스템에 스크립트 파일을 추가하려면 어떻게해야합니까?

어딘가에 Yocto 루트 파일 시스템에 텍스트 파일이나 스크립트 파일을 추가하는 방법의 예가 있습니까?
작성 방법 또는 텍스트 파일 세트를 취하여 대상의 rootfs에 배치하는 기존 방법을 사용하십시오.

시스템에 파일 파일을 가져올 수 없기 때문에 뭔가를 놓쳐 야합니다.
do_deploy를 사용해 보았습니다.하지만 이미지 배포에 도움이되는 스크립트에 도움이되는 내 ../tmp/deploy/images/raspberrypi3/etc/ppp/에 파일을 저장합니다. 스크립트가 대상에 있어야하므로 원하는 것은 아닙니다.

do_compile()을 사용하거나 사용하지 않고 do_install()을 실행해도 대상에 도달하지 못했습니다. $ {sysconfdir} 또는 $ {IMAGE_ROOTFS} 또는 $ {S} 또는 $ {D} 또는 $ {DEPLOYDIR} 또는 $ {WORKDIR}을 사용하지 않는 한 Pi에만 해당되지 않습니다. 필자는 스크립트의 예를 제공 하겠지만 지난 2 일 동안 여러 번 변경하여 단 하나의 반복 만 공유 할 가치는별로 없습니다.

다음과 유사한 내용 : $ {D} 대신 $ {IMAGE_ROOTFS}이 (가) do_install이 do_deploy로 대체되었습니다.
아마 내가 시도한 다른 순열이 있습니다.

# 
# Copy the ppp script files for <vendor> chips to the target filesystem 
# These files are based on the details provided in 
# 

SUMMARY = "PPP Scripts for ..." 
SECTION = "net" 
LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 
DESCRIPTION = "A set of Linux PPP scripts blar blar" 

RDEPENDS_${PN} = "ppp" 

SRC_URI += "file://<provider>-ppp" 
SRC_URI += "file://<provider>-chat-connect" 
SRC_URI += "file://<provider>-chat-disconnect" 

S = "${WORKDIR}" 

#PACKAGES =+ "${PN} ${PN}-staticdev" 

#DEPLOYDIR = "${WORKDIR}/deploy-${PN}" 

#D = "${DEPLOYDIR}" 

inherit allarch 

# Install script on target's root file-system 
do_install() { 
    # Install init script and default settings 
    install -d ${IMAGE_ROOTFS}${sysconfdir} 
    install -d ${IMAGE_ROOTFS}${sysconfdir}/ppp/ 
    install -d ${IMAGE_ROOTFS}${sysconfdir}/ppp/peers/ 
    install -m 0755 ${S}/<provider>-ppp ${IMAGE_ROOTFS}${sysconfdir}/ppp/peers/ 
    install -m 0755 ${S}/<provider>-chat-connect ${IMAGE_ROOTFS}${sysconfdir}/ppp/peers/ 
    install -m 0755 ${S}/<provider>-chat-disconnect ${IMAGE_ROOTFS}${sysconfdir}/ppp/peers/ 
} 

# Mark the files which are part of this package 
FILES_${PN} += "${sysconfdir}/ppp/" 
FILES_${PN} += "${sysconfdir}/ppp/peers/" 
FILES_${PN} += "${sysconfdir}/ppp/peers/<provider>-ppp" 
FILES_${PN} += "${sysconfdir}/ppp/peers/<provider>-chat-connect" 
FILES_${PN} += "${sysconfdir}/ppp/peers/<provider>-chat-disconnect" 

나는 helloworld.c를 많이 찾아 예를 자동화 할 수 있습니다. 어딘가에 스크립트를 추가하기위한 기본 스크립트가 있어야합니까? 내 googlefu 매우 약한, 나는 느린 추위를 비난합니다.

답변

1

레시피에 install -m 0755 ${WORKDIR}/<provider>-ppp ${D}${sysconfdir}/ppp/peer을 사용해야합니다. 이미지 레시피에 결과 패키지를 추가 했습니까? ${WORKDIR}/packages-split/${PN}에서 파일이 제대로 패키지되었는지 확인할 수 있습니다.

+0

감사합니다. '$ {IMAGE_ROOTFS} $ {sysconfdir}/ppp/peers' 대신'$ {D} $ {sysconfdir}/ppp/peer'를 사용하는 것이 내가 직면 한 주요 문제였습니다. $ {WORKDIR}/packages-split/$ {PN}이 있어야하며 많은 도움이되었다는 사실을 알고 있어야합니다. – TafT