0

イメージごとに init システムを変更したいと考えています。ここで指摘されているように、サンプル画像を作成しました。これはうまく機能しますが、rootfs から未使用の init システム (この場合は SysVinit) も削除したいと考えています。

したがって、ディストリビューション構成内で次のようなことを試しました: (REQUIRED_DISTRO_FEATURES = "systemd" が image.bb 内に設定されています)

DISTRO_FEATURES_BACKFILL_CONSIDERED = "${@bb.utils.contains('REQUIRED_DISTRO_FEATURES', 'systemd', 'sysvinit', '', d)}"

最後に、これはまさに私が期待するものになります。

$ bitbake sample-image-systemd -e | grep DISTRO_FEATURES_BACKFILL_CONSIDERED=
DISTRO_FEATURES_BACKFILL_CONSIDERED="sysvinit"

ここまでは順調ですね。しかし、最終的な rootfs にはまだ sysvinit スクリプト (/etc/init.d/*) が含まれています。

ディストリビューション構成内で次のことを行うと、すべてが正常に機能し、/etc/init.d が作成されません。

DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"

そのため、違いと、私のソリューションが機能しない理由がよくわかりません。

4

1 に答える 1