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"); 一句加上了注释,解决了这个问题,(当然要重新编译一下内核). |