2006-11-25 05:53:49     TZ can not be read ??

Document created by Aaronwu Employee on Aug 27, 2013
Version 1Show Document
  • View in full screen mode

2006-11-25 05:53:49     TZ can not be read ??

w w (CHINA)

Message: 16880    Under the uClinux version 2006R2 and toolchain 2006R2 , the file /etc/TZ can not read by the uClinux kernel. I can "export TZ=GMT-8" to set the time zone, but when I run "echo GMT-8 > /etc/TZ" and reboot the system, the time zone is the UTC, it hasn't changed. I have selected the choice

[*] Support time zones

[*] Always load from file

and in uClibc

[*] Enable caching of the last valid timezone 'TZ' string

[*] Enable '/etc/TZ' file support to set a default timezone (uClibc-specific)

[*] Repeatedly read the '/etc/TZ' file

(/etc/TZ) Path to the 'TZ' file for setting the global timezone

What should I do ? thank you !!




2006-11-26 21:16:33     RE: TZ can not be read ??

Mike Frysinger (UNITED STATES)

Message: 16896    try running `strace date` and see if the /etc/TZ file is actually read


the distribution no longer builds uClibc separately; it will install the uClibc that is part of the toolchain so if you need to make uClibc changes, you need to update your toolchain accordingly




2006-11-27 05:19:50     RE: TZ can not be read ??

w w (CHINA)

Message: 16918    Thank you Mike!

I can get the right time zone with serial console, it can be read from file /etc/TZ when the system boot.

But when I telnet the system, I find that in my telnet shell, the time zone is UTC.

What's the matter ?

I can run "export TZ=GMT-8" to set the time zone, but I want to get the right value when i telnet my system and do't set anything.

Is there any suggestions ?

Thank you !!




2006-11-28 02:26:17     RE: TZ can not be read ??

w w (CHINA)

Message: 16984    Is there no one know the question ?

I can get the right time zone from serial console, but can not get it from telnet , why ?

Thank you !!




2006-11-28 09:45:03     RE: TZ can not be read ??

Michele d'Amico (ITALY)

Message: 16996    Hi w w,


I guess that telnetd don't spawn the TZ environment variable. If you are

interested in you could investigate/debug it by yourself.








2006-11-28 09:55:12     RE: TZ can not be read ??


Message: 16998    Agree.


Please do some investigation (search the web at least) by yourself

before asking questions.





2006-11-28 14:38:13     RE: TZ can not be read ??


Message: 17012    Yi:


In our cvs ./uClinux-dist/user/telnetd/sys_term.c


void init_env(void) {

#if 0

char **envp;

envp = envinit;

if ((*envp = getenv("TZ"))!=NULL)

*envp++ -= 3;

#ifdef CRAY

else *envp++ = "TZ=GMT0";


*envp = 0;

environ = envinit;




In a recent version of netkit telnet/telnetd/sys_term.c from ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/netkit-telnet-0.17.tar.gz


void init_env(void) {

char **envp;

envp = envinit;

if ((*envp = getenv("TZ"))!=NULL)

*envp++ -= 3;

*envp = 0;

environ = envinit;



Can you check on the main uclinux-dev mailing list, why the TZ is not set properly, or if by closer inspection, our telnetd is old and out of date - can you test the new one, and update cvs?







2007-10-28 17:32:33     RE: TZ can not be read ??

Øyvind Kaurstad (NORWAY)

Message: 46070    I'm bumping this old thread instead of starting a new one.


I am having a similar issue. I want to have the correct timezone, be it on the serial console or in a telnet session. If I modify the TZ file, I get what I want on the serial console, but not in a telnet session. In the serial console the TZ-variable is present, but not in the telnet console. However, several other environment variables are correctly exported in the telnet session, but I am not sure which code is responsible for that.


I'd like to have the TZ variable automatically exported in a telnet session, where is the correct place to do that? Changing #if 0 to #if 1 in init_env in sys_term.c makes no difference, since the getenv("TZ")-call returns NULL.


On the serial console:


root:~> export

export HOME

export SHELL

export TZ

export PATH

export TERM


In the telnet session:


root:~> export

export PATH

export HOME

export SHELL

export DISPLAY





export PROTO




2007-11-01 23:51:24     RE: TZ can not be read ??

w w (CHINA)

Message: 46253   


I have the same problem, but I can not resolve the question. Maybe there is something wrong about the toolchain, because I can get right result in uClinux version 2006R1.




2009-10-21 03:56:51     RE: TZ can not be read ??

arthur chan (CHINA)

Message: 81527   


whatever libc version you use,  just enclose it in a C routin, it's Ok, what I do is to  read the configuration file before






  1 #include <stdio.h>

  2 #include <stdlib.h>

  3 #include <unistd.h>


  5 #include <fcntl.h>

  6 #include <sys/ioctl.h>

  7 #include <sys/stat.h>

  8 #include <string.h>


10 #define TZ_max_len      32

11 int main(int argc, char *argv[])

12 {

13         int fd_etc_TZ;

14         int ret;

15         char TZ_buf[TZ_max_len];

16         char *p;


18         p = getenv("TZ");

19         printf("this what is %s\n",p);


21         fd_etc_TZ = open("/etc/TZ",O_RDONLY, S_IRUSR | S_IWUSR | S_IXUSR);

22         if (fd_etc_TZ < 0) {

23                 printf("open /etc/TZ err, return\n");

24                 return -1;

25         }


27         ret = read(fd_etc_TZ, TZ_buf, TZ_max_len);

28         if (ret < 0) {

29                 printf("read /etc/TZ err, return\n");

30                 return -1;

31         }


33         p = getenv("TZ");

34         printf("this what b4 is %s\n",p);

35         system("date");

36         system("hwclock");


38         system("hwclock --systohc");

39         printf("after\n");

40         system("hwclock");


42 //      putenv("TZ=CST-8");

43         setenv("TZ", (const char*) TZ_buf, 1);


45         p = getenv("TZ");

46         printf("this what after is %s\n",p);

47         system("date");


49         return 0;

50 }





2011-07-25 08:38:34     RE: TZ can not be read ??

Manish Gajjaria (INDIA)

Message: 102659   


Using the putenv("TZ=CST-8") command, I am able to set the Timezone value to the desired timezone.


However, while doing the date command on serial terminal / telnet the value shown is always UTC time value; and also the file /etc/TZ is not updated with the timezone information mentioned under putenv().


I have enabled the Configuration options mentioned previously.


Also, across reboots the Timezone info is always reset to UTC; how can I make the Timezone value persist across reboots?




2011-07-25 23:21:24     RE: TZ can not be read ??

Aaron Wu (CHINA)

Message: 102660   


Did you use non-volatile file system? also please do NOT reply to ancient topic, create a new one please.