嵌入式Linux系统如何设置TimeZone

***************************************************************************************************************************

作者:EasyWave                                               时间:2014.06.08

类别:Linux内核-TimeZone设置                  声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

一:什么是Linux系统的时钟

Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。Linux将时钟分为系统时钟(SystemClock)和硬件(Real TimeClock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟。既然Linux有两个时钟系统,那么大家所使用的Linux默认使用哪种时钟系统呢?会不回出现两种系统时钟冲突的情况呢?这些疑问和担心不无道理。首先,Linux并没有默认哪个时钟系统。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

  从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但Linux中的所有命令(包括函数)都是采用的系统时钟设置。不仅如此,系统时钟和硬件时钟还可以采用异步方式,即系统时间和硬件时间可以不同。这样做的好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的操作。

二:如何设置TimeZone

首先需要查看嵌入式系统地ROOTFS中是否已经包含了zoneinfo这个文件夹,如果没有的话,可以到Ubuntu10.04的系统中(任何一个版本的Ubuntu中都有的)将/usr/share/zoneinfo整个zoneinfo文件夹复制到ROOTFS的/usr/share下,这样嵌入式系统中就有了timezone,如下所示:

注意,这个还只是第一步,这个只能说明这个系统中已经包含了有这个timezone的基本的东西而已。因为我们的时区是在中国,因此选择亚洲的上海。首先要找到上海这个文件,如下所示:

Asia文件夹

看到Shanghai,就说明是支持的。那么找到之后,还需要在ROOTFS的etc目录下设置一个链接,如下所示:

之后我们可以在ROOTFS的etc目录下看到localtime这个链接文件,如下所示:

鼠标右键点击属性可以查看到如下的信息,链接目标:../usr/share/zoneinfo/Asia/Shanghai,如下所示:

如果只是做到这几步的话,在嵌入式的Linux系统中,还无法正确的设置timezone,必须还需要设置一个环境变量才可以真正的实现timezone。就是在etc/profile文件中加入环境变量TZ,如下所示:

一定要记得,需要这样加上TZ的环境变量,timezone才会起作用的哦。这个是我在工作中遇到的一个问题,我是这样解决的,不知道的朋友可以参考下我的这篇博文测试下看看哦......

嵌入式Linux系统如何设置TimeZone

时间: 2024-08-08 13:57:54

嵌入式Linux系统如何设置TimeZone的相关文章

嵌入式 Linux系统编程(六)——系统信息

嵌入式 Linux系统编程(六)--系统信息 一.时间 Linux系统下常用的时间类型:time_t.struct tm.struct timeval.struct timespec. 1.time_t类型时间 time_t实际是一个长整型.其值表示为从UTC(coordinated universal time)时间1970年1月1日00时00分00秒(也称为Linux系统的Epoch时间)到当前时刻的秒数.由于time_t类型长度的限制,它所表示的时间不能晚于2038年1月19日03时14分

从开始到结束,手把手教你使用busybox构建类嵌入式Linux系统

概述: 本篇博客是一个自制类嵌入式Linux系统的制作手册,内容涵盖使用宿主机通过busybox实 现制作类嵌入式Linu系统的详细过程,一步一步教你如何制作属于你自己的linux系统,同时 帮助你更加清楚的了解linux系统的组成结构,本篇博客需要读者对linux系统的启动流程及ssh 远程连接有一定的了解,这部分很多博客都有介绍,这里就不说明了,不了解的读者可以先去 看看这方面的博客. 制作的整个过程比较漫长(主要是编译源码需要耗费大量时间,因此,在编译内核时,记 得另起虚拟终端先完成其它操

嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】

转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的API,方便从linux内核中获取或设置usb设备的信息.lsusb这个用户空间程序,也正是依赖libusb提供的接口API来实现对系统当前的usb总线的扫描,从而显示当前系统存在的usb设备的. 在嵌入式linux中,输入lsusb命名,出现unable to initialize libusb: -

嵌入式 Linux系统编程(一)——文件IO

嵌入式 Linux系统编程(一)--文件IO 一.文件IO概念 linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作.不带缓存的属于直接调用系统调用(system call)的方式,高效完成文件输入输出.它以文件标识符(整型)作为文件唯一性的判断依据.这种操作不是ASCI标准的,与系统有关,移植有一定的问题.而带缓存的是在不带缓存的基础之上封装了一层,维护了一个输入输出缓冲区,使之能跨OS,成为ASCI标准,称为标准IO库.不带缓存的方式频繁进行用户态 和内核

嵌入式 Linux系统编程(二)——文件描述符控制函数fcntl

嵌入式 Linux系统编程(二)--文件描述符控制函数fcntl 由于fcntl函数实在过于灵活和复杂,本文将fcntl函数从文件IO中单独列出来,便于详细解读.函数原型如下: #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); fcntl函数用于控制操作文件描述符fd,对文件描述符的控制操作由cmd控制命令来控制,arg参数为可选参数,是否需要arg参数取决于控制命令

嵌入式 Linux系统编程(三)——标准IO库

嵌入式 Linux系统编程(三)--标准IO库 与文件IO函数相类似,标准IO库中提供的是fopen.fclose.fread.fwrite等面向流对象的IO函数,这些函数在实现时本身就要调用linux的文件IO这些系统调用. 一.标准IO库函数的缓冲机制 由于IO设备的访问速度与CPU的速度相差好几个数量级,为了协调IO设备与CPU的速度的不匹配,对于块设备,内核使用了页高速缓存,即数据会先被拷贝到操作系统内核的页缓存区中,然后才会从操作系统内核的缓存区拷贝到应用程序的地址空间. 当应用程序尝

嵌入式 Linux系统编程(四)——文件属性

嵌入式 Linux系统编程(四)--文件属性 一.文件属性概述 Linux 文件的属性主要包括:文件的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.文件属性示例如下: 多个文件属性查看: ls -lih 1341714 -rw-r--r-- 1 root root 2.5K May 28 10:24 bit_marco.c 1341718 -rw-r--r-- 1 root root 2.1K May 28 09:08 bit_marco.c~ 1341706

嵌入式 Linux系统编程(五)——目录文件函数

嵌入式 Linux系统编程(五)--目录文件函数 Linux中目录也是文件,目录操作函数为标准IO库函数.主要函数如下: #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd); 成功返回一个指向目录流的指针,失败返回NULL,并且设置errno全局变量. #include <dirent.h> struct dirent *rea

(转)在嵌入式Linux系统(OK6410)中移植Boa 服务器

OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf boa-0.94.13.tar.gz 3. 进入解压后的文件夹 boa-0.94.13内部的 src文件夹,对源文件进行如下修改 ================================================= 由于arm-linux-gcc 编译器版本过高,对语法的支持有一些改变,所以需要