[OE-core] [OE-Core][PATCH v6 2/6] systemd: do not create machine-id

Alistair Francis alistair23 at gmail.com
Wed May 8 20:17:10 UTC 2019


On Thu, May 2, 2019 at 2:10 PM Alex Kiernan <alex.kiernan at gmail.com> wrote:
>
> From: Jonas Bonn <jonas at norrbonn.se>
>
> There is no reason to have an emtpy machine-id as part of the systemd
> package.  Either:
>
> i)  the filesystem is writable and the file will be created
> automatically; or
> ii) the filesystem is read-only, in which case the empty machine-id file
> should be created as part of the read-only-rootfs tweaks.
>
> Signed-off-by: Jonas Bonn <jonas at norrbonn.se>
> Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>

This patch now results in no "/etc/machine-id" being created which
breaks systemd-networkd WiFi connections.

I now always see this error when trying to connect to WiFi with
wpa_supplicant: "DHCP4 CLIENT: Failed to set IAID+DUID"

Alistair

> ---
>
> Changes in v6: None
> Changes in v5:
> - install default preset distribution policy of "enable nothing"
>
>  meta/classes/rootfs-postcommands.bbclass            | 6 ++++++
>  meta/recipes-core/systemd/systemd-conf_242.bb       | 9 ++-------
>  meta/recipes-core/systemd/systemd/99-default.preset | 1 +
>  meta/recipes-core/systemd/systemd_242.bb            | 6 +++++-
>  4 files changed, 14 insertions(+), 8 deletions(-)
>  create mode 100644 meta/recipes-core/systemd/systemd/99-default.preset
>
> diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
> index bde58ad6cd36..89f8efd32363 100644
> --- a/meta/classes/rootfs-postcommands.bbclass
> +++ b/meta/classes/rootfs-postcommands.bbclass
> @@ -126,6 +126,12 @@ read_only_rootfs_hook () {
>                         ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh
>                 fi
>         fi
> +
> +       if ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "true", "false", d)}; then
> +       # Create machine-id
> +       # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
> +               touch ${IMAGE_ROOTFS}${sysconfdir}/machine-id
> +       fi
>  }
>
>  #
> diff --git a/meta/recipes-core/systemd/systemd-conf_242.bb b/meta/recipes-core/systemd/systemd-conf_242.bb
> index 9bb27fd96d9c..7fe2e1105bef 100644
> --- a/meta/recipes-core/systemd/systemd-conf_242.bb
> +++ b/meta/recipes-core/systemd/systemd-conf_242.bb
> @@ -7,14 +7,13 @@ DefaultTimeoutStartSec setting."
>
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> -CONFFILES_${PN} = "${sysconfdir}/machine-id \
> -${sysconfdir}/systemd/coredump.conf \
> +CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \
>  ${sysconfdir}/systemd/journald.conf \
>  ${sysconfdir}/systemd/logind.conf \
>  ${sysconfdir}/systemd/system.conf \
>  ${sysconfdir}/systemd/user.conf"
>
> -FILES_${PN} = "${sysconfdir}/machine-id ${sysconfdir}/systemd"
> +FILES_${PN} = "${sysconfdir}/systemd"
>
>  do_configure[noexec] = '1'
>  do_compile[noexec] = '1'
> @@ -23,10 +22,6 @@ do_install() {
>         rm -rf ${D}/${sysconfdir}/systemd
>         install -d ${D}/${sysconfdir}/systemd
>
> -       # Create machine-id
> -       # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
> -       touch ${D}${sysconfdir}/machine-id
> -
>         install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf
>
>         install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf
> diff --git a/meta/recipes-core/systemd/systemd/99-default.preset b/meta/recipes-core/systemd/systemd/99-default.preset
> new file mode 100644
> index 000000000000..1f29b50597f0
> --- /dev/null
> +++ b/meta/recipes-core/systemd/systemd/99-default.preset
> @@ -0,0 +1 @@
> +disable *
> diff --git a/meta/recipes-core/systemd/systemd_242.bb b/meta/recipes-core/systemd/systemd_242.bb
> index 9f194f2b6ca1..7d1b0ec13a44 100644
> --- a/meta/recipes-core/systemd/systemd_242.bb
> +++ b/meta/recipes-core/systemd/systemd_242.bb
> @@ -22,6 +22,7 @@ SRC_URI += "file://touchscreen.rules \
>             file://0003-implment-systemd-sysv-install-for-OE.patch \
>             file://0004-rules-whitelist-hd-devices.patch \
>             file://0005-rules-watch-metadata-changes-in-ide-devices.patch \
> +           file://99-default.preset \
>             "
>
>  # patches needed by musl
> @@ -277,7 +278,6 @@ do_install() {
>         fi
>
>         # conf files are handled by systemd-conf
> -       rm -f ${D}${sysconfdir}/machine-id
>         rm -f ${D}${sysconfdir}/systemd/coredump.conf
>         rm -f ${D}${sysconfdir}/systemd/journald.conf
>         rm -f ${D}${sysconfdir}/systemd/logind.conf
> @@ -287,6 +287,10 @@ do_install() {
>         # duplicate udevadm for postinst script
>         install -d ${D}${libexecdir}
>         ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
> +
> +       # install default policy for presets
> +       # https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
> +       install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
>  }
>
>
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list