免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2567 | 回复: 5
打印 上一主题 下一主题

系统时间和输入法问题(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-29 21:50 |只看该作者 |倒序浏览
我的系统是F9, 但是从装好系统后就发现系统时间显示比正常快了8小时,时区设置也没有问题,而且时间直接在窗口下还改不了,只能在命令行下用命令改,但是一旦系统重启就又变回了快8小时了,这是~~~  有办法解决吗。
还有就是系统自带的有个巨蟒拼音的,不知道为何,每次打好拼音按空格输入的时候都会在字后面多输入一个空格,按数字选择要输入的字的时候也会在后面多带上一个数字,很不方便,这是输入法本身的问题还是其他的原因引起的。已

[ 本帖最后由 hebehe 于 2008-9-29 23:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-29 22:06 |只看该作者
要学会搜索哦
  1. 配置时区倒也简单,主要是两个文件:

  2. /etc/localtime

  3. /etc/timezone

  4. timezone这个文件是个文本,里面只需要写一行自己的时区就行,我们这里就是上海,Asia/Shanghai(谁知道为什么不是北京呢?)。 localtime这个文件的类型不清楚,里面就写了些timezone data,它可以从系统自带时区文件那里拷贝,位置在:/usr/share/zoneinfo

  5. 从这个目录下找到Shanghai拷贝到/etc下的localtime即可。有人说建个连接也可,这样还可以保证系统数据有变化时不必再管。

  6. 设定了时区,还要确定Linux的时间方案。Linux支持UTC时间,Coordinated Universal Time,也就是世界协调时,也就是本初子午线上的时间,它和以前的格林威治标准时(GMT)的区别似乎是它是由多个原子钟平均出来的。在 /etc/default/rcS这个文件中,设定了系统是否使用UTC,UTC=yes就是用。

  7. 计算机自己还有自己的时间,也就是硬件时间,hard clock,也就是存在BIOS里那个时间,关机也不会丢失。计算机启动时,就要读取这个时间。这个时间如果设定为UTC(GMT),也就是伦敦那地方的时间,就要在rcS文件中设定UTC=yes,反之则要设为no。

  8. 总之就是两种正确的设置:

  9. BIOS=本地时间,UTC=no

  10. BIOS=UTC时间,UTC=yes

  11. 一般来讲,BIOS里面都设定为当地时间,这是因为如果装双系统的话,Windows似乎不懂utc,就会出问题。这时UTC=no。

  12. 如果一切顺利,到这时,进入Linux之后显示的时间应该是正确的了。但不少人的机器,包括这回这台640m,仍旧不正确,而是比正确时间再往前跑了8小时。这里的问题出在Linux读取硬件时间上了。

  13. Linux读取这个硬件时间要用到hwclock这个命令:

  14. hwclock --show :显示硬件时间

  15. hwclock --systohc :将系统时间写入硬件

  16. hwclock --hctosys :将硬件时间写入系统时间

  17. 在出问题的时候,hwclock 这一组命令的运行通常是不能成功的,错误经常是这样的:

  18. select() to /dev/rtc to wait for clock tick timed out

  19. 也就是不能读取/dev/rtc,也就是硬件时间。这又是因为某些机器的BIOS处理方式和Linux的rtc内核模块之间出现了问题。

  20. Linux又有3个这类模块,rtc/genrtc/rtc_dev,似乎是一个比一个新,而debian通常自己用的是rtc这个老模块;但 Dell/ibm/acer等等厂商现在都可能使用新的BIOS,这种BIOS和这个rtc就可能不对付。如果出现了上面那个timeout的问题,有两种方法可以解决:

  21. 1, 给hwclock加参数,--directisa,也就是:

  22. hwclock --directisa --show

  23. 如果运行成功,说明这个办法可行。则把此参数添加为hwclock的缺省参数即可。在debian 4.0之后,可以直接在/etc/default/rcS中添加一行:

  24. HWCLOCKPARS="--directisa“

  25. 而在4.0以前,可能只能在hwclock启动脚本中添加,/etc/init.d/hwclock.sh,把里面的”/sbin/hwclock“ 全部替换为 ”/sbin/hwclock --directisa"。现在在debian sid中,这个脚本的第一行其实是HWCLOCKPARS=,也可以像rcS一样添加参数了。

  26. 2, 换用其他内核rtc模块,用如下方法测试哪个模块好用:

  27. # modprobe rtc

  28. # hwclock --show

  29. # rmmod rtc

  30. # modprobe genrtc

  31. # hwclock --show

  32. # rmmod genrtc

  33. # modprobe rtc_dev

  34. # hwclock --show

  35. # rmmod rtc_dev

  36. 没有显示time out的就是好用的了,然后可以在blacklist中阻止不好用的,在modules里面加上好用的那个。

  37. 用完这两个方法,hwclock应该能直接工作了,也就是可以读取硬件时间了。再配上utc设置正确,重启之后时间就是对的了。

  38. 为了让BIOS时间更准确,除了可以找个精确的时间源,比如CDMA手机或是GPS,靠自己的手指来精确设定BIOS时间之外,还可以用hwclock把准确的时间写入BIOS。前一种方法细心点可以做到几秒误差,而后一种怎么也在1秒以下了。

  39. 安装ntpdate这个包,它可以从时间服务器上读取到正确的时间,精度还是很高的:

  40. aptitude install ntpdate

  41. ntpdate pool.ntp.org

  42. 此时系统时间就已经是ntp的时间了,相当精确,把它写入硬件:

  43. hwclock --systohc

  44. 这样BIOS时间也就很准了。以后开机没网络,没办法运行ntpdate的时候也都是准的。

复制代码

论坛徽章:
0
3 [报告]
发表于 2008-09-29 22:10 |只看该作者
输入法的问题解决了,原来是因为没选择键盘,在输入法设置里把键盘设置为英语(美国)的就可以了。不过感觉这输入法反应好慢啊。

[ 本帖最后由 hebehe 于 2008-9-29 22:59 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-09-29 22:58 |只看该作者
谢谢二楼的,我用的是F9的系统,除了能找到一个localtime和dev下的rtc其他的一个都没找到,而且用最后提到的安装ntpdate后ntpdate pool.ntp.org,系统时间正常了,但是最后写入硬件后,BIOS时间慢了8小时了,重启后又回到了原点了,我的主板是映泰的U8799。

论坛徽章:
0
5 [报告]
发表于 2008-09-29 23:39 |只看该作者
cp /etc/localtime /etc/localtime.bak
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate pool.ntp.org
hwclock --systohc

论坛徽章:
0
6 [报告]
发表于 2008-09-29 23:58 |只看该作者
重启后我看了下BIOS时间变慢了8小时,改为正常时间后进系统,时间正常了,实在是太感谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP