[arch-projects] [initscripts] [PATCH 1/2] Make hwclock --adjust as well as --systohc optional (FS#13684)

Kurt J. Bosch kjb-temp-2009 at alpenjodel.de
Wed Mar 30 09:44:46 EDT 2011


Am 30.03.2011 15:26, schrieb Tom Gundersen:
> Hi Kurt,
>
> I was about to test and push your patches, but they do not apply (I
> think your mailreader messed them up as there are at least some
> linebreaks that should not have been there...), could you resend using
> git send-email (as explained by Thomas in a recent mail), or give me a
> public repository I can pull from (the latter would probably be
> better)?
>
> Cheers,
>
> Tom
>
> On Mon, Mar 28, 2011 at 7:14 PM, Kurt J. Bosch
> <kjb-temp-2009 at alpenjodel.de>  wrote:
>>  From db75b4636156aea2a65b600c0d4e65e08de41138 Mon Sep 17 00:00:00 2001
>> From: Kurt J. Bosch<kjb-temp-2009 at alpenjodel.de>
>> Date: Mon, 28 Mar 2011 19:06:05 +0200
>> Subject: [PATCH 1/2] Make hwclock --adjust as well as --systohc optional
>> (FS#13684)
>>
>> ---
>>   adjtime.cron |    2 +-
>>   hwclock      |   39 +++++++++++++++++++++++++++++++++++++++
>>   install.sh   |    2 +-
>>   rc.conf      |    5 ++++-
>>   rc.shutdown  |   13 ++-----------
>>   rc.sysinit   |   27 +++------------------------
>>   6 files changed, 50 insertions(+), 38 deletions(-)
>>   create mode 100755 hwclock
>>
>> diff --git a/adjtime.cron b/adjtime.cron
>> index a876506..dac8cea 100755
>> --- a/adjtime.cron
>> +++ b/adjtime.cron
>> @@ -10,6 +10,6 @@ case $HARDWARECLOCK in
>>      *) HWCLOCK_PARAMS="";;
>>   esac
>>
>> -if [[ $HWCLOCK_PARAMS ]]; then
>> +if [[ $HWCLOCK_PARAMS&&  -f /var/run/daemons/hwclock ]]; then
>>      /sbin/hwclock $HWCLOCK_PARAMS
>>   fi
>> diff --git a/hwclock b/hwclock
>> new file mode 100755
>> index 0000000..d9de9e1
>> --- /dev/null
>> +++ b/hwclock
>> @@ -0,0 +1,39 @@
>> +#!/bin/bash
>> +
>> +. /etc/rc.conf
>> +. /etc/rc.d/functions
>> +
>> +case $HARDWARECLOCK in
>> +    UTC) HWCLOCK_PARAMS="--utc";;
>> +    localtime) HWCLOCK_PARAMS="--localtime";;
>> +    *) HWCLOCK_PARAMS="";;
>> +esac
>> +
>> +case "$1" in
>> +    start)
>> +        if [[ $HWCLOCK_PARAMS ]]; then
>> +            status "Adjusting Hardware Clock" \
>> +                /sbin/hwclock --adjust
>> +            stat_busy "Setting System Clock"
>> +            /sbin/hwclock --hctosys $HWCLOCK_PARAMS || stat_die
>> +            stat_done
>> +            # Note: This also enables /etc/cron.hourly/adjtime
>> +            add_daemon hwclock
>> +        fi
>> +        ;;
>> +    stop)
>> +        if [[ $HWCLOCK_PARAMS ]]; then
>> +            stat_busy "Saving System Clock"
>> +            /sbin/hwclock --systohc $HWCLOCK_PARAMS || stat_die
>> +            stat_done
>> +        fi
>> +        rm_daemon hwclock
>> +        ;;
>> +    restart)
>> +        $0 stop
>> +        sleep 1
>> +        $0 start
>> +        ;;
>> +    *)
>> +        echo "usage: $0 {start|stop|restart}"
>> +esac
>> diff --git a/install.sh b/install.sh
>> index 2b2cbbc..8e6c3d7 100755
>> --- a/install.sh
>> +++ b/install.sh
>> @@ -15,7 +15,7 @@ done
>>   install -D -m755 adjtime.cron ${DESTDIR}/etc/cron.hourly/adjtime
>>
>>   install -D -m644 functions ${DESTDIR}/etc/rc.d/functions || exit 1
>> -for i in network netfs; do
>> +for i in hwclock network netfs; do
>>    install -D -m755 $i ${DESTDIR}/etc/rc.d/$i || exit 1
>>   done
>>
>> diff --git a/rc.conf b/rc.conf
>> index d2b0517..0b0a818 100644
>> --- a/rc.conf
>> +++ b/rc.conf
>> @@ -105,4 +105,7 @@ NETWORK_PERSIST="no"
>>   #   - prefix a daemon with a ! to disable it
>>   #   - prefix a daemon with a @ to start it up in the background
>>   #
>> -DAEMONS=(syslog-ng network netfs crond)
>> +# If something other takes care of your hardware clock (ntpd, dual-boot...)
>> +# you should disable 'hwclock' here.
>> +#
>> +DAEMONS=(hwclock syslog-ng network netfs crond)
>> diff --git a/rc.shutdown b/rc.shutdown
>> index 0acca49..fef1117 100755
>> --- a/rc.shutdown
>> +++ b/rc.shutdown
>> @@ -35,21 +35,12 @@ fi
>>   /bin/dd if=/dev/urandom of=$RANDOM_SEED count=1 bs=$POOL_SIZE&>  /dev/null
>>   stat_done
>>
>> -stat_busy "Saving System Clock"
>>   if [[ $TIMEZONE&&  -e /usr/share/zoneinfo/$TIMEZONE ]]; then
>>      /bin/rm -f /etc/localtime
>> -    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
>> +    status "Saving Time Zone" \
>> +        /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
>>   fi
>>
>> -HWCLOCK_PARAMS="--systohc"
>> -case $HARDWARECLOCK in
>> -    UTC) HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc";;
>> -    localtime) HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime";;
>> -    *) HWCLOCK_PARAMS="";;
>> -esac
>> -[[ $HWCLOCK_PARAMS ]]&&  /sbin/hwclock $HWCLOCK_PARAMS
>> -stat_done
>> -
>>   # removing psmouse module to fix some reboot issues on newer laptops
>>   /sbin/modprobe -r psmouse>/dev/null 2>&1
>>
>> diff --git a/rc.sysinit b/rc.sysinit
>> index 9797611..e949180 100755
>> --- a/rc.sysinit
>> +++ b/rc.sysinit
>> @@ -66,7 +66,7 @@ if [[ $HWCLOCK_PARAMS ]]; then
>>      #    configured timezone. Any new timezone put in rc.conf is copied over
>> at
>>      #    a later time.
>>      # This does *NOT* take into account a time adjustment file as /var may
>> not be
>> -    # mounted yet. A second set occurs later to match rc.conf.
>> +    # mounted yet. A second set may occur in rc.d/hwclock to match rc.conf.
>>      if [[ -f /etc/localtime ]]; then
>>          /sbin/hwclock $HWCLOCK_PARAMS --noadjfile
>>      fi
>> @@ -304,28 +304,12 @@ status "Retrying failed UDev events" /sbin/udevadm
>> trigger --action=add --type=f
>>
>>   status "Activating Swap" /sbin/swapon -a
>>
>> -stat_busy "Configuring System Clock"
>>   if [[ $TIMEZONE&&  -e /usr/share/zoneinfo/$TIMEZONE ]]; then
>>      /bin/rm -f /etc/localtime
>> -    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
>> +    status "Configuring Time Zone" \
>> +        /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
>>   fi
>>
>> -clock_pid=""
>> -if [[ $HWCLOCK_PARAMS ]]; then
>> -    # This time, we set the clock for real. Use the adjustment file now
>> that
>> -    # /var will definitely be available, and then set the system clock once
>> -    # the hardware clock has been adjusted accordingly. The backgrounding
>> magic
>> -    # is due to the fact that the second call to hwclock will almost always
>> -    # take ~1 second because of the clock granularity, and we might as well
>> -    # stay busy.
>> -    (
>> -    /sbin/hwclock --adjust
>> -    /sbin/hwclock $HWCLOCK_PARAMS
>> -    )&
>> -    clock_pid=$!
>> -fi
>> -stat_done
>> -
>>   RANDOM_SEED=/var/lib/misc/random-seed
>>   if [[ -f $RANDOM_SEED ]]; then
>>      stat_busy "Initializing Random Seed"
>> @@ -398,11 +382,6 @@ set_consolefont
>>
>>   /bin/dmesg>| /var/log/dmesg.log
>>
>> -# final hwclock setting needs to be done at this point
>> -if [[ $clock_pid ]]; then
>> -    wait $clock_pid
>> -fi
>> -
>>   run_hook sysinit_end
>>
>>   # End of file
>> --
>> 1.7.0.3
>>
>>
>> _______________________________________________
>> arch-projects mailing list
>> arch-projects at archlinux.org
>> http://mailman.archlinux.org/mailman/listinfo/arch-projects
>>
I'm sorry, please try these:

http://pastebin.com/pb3Kf7as
http://pastebin.com/adHNkLby

--
Kurt


More information about the arch-projects mailing list