Création du script setclock

Le script qui suit n'est vraiment utile que quand l'horloge matérielle (aussi appelée BIOS or horloge CMOS) n'est pas à l'heure GMT. La configuration recommandée est de mettre l'horloge matérielle à GMT et de convertir l'heure en heure local en utilisant le lien symbolique /etc/localtime. Mais si un autre système d'exploitation qui ne comprend pas une horloge positionnée à GMT ( les plus connus étant les systèmes d'exploitation Microsoft ) vous voudrez certainement mettre votre horloge à l'heure locale pour que l'heure soit correctement affichée sous les deux systèmes. Ce script affectera l'heure du noyau à celle de l'horloge matérielle sans utiliser le lien symbolique /etc/localtime.

Créez le script /etc/init.d/setclock en lançant la commande suivante:

cat > /etc/init.d/setclock << "EOF"
#!/bin/sh
# Début de /etc/init.d/setclock

#
# Inclut les fonctions déclarées dans le fichier /etc/init.d/functions
# inclut les variables du fichier /etc/sysconfig/clock
#

source /etc/init.d/functions
source /etc/sysconfig/clock

#
# Maintenant, nous voulons que l'heure de l'horloge noyau soit la même
# que celle de l'horloge matérielle, pour cela on utilise le paramètre -hctosys.
#

CLOCKPARAMS="--hctosys"

#
# Si la variable UTC est positionnée dans le fichier /etc/sysconfig/clock, ajoutez
# aussi le paramètre -u qui indique que l'horloge matérielle est à l'heure UTC
# au lieu de l'heure locale.
#

case "$UTC" in
        yes|true|1)
                CLOCKPARAMS="$CLOCKPARAMS --utc"
                ;;
        no|false|0)
                CLOCKPARAMS="$CLOCKPARAMS --localtime"
                ;;
esac

echo -n "Setting clock..."
/sbin/hwclock $CLOCKPARAMS
evaluate_retval

# End /etc/init.d/setclock
EOF

Création du fichier /etc/sysconfig/clock

Si vous voulez utilisez ce script sur votre système même si l'horloge matérielle est positionnée à GMT, alors la variable UTC suivante doit être changée à la valeur 1.

Créez un nouveau fichier /etc/sysconfig/clock en lançant la commande suivante:

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

UTC=0

# Fin de /etc/sysconfig/clock
EOF

Maintenant, vous voudrez peut-être jeter un oeil sur cette excellente astuce expliquant comment on gère le temps avec LFS: http://hints.linuxfromscratch.org/hints/time.txt. Il explique des points tels les timezones, UTC, et la variable d'environnement TZ.