The systemd-shutdown sets watchdog timeout to 10m (600 seconds) which is too
large, and caused errors when reboot on boars such as rpi4:
systemd-shutdown[1]: Failed to set timeout to 10min: Invalid argument
The watchog's default value is 60s, so set RebootWatchdogSec to 60s to fix the
errors. And <machin.conf> can set WATCHDOG_TIMEOUT when needed, for example,
the max timeout of rpi4 is 15 seconds.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Dnologin-path=${base_sbindir}/nologin \
-Dumount-path=${base_bindir}/umount"
+# The 60 seconds is watchdog's default vaule.
+WATCHDOG_TIMEOUT ??= "60"
+
do_install() {
meson_do_install
install -d ${D}/${base_sbindir}
# add a profile fragment to disable systemd pager with busybox less
install -Dm 0644 ${WORKDIR}/systemd-pager.sh ${D}${sysconfdir}/profile.d/systemd-pager.sh
+
+ if [ -n "${WATCHDOG_TIMEOUT}" ]; then
+ sed -i -e 's/#RebootWatchdogSec=10min/RebootWatchdogSec=${WATCHDOG_TIMEOUT}/' \
+ ${D}/${sysconfdir}/systemd/system.conf
+ fi
}
python populate_packages:prepend (){
file://watchdog.conf \
"
+# The default value is 60 seconds when null.
+WATCHDOG_TIMEOUT ??= ""
+
do_install() {
install -Dm 0644 ${WORKDIR}/watchdog.default ${D}${sysconfdir}/default/watchdog
install -Dm 0644 ${WORKDIR}/watchdog.conf ${D}${sysconfdir}/watchdog.conf
+
+ if [ -n "${WATCHDOG_TIMEOUT}" ]; then
+ echo "watchdog-timeout = ${WATCHDOG_TIMEOUT}" >> ${D}/etc/watchdog.conf
+ fi
}