<< Back to man.ChinaUnix.net

7.5. Configuring the setclock Script

The setclock script reads the time from the hardware clock, also known as BIOS or the Complementary Metal Oxide Semiconductor (CMOS) clock. If the hardware clock is set to UTC, this script will convert the hardware clock's time to the local time using the /etc/localtime file (which tells the hwclock program which timezone the user is in). There is no way to detect whether or not the hardware clock is set to UTC time, so this needs to be manually configured.

If you cannot remember whether or not the hardware clock is set to UTC time, find out by running the hwclock --localtime --show command. This will tell what the current time is according to the hardware clock. If this time matches whatever your watch says, then the hardware clock is set to local time. If the output from hwclock is not local time, chances are it is set to UTC time. Verify this by adding or subtracting the proper amount of hours for the timezone to this hwclock time. For example, if you live in the MST timezone, which is also known as GMT -0700, add seven hours to the local time. Then, account for Daylight Savings Time, which requires subtracting an hour (or only add six in the first place) during the summer months.

Change the value of the UTC variable below to a value of 0 (zero) if the hardware clock is not set to UTC time.

Create a new file /etc/sysconfig/clock by running the following:

cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock

UTC=1

# End /etc/sysconfig/clock
EOF

A good hint explaining how to deal with time on LFS is available at http://www.linuxfromscratch.org/hints/downloads/files/time.txt. It explains issues such as time zones, UTC, and the TZ environment variable.