关于 i8253 count too high resetting..【转载】

i8253是计算机内的一个计时器芯片,当使用 虚拟机或是 某些笔记本安装linux的时候, 系统的时间会不定期的产生一些误差,包括linux在内的很多 系统都可以进行纠正这种时间上的混乱。Linux的2.4.20核心以及更高版本的核心在处理这种时间上的混乱时会同时发送一条Debug信息,这条信息 就是“i8253 count too high"

解决它可以有两种途径:1.关闭提示 2.消除误差
1.关闭提示
开机到grub处,按下e键,选择kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ ,在末尾处“空格+single”,然后回车退出,再按b键引导进入单用户模式,在单用户模式下输入chkconfig pcmcia off( 关闭pcmcia服务),然后reboot重启就可以了
2.消除误差
Linux系统本身就已经具备了消除这种误差的功能,因为i8253 count too hight,reseting,本身就是一个Debug的回显信息,系统是如何消除这种误差的呢?虚拟的什么工作原理导致了这种误差的出现呢??难道还要研究一下虚拟机的内部结构?

I 'solved' the problem by removing the message from the linux kernel source
and
compiling it again then installing the new kernel. No more messages!

You *NEED* to have the kernel source on your virtual machine to do this.

On 2.4.x kernel sources (assuming your linux sources is at /usr/src/linux)
the
file that needs editing is time.c found like this...
root@dana2:/root$ cd /usr/src/
root@myserver:/usr/src$ grep "i8253 count too high! resetting.." *

which outputs:

grep: Documentation: Is a directory
grep: arch: Is a directory
grep: crypto: Is a directory
grep: drivers: Is a directory
grep: fs: Is a directory
grep: include: Is a directory
grep: init: Is a directory
grep: ipc: Is a directory
grep: kernel: Is a directory
grep: lib: Is a directory
grep: mm: Is a directory
grep: net: Is a directory
grep: scripts: Is a directory
arch/i386/kernel/time.c: "i8253 count too
high! resetting../n");

Go edit this time.c file and it is the two lines 690/691 (for 2.4.27
anyway). At comment
markers around the two lines then save and build a new kernel and install.

time.c lines 690 & 691
-------------------------------
/* printk(KERN_WARNING
"i8253 count too high! resetting../n"); */

The line numbers may or may not be the same for other 2.4.xx kernels but it
will be the
same file.

Regards

...Petar



"Ben Armstrong [MSFT]" < benarm@online.microsoft.com> wrote in message
news:uCqV10exEHA.3096@tk2msftngp13.phx.gbl...
> The i8253 chip is part of the timing mechanism inside of a computer -
> now - it happens that inside of virtual machines (and on a number of
> physical laptops) time will go backwards by small amounts every now and
> then. Most operating systems have code to support such perturbations -
> including Linux. But for some reason in kernels 2.4.20 and later - they
> decided to print out a debug message whenever this happens. This has
> caused a lot of confusion for laptop users - but this message can be
> ignored.
> --
> Cheers,
> Benjamin Armstrong
> ===============================
> Virtual machine Program Manager
>
> This posting is provided "AS IS" with no warranties, and confers no
rights.[vbcol=seagreen]
> You assume all risk for your use.
>
> Chris wrote:
大致意思是说:
对于部分计算机(物理的)和虚拟机,其i8253芯片(一块可编程计数器)会不断的 复位 『回到之前的设置』 (go backwards),这个故障是无关紧要的,可以通过重新编译内核来解决。
文中以2.4.27的内核为例,通过修改源代码的time.c(arch/i386/kernel/time.c)文件的
690/691行(不同版本的位置不同,但文件相同)解决,文中将
printk(KERN_WARNING"i8253 count too high! resetting../n");
一句加上了注释,解决了这个问题,(当然要重新编译一下内核).
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值