我有一个用于RaspberryPi3的工作Yocto图片。我想添加3个脚本文件/ etc / ppp / peers /。我原以为将非编译文件添加到根文件系统是一件非常通用的事情,但我能找到的唯一例子是使用编译文件并继承autotools配方。
是否有一个如何将文本文件或脚本文件添加到Yocto根文件系统的示例? 要么如何编写,要么使用现有的配方来获取一组文本文件并将它们放在目标的rootfs上。
我必须遗漏一些东西,因为我无法将文件文件存入系统 我尝试使用do_deploy,但是将文件放入我的../tmp/deploy/images/raspberrypi3/etc/ppp/,这对于帮助图像部署的脚本很有帮助。这不是我想要的,因为脚本需要在目标上。
运行带有或不带空白do_compile()的do_install()并没有导致进入目标的事情。除非有一些关于使用$ {sysconfdir}或$ {IMAGE_ROOTFS}或$ {S}或$ {D}或$ {DEPLOYDIR}或$ {WORKDIR}的特殊信息。我提供了一个我的脚本示例,但在过去两天中已经多次更改它,没有多少值得共享一次迭代。
任何类似于以下内容的内容; $ {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很弱,我责备一个挥之不去的冷。
答案 0 :(得分:1)
您应该在食谱中使用install -m 0755 ${WORKDIR}/<provider>-ppp ${D}${sysconfdir}/ppp/peer
。您是否将生成的包添加到图像配方中?您可以查看${WORKDIR}/packages-split/${PN}
以确认您的文件已正确打包。