diff --git a/recipes-fixes/systemd/systemd-compat-units/alignment.service b/recipes-fixes/systemd/systemd-compat-units/alignment.service new file mode 100644 index 0000000..10e13f7 --- /dev/null +++ b/recipes-fixes/systemd/systemd-compat-units/alignment.service @@ -0,0 +1,17 @@ +[Unit] +Description=Handle unaligned access in kernel +DefaultDependencies=no +After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount +Before=sysinit.target +ConditionPathExists=|/proc/cpu/alignment + +[Service] +Type=oneshot +RemainAfterExit=no +ExecStart=/bin/sh -c 'echo 3 > /proc/cpu/alignment' +StandardOutput=syslog +TimeoutSec=0 + +[Install] +WantedBy=basic.target +WantedBy=sysinit.target diff --git a/recipes-fixes/systemd/systemd-compat-units_sysmocom.inc b/recipes-fixes/systemd/systemd-compat-units_sysmocom.inc index b656e1e..b8e86fe 100644 --- a/recipes-fixes/systemd/systemd-compat-units_sysmocom.inc +++ b/recipes-fixes/systemd/systemd-compat-units_sysmocom.inc @@ -1,5 +1,21 @@ -PRINC="1" +PRINC="2" # We need networking to run as we have no native services yet SYSTEMD_DISABLED_SYSV_SERVICES_remove = "networking" +S_THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}" +FILESPATH =. "${@base_set_filespath(["${S_THISDIR}/${PN}"], d)}:" +SRC_URI = "\ + file://machineid.service \ + file://run-postinsts.service \ + file://alignment.service" + + +do_install_append() { + install -d ${D}${systemd_unitdir}/system/basic.target.wants + install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ + + install -m 0644 ${WORKDIR}/alignment.service ${D}${systemd_unitdir}/system + ln -sf ../alignment.service ${D}${systemd_unitdir}/system/basic.target.wants/ + ln -sf ../alignment.service ${D}${systemd_unitdir}/system/sysinit.target.wants/ +}