Hannu Nyman kirjoitti 10.1.2021 klo 19.25:
Rosen Penev kirjoitti 8.1.2021 klo 5.30:
The date -k patch is non standard and will be removed in the next
commit.

...

--- a/package/base-files/files/etc/init.d/system
+++ b/package/base-files/files/etc/init.d/system
@@ -27,7 +27,7 @@ system_config() {
          ln -sf "/usr/share/zoneinfo/$zonename" /tmp/localtime && rm -f /tmp/TZ
        # apply timezone to kernel
-    busybox date -k
+    hwclock --systz
  }
    reload_service() {


I suspect that this proposed modification causes a noticeable difference to the previous way: After reboot, the early part of the log seems to be in UTC instead of the local timezone, as earlier. (Likely sysfixtime has understood the timestamp of the last file in /etc wrongly)

Here is a extract from system log of the router with busybox 1.33 in a simple reboot. I touched a file in /etc just before reboot, so sysfixtime should set roughly correct time early in the boot process. There should be just approx. one minute jump when NTP corrects time (from the most-recent-file based boot time as set by sysfixtime), instead of two hours + 1 minute.

Sun Jan 10 16:37:50 2021 daemon.info procd: - init complete -
Sun Jan 10 16:37:52 2021 user.notice nlbwmon: Reloading nlbwmon due to ifup of lan6 (br-lan) Sun Jan 10 18:38:56 2021 user.notice ntpd: Time set, stratum=16 interval=32 offset=7262.868194


Something has prevented the normal timezone handling there.


Doing the same reboot with a 2 Jan 2021 build without buysybox 1.33 makes the time shift jump look again normal. There is just the expected one minute jump:

Sun Jan 10 19:04:01 2021 daemon.info procd: - init complete -
Sun Jan 10 19:05:03 2021 user.notice ntpd: Time set, stratum=16 interval=32 offset=60.906955 Sun Jan 10 19:05:05 2021 user.notice nlbwmon: Reloading nlbwmon due to ifup of lan6 (br-lan)


It is of course possible that this might be due to some change in base-files or kernel last week, but that is hard to believe.

I suspect that the "hwclock --systz" does something slightly different than our "date -k", at least on routers without a real RTC.

My proposal would be to revert your removal of the date-k patch and continue using it the previous way.

(I will try to test with date-k reverted if things then work ok with 1.33. Might be that this is something different.)

I compiled the same up-to-date master with busybox 1.33 but with the date-k removal reveerted and refreshed, and the timestamps in the system log again behave normally:


After flash of r15469 with busybox 1.33 with date-k changed reverted (and refreshed).
Normal time shift, roughly the difference of build & flashing

Sun Jan 10 19:44:59 2021 user.notice nlbwmon: Reloading nlbwmon due to ifup of loopback (lo)
Sun Jan 10 19:45:02 2021 daemon.info procd: - init complete -
Sun Jan 10 19:45:02 2021 daemon.info urandom_seed[4597]: Seed saved (/etc/urandom.seed) Sun Jan 10 20:25:06 2021 user.notice ntpd: Time set, stratum=16 interval=32 offset=2403.398106 Sun Jan 10 20:25:06 2021 user.notice nlbwmon: Reloading nlbwmon due to ifup of lan6 (br-lan)


After a normal boot, again a normal 1 minute leap when NTP kicks in:

Sun Jan 10 20:39:24 2021 daemon.err uhttpd[2934]: luci: accepted login on /admin/status/overview for root from 192.168.1.180
Sun Jan 10 20:39:25 2021 daemon.info procd: - init complete -
Sun Jan 10 20:40:45 2021 user.notice ntpd: Time set, stratum=16 interval=32 offset=79.663960 Sun Jan 10 20:40:46 2021 user.notice ntpd: Stratum change, stratum=4 interval=32 offset=0.001017 Sun Jan 10 20:40:48 2021 user.notice nlbwmon: Reloading nlbwmon due to ifup of lan6 (br-lan)

I think that the proposed date-k removal and /etc/init.d/system change should be removed from the version bump.


The patch 250-date-k-flag.patch needs to be refreshed. This is the original compared to the refreshed-for-1.33.0


diff --git a/package/utils/busybox/patches/250-date-k-flag.patch b/package/utils/busybox/patches/250-date-k-flag.patch
index 5aadbb233c..3a666c581d 100644
--- a/package/utils/busybox/patches/250-date-k-flag.patch
+++ b/package/utils/busybox/patches/250-date-k-flag.patch
@@ -1,14 +1,14 @@
 --- a/coreutils/date.c
 +++ b/coreutils/date.c
-@@ -123,6 +123,7 @@
- //usage:    IF_FEATURE_DATE_ISOFMT(
- //usage:     "\n    -D FMT        Use FMT (strptime format) for -d TIME conversion"
+@@ -109,6 +109,7 @@
+ //usage:     "\n    -I[SPEC]    Output ISO-8601 date"
+ //usage:     "\n            SPEC=date (default), hours, minutes, seconds or 
ns"
  //usage:    )
 +//usage:     "\n    -k        Set Kernel timezone from localtime and exit"
  //usage:     "\n"
  //usage:     "\nRecognized TIME formats:"
- //usage:     "\n    hh:mm[:ss]"
-@@ -139,9 +140,8 @@
+ //usage:     "\n    @seconds_since_1970"
+@@ -126,9 +127,8 @@

  #include "libbb.h"
  #include "common_bufsiz.h"
@@ -20,19 +20,19 @@

  enum {
      OPT_RFC2822   = (1 << 0), /* R */
-@@ -149,8 +149,9 @@ enum {
+@@ -136,8 +136,9 @@ enum {
      OPT_UTC       = (1 << 2), /* u */
      OPT_DATE      = (1 << 3), /* d */
      OPT_REFERENCE = (1 << 4), /* r */
--    OPT_TIMESPEC  = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
--    OPT_HINT      = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
+-    OPT_ISO8601   = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
+-    OPT_STR2DT    = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
 +    OPT_KERNELTZ  = (1 << 5), /* k */
-+    OPT_TIMESPEC  = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
-+    OPT_HINT      = (1 << 7) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
++    OPT_ISO8601   = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
++    OPT_STR2DT    = (1 << 7) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
  };

  #if ENABLE_LONG_OPTS
-@@ -162,6 +163,7 @@ static const char date_longopts[] ALIGN1
+@@ -149,6 +150,7 @@ static const char date_longopts[] ALIGN1
      /*    "universal\0" No_argument       "u" */
          "date\0"      Required_argument "d"
          "reference\0" Required_argument "r"
@@ -40,7 +40,7 @@
          ;
  #endif

-@@ -181,6 +183,8 @@ static void maybe_set_utc(int opt)
+@@ -162,6 +164,8 @@ static const char date_longopts[] ALIGN1
  int date_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  int date_main(int argc UNUSED_PARAM, char **argv)
  {
@@ -49,7 +49,7 @@
      struct timespec ts;
      struct tm tm_time;
      char buf_fmt_dt2str[64];
-@@ -193,7 +197,7 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -174,7 +178,7 @@ int date_main(int argc UNUSED_PARAM, cha
      char *isofmt_arg = NULL;

      opt = getopt32long(argv, "^"
@@ -58,7 +58,7 @@
              IF_FEATURE_DATE_ISOFMT("I::D:")
              "\0"
              "d--s:s--d"
-@@ -256,6 +260,31 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -238,6 +242,31 @@ int date_main(int argc UNUSED_PARAM, cha
      if (*argv)
          bb_show_usage();



_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to