aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xadjtime.cron18
-rw-r--r--rc.conf3
-rwxr-xr-xrc.shutdown2
-rwxr-xr-xrc.sysinit15
4 files changed, 29 insertions, 9 deletions
diff --git a/adjtime.cron b/adjtime.cron
index 40c02f2..b1c8950 100755
--- a/adjtime.cron
+++ b/adjtime.cron
@@ -1,3 +1,17 @@
-#!/bin/sh
+#!/bin/bash
# Update our hwclock for system drift
-/sbin/hwclock --adjust
+
+. /etc/rc.conf
+
+HWCLOCK_PARAMS="--adjust"
+if [ "$HARDWARECLOCK" = "UTC" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
+elif [ "$HARDWARECLOCK" = "localtime" ]; then
+ HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
+else
+ HWCLOCK_PARAMS=""
+fi
+
+if [ -n "$HWCLOCK_PARAMS" ]; then
+ /sbin/hwclock $HWCLOCK_PARAMS
+fi
diff --git a/rc.conf b/rc.conf
index b9495f8..252a9b1 100644
--- a/rc.conf
+++ b/rc.conf
@@ -7,7 +7,8 @@
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
-# HARDWARECLOCK: set to "UTC" or "localtime"
+# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
+# in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
diff --git a/rc.shutdown b/rc.shutdown
index b0d8195..e2a4a84 100755
--- a/rc.shutdown
+++ b/rc.shutdown
@@ -80,7 +80,7 @@ elif [ "$HARDWARECLOCK" = "localtime" ]; then
else
HWCLOCK_PARAMS=""
fi
-if [ "$HWCLOCK_PARAMS" != "" ]; then
+if [ -n "$HWCLOCK_PARAMS" ]; then
/sbin/hwclock $HWCLOCK_PARAMS
fi
stat_done
diff --git a/rc.sysinit b/rc.sysinit
index 322b512..0e67721 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -35,7 +35,8 @@ fi
# enable rtc access
/sbin/modprobe rtc-cmos >/dev/null 2>&1
-RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}"
+RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null)
+RTC_MAJOR="${RTC_MAJOR%% *}"
if [ -n "$RTC_MAJOR" ]; then
/bin/mknod /dev/rtc0 c $RTC_MAJOR 0
/bin/ln -s /dev/rtc0 /dev/rtc
@@ -44,13 +45,15 @@ fi
HWCLOCK_PARAMS="--hctosys"
if [ "$HARDWARECLOCK" = "UTC" ]; then
HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
-else
+elif [ "$HARDWARECLOCK" = "localtime" ]; then
HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
+else
+ HWCLOCK_PARAMS=""
fi
# Set clock early to fix some bugs with filesystem checks
# Clock is set again later to match rc.conf
-if [ -f /etc/localtime ]; then
+if [ -n "$HWCLOCK_PARAMS" -a -f /etc/localtime ]; then
/sbin/hwclock $HWCLOCK_PARAMS --noadjfile
fi
@@ -302,8 +305,10 @@ if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
/bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi
-/sbin/hwclock --adjust #Adjust for system drift
-/sbin/hwclock $HWCLOCK_PARAMS
+if [ -n "$HWCLOCK_PARAMS" ]; then
+ /sbin/hwclock --adjust #Adjust for system drift
+ /sbin/hwclock $HWCLOCK_PARAMS
+fi
stat_done
RANDOM_SEED=/var/lib/misc/random-seed