Patchwork [v2,2/6] initscripts: save /etc/timestamp with seconds accuracy

login
register
mail settings
Submitter Ben Shelton
Date July 17, 2014, 9:56 p.m.
Message ID <c417e9dd139050026787229778db277911302044.1405633546.git.ben.shelton@ni.com>
Download mbox | patch
Permalink /patch/75967/
State Accepted
Commit 00017b4dd895afff9ff613d511cea373f13a96ea
Headers show

Comments

Ben Shelton - July 17, 2014, 9:56 p.m.
From: Blair Elliott <blair.elliott@ni.com>

Currently, /etc/timestamp is saved with minutes accuracy.  To increase
the accuracy, modify the save-rtc.sh and bootmisc.sh scripts to save and
read /etc/timestamp respectively with seconds accuracy.

Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Ben Shelton <ben.shelton@ni.com>
---
 meta/classes/image.bbclass                                | 2 +-
 meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh | 5 +++--
 meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)
Richard Purdie - July 20, 2014, 10:56 p.m.
On Thu, 2014-07-17 at 16:56 -0500, Ben Shelton wrote:
> From: Blair Elliott <blair.elliott@ni.com>
> 
> Currently, /etc/timestamp is saved with minutes accuracy.  To increase
> the accuracy, modify the save-rtc.sh and bootmisc.sh scripts to save and
> read /etc/timestamp respectively with seconds accuracy.
> 
> Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
> Signed-off-by: Ben Shelton <ben.shelton@ni.com>
> ---
>  meta/classes/image.bbclass                                | 2 +-
>  meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh | 5 +++--
>  meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh | 2 +-
>  3 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index a03b880..772c3ed 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -359,7 +359,7 @@ set_image_autologin () {
>  # Can be use to create /etc/timestamp during image construction to give a reasonably 
>  # sane default time setting
>  rootfs_update_timestamp () {
> -	date -u +%4Y%2m%2d%2H%2M >${IMAGE_ROOTFS}/etc/timestamp
> +	date -u +%4Y%2m%2d%2H%2M%2S >${IMAGE_ROOTFS}/etc/timestamp
>  }
>  
>  # Prevent X from being started
> diff --git a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> index 5211824..ccc7f9f 100755
> --- a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> +++ b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
> @@ -66,10 +66,11 @@ fi
>  test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh start
>  if test -e /etc/timestamp
>  then
> -	SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M`
> +	SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M%2S`
>  	read TIMESTAMP < /etc/timestamp
>  	if [ ${TIMESTAMP} -gt $SYSTEMDATE ]; then
> -		date -u ${TIMESTAMP#????}${TIMESTAMP%????????}
> +		# format the timestamp as date expects it (2m2d2H2M4Y.2S)
> +		date -u ${TIMESTAMP:4:8}${TIMESTAMP:0:4}.${TIMESTAMP:(-2)}
>  		test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh stop
>  	fi
>  fi

The syntax above doesn't appear to work with busybox:

/etc/init.d/rc: /etc/rcS.d/S55bootmisc.sh: line 73: syntax error: bad substitution 

:(

Cheers,

Richard

Patch

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index a03b880..772c3ed 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -359,7 +359,7 @@  set_image_autologin () {
 # Can be use to create /etc/timestamp during image construction to give a reasonably 
 # sane default time setting
 rootfs_update_timestamp () {
-	date -u +%4Y%2m%2d%2H%2M >${IMAGE_ROOTFS}/etc/timestamp
+	date -u +%4Y%2m%2d%2H%2M%2S >${IMAGE_ROOTFS}/etc/timestamp
 }
 
 # Prevent X from being started
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
index 5211824..ccc7f9f 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh
@@ -66,10 +66,11 @@  fi
 test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh start
 if test -e /etc/timestamp
 then
-	SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M`
+	SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M%2S`
 	read TIMESTAMP < /etc/timestamp
 	if [ ${TIMESTAMP} -gt $SYSTEMDATE ]; then
-		date -u ${TIMESTAMP#????}${TIMESTAMP%????????}
+		# format the timestamp as date expects it (2m2d2H2M4Y.2S)
+		date -u ${TIMESTAMP:4:8}${TIMESTAMP:0:4}.${TIMESTAMP:(-2)}
 		test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh stop
 	fi
 fi
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh b/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh
index 1f804e2..b038fc5 100644
--- a/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh
@@ -10,4 +10,4 @@ 
 ### END INIT INFO
 
 # Update the timestamp
-date -u +%4Y%2m%2d%2H%2M > /etc/timestamp
+date -u +%4Y%2m%2d%2H%2M%2S > /etc/timestamp