2016-11-28 67 views
0

我有一個RaspberryPi3的工作Yocto圖像。我想添加3個腳本文件/ etc/ppp/peers /。我原以爲,將非編譯文件添加到根文件系統是一個相當普遍的事情,但我能找到的唯一例子是使用編譯文件並繼承了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所特有的。我會提供我的腳本的一個例子,但在過去兩天裏改變了很多次,沒有太多值得分享一次迭代。

任何類似於下面的內容; $ {IMAGE_ROOTFS}可能代替$ {D}或缺少 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

謝謝。使用'$ {D} $ {sysconfdir}/ppp/peer'而不是'$ {IMAGE_ROOTFS} $ {sysconfdir}/ppp/peers'是我面臨的關鍵問題。知道$ {WORKDIR}/packages-split/$ {PN}應該在那裏,並且填充也很有幫助。 – TafT

相關問題