之前已经知道BIOS时间有两种表现形式:
UTC:0时区时间
CST:localtime 8时区 即北京时间
而通过hwclock --debug可以查看当前硬件时间的表现形式。之前的虚机中hwclock --debug命令是可以正常的,但是最近的一个虚机中报错了,具体错误信息如下:
通过上网搜索资料,了解到是系统内部模块出现问题导致,所以下载了util-linux-ng-2.18.tar.gz,进行了编译安装。具体步骤为
#tar -xzvf util-linux-ng-2.18.tar.gz
#cd util-linux-ng-2.18
#./configure
#make
#make install
#cd hwclock
#./hwclock --debug
执行到此的时候,hwclock --debug命令还是报错了。
上网进行了搜索,找到原因,是因为在修改内核配置的时候,没有对Device Drivers -> Real Time Clock 进行勾选。于是,我尝试下载内核源码进行编译内核的操作。
首先是到www.kernel.cn上下载对应版本的linux内核源码,我下载的是linux-2.6.32.6.tar.gz。
#cp linux-2.6.32.6.tar.gz /usr/src
#tar -xzvf linux-2.6.32.6.tar.gz
#cd linux-2.6.32.6
#make clean
#make mrproper
#make menuconfig
在执行make menuconfig命令的时候,出现了错误:
这是因为我没有装ncurses依赖包。所以去找到ncurses-5.6.tar.gz,下载下来。
#tar -xzvf ncurses-5.6.tar.gz
#./configure --without-cxx-binding
要加--without-cxx-binding ,我第一次没加,就报错了。
然后,继续按照ncurses操作
#make
#make install
这样就顺利安装了ncurses,在执行make menuconfig命令的时候也不会报错了,找到了Device Drivers -> Real Time Clock,并进行了勾选。然后保存设置退出。
下一步是执行 #make
#make modules_install install
执行结束之后,去/etc/grub.conf查看其内容:
其中有我编译的内核2.6.32.6,然后重启启动。
在grub选择时,按上下键,选择相应的内核启动。
这样勾选了Device Drivers -> Real Time Clock,编译安装的内核就可以顺利执行hwclock --debug操作了,它可以找到rtc设备来做为接口与硬件交互,取到硬件时间相关内容。
第一次写微博。希望下一次写更顺手些。