我有一个应用程序,我希望PHYTEC Mira board上有 InfluxDB 。我已经找到了相同的meta
层,在初始构建时我成功地将其编译在船上。
启动时:
$influxd
需要先开始然后再开始:
$ influx
运行shell InfluxDB
但我想要添加influxd.service
systemd 脚本
[Unit]
Description=InfluxDB is an open-source, distributed, time series database
Documentation=https://docs.influxdata.com/influxdb/
After=network.target
[Service]
LimitNOFILE=65536
EnvironmentFile=-/etc/default/influxdb
ExecStart=/usr/bin/influxd $INFLUXD_OPTS
ExecStartPost=/bin/sh -c 'while ! influx -execute exit >& /dev/null;
do sleep 0.1;done'
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=influxd.service
但是在yocto结构中,我不知道将它放在哪里以使其可用于所有后续构建。
根据board's BSP Manual, section CAN Bus我在
中放置了上述.service
脚本
meta-yogurt/recipes-core/systemd/systemd-machine-units/
文件夹
我制作了一张新照片并在启动电路板时尝试了:
systemctl start influxd.service
但是没有这样的脚本。我试着查看电路板上的/lib/systemd/system/
文件夹,看看influxd.service
文件是否存在但是没有。
这是当前的文件结构:
其中meta-umg
是自定义图层,其中recipes-go/go/
位于meta-influx
layer
../sources/meta-umg/
├── conf
│ └── layer.conf
├── COPYING.MIT
├── README
└── recipes-go
└── go
├── files
│ └── influxd.service
└── github.com-influxdata-influxdb_%.bbappend
github.com-influxdata-influxdb_%.bbappend
与@Nayfe提及的内容相同。
执行bitbake -e github.com-influxdata-influxdb
后,我收到以下错误:
没有可用的食谱: 的/ opt / PHYTEC_BSPs / yocto_fsl /来源/狭小/../元UMG /食谱-去/去/ github.com-influxdata-influxdb _%。bbappend
我认为%
无效,因为配方没有附加版本。
所以我继续将.bbappend
文件的名称更改为github.com-influxdata-influxdb.bbappend
和
bitbake -e github.com-influxdata-influxdb | grep ^SYSTEMD_
提供
bitbake -e github.com-influxdata-influxdb | grep ^SYSTEMD_
SYSTEMD_AUTO_ENABLE="enable"
SYSTEMD_SERVICE_github.com-influxdata-influxdb="influxd.service"
SYSTEMD_PACKAGES="github.com-influxdata-influxdb"
SYSTEMD_PACKAGES_class-native=""
SYSTEMD_PACKAGES_class-nativesdk=""
和
bitbake-layers show-appends | grep "github.com*"
Parsing recipes..done.
github.com-influxdata-influxdb.bb:
/opt/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-umg/recipes-go/go/github.com-influxdata-influxdb.bbappend
当我创建一个我的local.conf
文件有IMAGE_INSTALL_append = " github.com-influxdata-influxdb
SystemD脚本位于/etc/systemd/system/multi-user.wants/
文件夹中,但主板上未安装守护程序influxd
和influx
shell命令。
我怀疑删除%
符号会覆盖整个安装配方。
update1
使用oe-pkg-utils list-pkg-files -p github.com-influxdata-influxdb
添加和编译图层时, bitbake github.com-influxdata-influxdb
提供以下输出
github.com-influxdata-influxdb:
/lib/systemd/system/influxd.service
github.com-influxdata-influxdb-dbg:
github.com-influxdata-influxdb-dev:
答案 0 :(得分:0)
你需要追加涌入的食谱并在其中创建一个包含Influxd.service的文件夹。
<强> influxd _%bbappend:强>
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
inherit systemd
SYSTEMD_SERVICE_${PN} = "influxd.service"
SRC_URI += " \
file://influxd.service \
"
do_install_append () {
# systemd
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/influxd.service ${D}${systemd_unitdir}/system/
}
PS:我假设您的涌入食谱名称已经涌入,如果您使用的是github.com-influxdata-influxdb.bb
,则需要创建github.com-influxdata-influxdb.bbappend
。