У меня есть приложение, в котором я хочу иметь 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: