написать сценарий systemd для притока для сборки yocto - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть приложение, в котором я хочу иметь InfluxDB на плате PHYTEC Mira . Я нашел слой meta для того же самого, и при первоначальной сборке мне удалось скомпилировать его на борту.

После загрузки:

 $influxd

нужно запустить сначала, а потом:

$ influx

для запуска оболочки influenxDB

Однако я хочу включить influxd.service systemd script

[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 я не знаю, где ее разместить, чтобы сделать доступной для всех последующих сборок.

В соответствии с руководством по BSP , раздел 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

../sources/meta-umg/
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-go
└── go
├── files
│   └── influxd.service
└── github.com-influxdata-influxdb_%.bbappend

* * * * * * * * * * * * * * * * * * * * * * * * * * * * *

имеет то же содержание, что и упомянутый @Nayfe

После выполнения bitbake -e github.com-influxdata-influxdb я получаю следующую ошибку:

Нет рецептов для: /opt/PHYTEC_BSPs/yocto_fsl/sources/poky/../meta-umg/recipes-go/go/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 не установлены на плате.

Я подозреваю, что удаление знака % отменяет весь рецепт установки.

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:

1 Ответ

0 голосов
/ 30 апреля 2018

Вам нужно добавить рецепт effxd и создать папку с файлами, в которой находится файл effxd.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.

...