This service is available only in Japanese-language.

ntpdateを追加できない

以下のページのBSPを使用し、ntpdateパッケージをイメージに含めようとしています。
https://github.com/TechNexion/tn-imx-yocto-manifest/tree/mickledore_6.1....

ですが、以下のようなログが表示され、追加できない状態です。

WARNING: Layer nxp-nfc should set LAYERSERIES_COMPAT_nxp-nfc in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: Host distribution "ubuntu-24.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing RPROVIDES 'ntpdate' (but /home/pf2024/Ubuntu/TechNexion/tn_ubuntu_22_04_6_1_55/sources/meta-imx/meta-sdk/recipes-fsl/images/imx-image-core.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'ntpdate' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['ntpdate']
ERROR: Required build target 'imx-image-core' has no buildable providers.
Missing or unbuildable dependency chain was: ['imx-image-core', 'ntpdate']

・「do_install:append」で、既存のntpdateバイナリファイルをインストール
・「PACKAGE_CLASSES」「EXTRA_IMAGE_FEATURES」をコメントアウト
・「DISTRO_FEATURES:append」の検討
等を行いましたが、イメージに追加できない状態です。

何か、策はありますでしょうか?

その後、「ntp_4.2.8p15.bbappend」に以下を記述し、bitbake imx-image-coreを実行しましたが、
やはり、imageにntpdateはインストールされていませんでした。
※${THISDIR}/ntp には「ntpdate」を配置しています。
また、bitbake imx-image-core の過程で、${B}/ntpdate にも、「ntpdate」が生成されているようです。
※${THISDIR}/ntp/ntpdate と、${B}/ntpdate/ntpdate は、中身が異なっています。

=====
SUMMARY = ""
DESCRIPTION = ""

FILESEXTRAPATHS:prepend := "${THISDIR}:${THISDIR}/ntp:"

LICENSE = "MIT"

## display message on console
python do_display_banner() {
pn = d.getVar('PN')
pv = d.getVar('PV')
bb.plain("***********************************************");
bb.plain("Reconfigure %s-%s" % (pn, pv));
bb.plain("***********************************************");
}
addtask display_banner before do_fetch

## Set SRC_URI
SRC_URI += " \
file://ntpdate \
"

do_install:append() {

##############################
# file : /home/pf2024/Ubuntu/TechNexion/tn_ubuntu_22_04_6_1_55_backup/sources/meta-ntpdate/recipes-support/ntp/ntp_4.2.8p15.bbappend
##############################

bbplain "--------------------"
bbplain "${PN}-${PV} do_install:append"
bbplain "--------------------"

# /usr/sbin/ に ntpdate を格納
install -d ${D}${sbindir}
install -m 755 ${THISDIR}/../../../../meta-ntpdate/recipes-support/ntp/ntp/ntpdate ${D}${sbindir}
}

# NOTE: you don't need ntpdate, use "ntpd -q -g -x"
PACKAGES += "ntpdate"

FILES:ntpdate += " \
${sbindir}/ntpdate \
"

INSANE_SKIP:${PN} += "already-stripped"
=====

本件回答いたします。

ntpdateコマンドは個別にレシピなどは存在せず、ntpのレシピにて作成されるntp-utilsというパッケージに収録されています。ですので、作成されたbbappendなどは不要となります。

local.confで対応する場合は下記の内容を追加してください。

-----
IMAGE_INSTALL:append = " ntp-utils"
----

ntp-utilsパッケージは以下のような内容となります。

ntp-utils/
└── usr/
├── sbin/
│   ├── calc_tickadj*
│   ├── ntp-keygen*
│   ├── ntp-wait*
│   ├── ntpdate*
│   ├── ntptime*
│   └── ntptrace*
└── share/
└── ntp/
└── lib/
└── NTP/
└── Util.pm

ご確認ください。

弊社の開発環境の都合上、確認作業とその結果の連絡が遅れ、申し訳ありません。

-----
IMAGE_INSTALL:append = " ntp-utils"
----

上記項目を追記したことで、無事ntpdateを追加することができました。
ありがとうございます。

ちなみにですが、
・bitbake-layers show-recipesで「ntp-utils」が表示されない
・『OpenEmbedded Layer Index』のサイトで、「ntp-utils」のレシピが見つからない
状態で『「IMAGE_INSTALL:append = " ntp-utils"」の追記で解消する』とわかるのは、
どのようにすればよろしいでしょうか?

回答します。

確実に見つける方法は無いため、基本的には経験則にたよることになりますが。
私の場合ですと下記のような感じで探しています。

1. OpenEmbedded Layer Indexでレシピを探す
2. 見つからない場合は類似のレシピを確認する
3. 手っ取り早い方法しては一度類似のレシピをbitbakeしてみる
4. パッケージ情報を確認する

ntpdateのケースだとこんな感じです。

* 「OpenEmbedded Layer Index」で「ntp」のレシピがmeta-networkingに在ることがわかる。
* 下記を実行してntpのレシピをビルドする。

$ bitbake-layers layerindex-fetch meta-networking
$ bitbake ntp

* 下記を実行してパッケージ情報を確認する

$ oe-pkgdata-util list-pkgs ntp*
ntp
ntp-dbg
ntp-dev
ntp-doc
ntp-src
ntp-tickadj
ntp-utils
ntpdc
ntpq

* ntpのレシピがサブパッケージを作成していることがわかったので下記で収録ファイルを探す。

$ oe-pkgdata-util list-pkg-files ntp
ntp:
/etc/ntp.conf
/usr/lib/systemd/ntp-units.d/60-ntpd.list
/usr/lib/systemd/system-preset/98-ntp.preset
/usr/lib/systemd/system/ntpd.service
/usr/sbin/ntpd.ntp

$ oe-pkgdata-util list-pkg-files ntp-utils
ntp-utils:
/usr/sbin/calc_tickadj
/usr/sbin/ntp-keygen
/usr/sbin/ntp-wait
/usr/sbin/ntpdate
/usr/sbin/ntptime
/usr/sbin/ntptrace
/usr/share/ntp/lib/NTP/Util.pm

* これでntp-utilsパッケージにntpdateが含まれていることがわかる。

* インストールされるパスがわかっている場合は下記で検索することもできる。

$ oe-pkgdata-util find-path /usr/sbin/ntpdate
ntp-utils: /usr/sbin/ntpdate

「oe-pkgdata-util」は一度レシピをビルドしないとパッケージデータが見つけられないのですが、レシピから作成されたパッケージの情報を参照するのには便利なツールです。

参考になれば幸いです。

上記手順について、承知しました。

OSイメージにインストールされるファイルに対して、do_install:append() で編集したいが、どの「*.bbappend」で操作すべきかわからないファイルがたまたまありましたので、当該ファイルに対しても適用してみたところ、無事に対応できました。

今後、パッケージの情報を参考にする際に、利用していこうと思います。