[PATCH] Minimum we have to do with HW clock
Vratislav Podzimek
vpodzime at redhat.com
Fri Oct 5 17:57:47 UTC 2012
Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
pyanaconda/install.py | 4 ++++
pyanaconda/kickstart.py | 7 +++++++
pyanaconda/timezone.py | 19 +++++++++++++++++++
3 files changed, 30 insertions(+)
diff --git a/pyanaconda/install.py b/pyanaconda/install.py
index b716364..102855d 100644
--- a/pyanaconda/install.py
+++ b/pyanaconda/install.py
@@ -86,8 +86,12 @@ def doInstall(storage, payload, ksdata, instClass):
installing packages onto those filesystems.
"""
from pyanaconda import progress
+ from pyanaconda import timezone
from pyanaconda.kickstart import runPostScripts
+ # First save system time to HW clock.
+ timezone.save_hw_clock(ksdata.timezone)
+
# We really only care about actions that affect filesystems, since
# those are the ones that take the most time.
steps = len(storage.devicetree.findActions(type="create", object="format")) + \
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index 7ff41a5..809af11 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -1262,6 +1262,13 @@ class Services(commands.services.FC6_Services):
root=ROOT_PATH)
class Timezone(commands.timezone.F18_Timezone):
+ def __init__(self, *args):
+ commands.timezone.F18_Timezone.__init__(self, *args)
+
+ #TODO: Do we need to set it to False in case of dual-boot?
+ #default to UTC HW clock in Anaconda
+ self.isUtc = True
+
def execute(self, *args):
# write out timezone configuration
if not timezone.is_valid_timezone(self.timezone):
diff --git a/pyanaconda/timezone.py b/pyanaconda/timezone.py
index 0b7173d..6d07317 100644
--- a/pyanaconda/timezone.py
+++ b/pyanaconda/timezone.py
@@ -29,6 +29,7 @@ import pytz
from collections import OrderedDict
from pyanaconda import localization
+from pyanaconda import iutil
import logging
log = logging.getLogger("anaconda")
@@ -87,6 +88,24 @@ def write_timezone_config(timezone, root):
msg = "Error while writing /etc/adjtime file: %s" % ioerr.strerror
raise TimezoneConfigError(msg)
+def save_hw_clock(timezone):
+ """
+ Save system time to HW clock.
+
+ @param timezone: ksdata.timezone object
+
+ """
+
+ cmd = "hwclock"
+ args = ["--systohc"]
+ if timezone.isUtc:
+ args.append("--utc")
+ else:
+ args.append("--local")
+
+ iutil.execWithRedirect(cmd, args, stdout="/dev/tty5", stderr="/dev/tty5")
+
+
def get_all_territory_timezones(territory):
"""
Return the list of timezones for a given territory.
--
1.7.11.4
More information about the anaconda-patches
mailing list