From ef914f7d833b7ea7a5916e7d56c9e9c158d3783a Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Mon, 18 Jun 2012 19:17:22 +0200 Subject: [PATCH] add 04watchdog dracut module --- dracut.spec | 1 + modules.d/04watchdog/module-setup.sh | 23 +++++++++++++++++++++++ modules.d/04watchdog/watchdog.sh | 6 ++++++ modules.d/99base/dracut-lib.sh | 2 ++ 4 files changed, 32 insertions(+) create mode 100755 modules.d/04watchdog/module-setup.sh create mode 100755 modules.d/04watchdog/watchdog.sh diff --git a/dracut.spec b/dracut.spec index eb5df2c..6e8c733 100644 --- a/dracut.spec +++ b/dracut.spec @@ -254,6 +254,7 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man5/dracut.conf.5* %{dracutlibdir}/modules.d/00bootchart %{dracutlibdir}/modules.d/00dash +%{dracutlibdir}/modules.d/04watchdog %{dracutlibdir}/modules.d/05busybox %{dracutlibdir}/modules.d/10i18n %{dracutlibdir}/modules.d/30convertfs diff --git a/modules.d/04watchdog/module-setup.sh b/modules.d/04watchdog/module-setup.sh new file mode 100755 index 0000000..eb46143 --- /dev/null +++ b/modules.d/04watchdog/module-setup.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +check() { + return 255 +} + +depends() { + return 0 +} + +install() { + inst_hook cmdline 00 "$moddir/watchdog.sh" + inst_hook cmdline 50 "$moddir/watchdog.sh" + inst_hook pre-trigger 00 "$moddir/watchdog.sh" + inst_hook initqueue 00 "$moddir/watchdog.sh" + inst_hook mount 00 "$moddir/watchdog.sh" + inst_hook mount 50 "$moddir/watchdog.sh" + inst_hook pre-pivot 00 "$moddir/watchdog.sh" + inst_hook cleanup 00 "$moddir/watchdog.sh" +} + diff --git a/modules.d/04watchdog/watchdog.sh b/modules.d/04watchdog/watchdog.sh new file mode 100755 index 0000000..712969f --- /dev/null +++ b/modules.d/04watchdog/watchdog.sh @@ -0,0 +1,6 @@ +#!/bin/sh +if [ -e /dev/watchdog ]; then + >/dev/watchdog +else + modprobe ib700wdt +fi diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 3ecba9a..8cfd7b3 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -832,6 +832,8 @@ emergency_shell() fi [ -c "$_ctty" ] || _ctty=/dev/tty1 strstr "$(setsid --help 2>/dev/null)" "ctty" && CTTY="-c" + # stop watchdog + echo 'V' > /dev/watchdog setsid $CTTY /bin/sh -i -l 0<$_ctty 1>$_ctty 2>&1 else warn "$action has failed. To debug this issue add \"rd.shell\" to the kernel command line."