This service is available only in Japanese-language.
以下のページの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」の検討
等を行いましたが、イメージに追加できない状態です。
何か、策はありますでしょうか?
kawabata0820
2024/9/18 (水) 17:37
試行状況
その後、「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"
=====
みつきん
2024/9/25 (水) 10:14
ntpdateコマンドについて
本件回答いたします。
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
ご確認ください。
kawabata0820
2024/9/30 (月) 10:00
追加できました
弊社の開発環境の都合上、確認作業とその結果の連絡が遅れ、申し訳ありません。
-----
IMAGE_INSTALL:append = " ntp-utils"
----
上記項目を追記したことで、無事ntpdateを追加することができました。
ありがとうございます。
ちなみにですが、
・bitbake-layers show-recipesで「ntp-utils」が表示されない
・『OpenEmbedded Layer Index』のサイトで、「ntp-utils」のレシピが見つからない
状態で『「IMAGE_INSTALL:append = " ntp-utils"」の追記で解消する』とわかるのは、
どのようにすればよろしいでしょうか?
みつきん
2024/9/30 (月) 11:11
サブパッケージの見つけ方について
回答します。
確実に見つける方法は無いため、基本的には経験則にたよることになりますが。
私の場合ですと下記のような感じで探しています。
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」は一度レシピをビルドしないとパッケージデータが見つけられないのですが、レシピから作成されたパッケージの情報を参照するのには便利なツールです。
参考になれば幸いです。
kawabata0820
2024/9/30 (月) 16:04
大変参考になりました
上記手順について、承知しました。
OSイメージにインストールされるファイルに対して、do_install:append() で編集したいが、どの「*.bbappend」で操作すべきかわからないファイルがたまたまありましたので、当該ファイルに対しても適用してみたところ、無事に対応できました。
今後、パッケージの情報を参考にする際に、利用していこうと思います。