Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为yocto systemd服务添加配方_Yocto_Systemd_Recipe - Fatal编程技术网

如何为yocto systemd服务添加配方

如何为yocto systemd服务添加配方,yocto,systemd,recipe,Yocto,Systemd,Recipe,我想添加自定义yocto systemd服务 我指的是[ 但bb代码不工作。未安装在文件系统中。 (eth0.0服务代码正常) 如何修复它 eth0_0.1.bb SUMMARY = "Install and start a systemd service" SECTION = "eth0" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f

我想添加自定义yocto systemd服务

我指的是[

但bb代码不工作。未安装在文件系统中。
(eth0.0服务代码正常)

如何修复它


eth0_0.1.bb

SUMMARY = "Install and start a systemd service"
SECTION = "eth0"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI += "file://eth0.service"

S = "${WORKDIR}"

inherit systemd

SYSTEMD_SERVICE_${PN} = "eth0.service"

do_install() {
    install -d ${D}${systemd_system_unitdir}
    install -m 0644 ${WORKDIR}/eth0.service ${D}${systemd_system_unitdir}/
}

FILES_${PN} += "/lib/systemd/system"

REQUIRED_DISTRO_FEATURES= "systemd"

eth0.0服务

[Unit]
Description=Network interfaces
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-eth0.device
After=sys.subsystem-net-devices-eth0.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "ifup eth0"
ExecStop=/bin/sh -c "ifdown eth0"

[Install]
WantedBy=multi-user.target

如果您有
inherit-systemd
systemd\u-SERVICE\u${PN}=“eth0.SERVICE”
,您似乎应该这样做。因此,我认为您需要添加的是
systemd\u-AUTO\u-ENABLE=“ENABLE”
a
确保
.service
文件也有
[Install]
部分。其次,如果您有
继承systemd
系统d\u服务${PN}=“eth0.service”,请确保通过
image\u Install\u append=“eth0”
中的
将包添加到映像中
您似乎应该这样做。因此我认为您需要添加的是
SYSTEMD\u AUTO\u ENABLE=“ENABLE”
a
请确保
.service
文件也有
[Install]
部分。其次,请确保通过
image\u Install\u append=“eth0”
local.conf
中为网络添加包,您还可以使用

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

SRC_URI += "file://eth0.network"

FILES_${PN} += "${systemd_unitdir}/network/*"

do_install_append() {
    install -d ${D}${systemd_unitdir}/network/
    install -m 0644 ${WORKDIR}/*.network ${D}${systemd_unitdir}/network/
}
使用
文件/eth0.network

[Match]
Name=eth0

[Network]
DHCP=ipv4

对于网络,您还可以创建一个systemd_uz%.bbappend

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

SRC_URI += "file://eth0.network"

FILES_${PN} += "${systemd_unitdir}/network/*"

do_install_append() {
    install -d ${D}${systemd_unitdir}/network/
    install -m 0644 ${WORKDIR}/*.network ${D}${systemd_unitdir}/network/
}
使用
文件/eth0.network

[Match]
Name=eth0

[Network]
DHCP=ipv4

您是否已在本地通过例如image\u INSTALL\u append=“eth0”将其添加到图像中。conf@Khem哦,我很愚蠢。它很有效!我通过do_install()创建了符号链接。“ln-sf${systemd_unitdir}/system/eth0.service\${D}${sysconfdir}”/systemd/system/multi-user.target.wants/eth0.service'但是错误->ln:无法创建符号链接。怎么了?如果您有
继承systemd
systemd\u服务${PN}=“eth0.service”
您似乎有,那么您不需要进行符号链接。所以我认为您需要添加的是
systemd\u AUTO\u ENABLE=“ENABLE”
并确保.service文件具有您似乎也具有的[Install]部分。您是否已通过例如本地的image\u Install\u append=“eth0”将其添加到映像中。conf@Khem哦,我很愚蠢。它很有效!我通过do_install()创建了符号链接。“ln-sf${systemd_unitdir}/system/eth0.service\${D}${sysconfdir}”/systemd/system/multi-user.target.wants/eth0.service'但是错误->ln:无法创建符号链接。怎么了?如果您有
继承systemd
systemd\u服务${PN}=“eth0.service”
您似乎有,那么您不需要进行符号链接。所以我认为您需要添加的是
systemd\u AUTO\u ENABLE=“ENABLE”
并确保.service文件中有您似乎也有的[Install]部分。