庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>编程开发>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Linux 编程之kernel 2.6的测试

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   


本文是基于kernel 2.6.0-test5的测试报告,描述了升级过程、软硬件的评测、系统性能等。

一. 编译前准备

下载kernel,建议在www.kernel.org官方网站下载,小网站上的kernel的代码,有可能被别有居心的人改过

因为2.6内核模块装入器有所改变,所以我们需要编译modutils。否则在make modules时,会有许多“unresolved symbol”的错误。我用的是0.9.14的版本。步骤如下:

#tar jxvf module-init-tools-0.9.14-pre1.tar.bz2
#cd module-init-tools-0.9.14-pre1
#./configure
#make
#make moveold
#make install
#./generate-modprobe.conf /etc/modprobe.conf

其他的相关工具最低要求相对于2.4有所提升,一般发行版(如redhat、debian等)都能满足。具体参考Document/Changes,如下:

o Gnu C 2.95.3
o Gnu make 3.78
o binutils 2.12
o util-linux 2.10o
o module-init-tools 0.9.9
o e2fsprogs 1.29
o jfsutils 1.1.3
o reiserfsprogs 3.6.3
o xfsprogs 2.1.0
o pcmcia-cs 3.1.21
o quota-tools 3.09
o PPP 2.4.0
o isdn4k-utils 3.1pre1
o nfs-utils 1.0.5
o procps 2.0.9
o oprofile 0.5.3


二. 编译kernel

新的内核在2.4的基础上有所改进,速度更快。同时它增加了一些make目标选项,如下:
make gconfig、allyesconfig、allnoconfig、allmodconfig配置工具。Make现在是首选命令,如果没有目标,它会编译arch-zimage和modules。
“make –jN”是首选的并行make
“make xx.o”可以指定编译某个文件。Make path/指定编译某个目录及其下面的文件。这对驱动开发或内核人员来说,是一个好消息,在我们更改了kernel中的一个文件后,我们可以直接编译这个文件。
“make dep”已经不需要
“make help”帮助

我是步骤如下:

#make menuconfig
#make bzImage && make modules && make modules_install && make install

需要说明的是,make install会自动将相关文件安装到/boot目录下,如bzImage 、vmlinux、System.map,同时生成initrd文件,并在grub.conf中增加相应启动项,所以不需要手工修改grub(我没用lilo测试,如果你有兴趣,可以试试,然后把结果发给我)。Reboot,新的内核就可以启动了。
我在编译过程中,默认情况下,有几个无关紧要的模块不能编译通过,将他们去掉了。


三. 体验2.6内核

新内核目前在以下几方面有所改变:

改进包括改善对硬件构架的支持。在新版内核中增加对最新AMD 64位Opteron CPU以及PowerPC 64位CPU的支持;
更好地支持多处理器系统,将支持16个或以上的CPU、更好地支持嵌入式设备、对点击鼠标和键盘的反应速度更快和彻底改善了块设备软件插件等。
使用新的new 0(1) 调度程序;
使用真正的异步I/O以改善企业应用;
提高了文件系统的性能;
改进了线程功能,可以支持更多的线程;
改进了对宽带联网的支持等。

就我使用的来看,鼠标和键盘明显好用,鼠标滑动更流畅。打开文件,响应也加快。其他的无法感觉到。

新内核在结构和API上有所改变,详细请参考
http://www.codemonkey.org.uk/post-halloween-2.5.txt

各发行版的最近版本上带的软件基本上都能运行。需要注意的一些问题如下:

1.内核编译成功,重起,解压kernel后,屏幕一片黑
解决办法:确定你的.config文件有CONFIG_INPUT=y,CONFIG_VT=y,,CONFIG_VGA_CONSOLE=y 和 CONFIG_VT_CONSOLE=y。许多人没有将CONFIG_VT=y选中。

2.RPM工具将不能使用,会有如下错误:
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
warning: initscripts-7.28-1.i386.rpm: V3 DSA signature: NOKEY, key ID 9d6b4012
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages database in /var/lib/rpm
解决办法:
#export LD_ASSUME_KERNEL=2.2.5。我将其加到/etc/bashrc中,这样以后不需要export了。

3.模块不能载入,需要更新modutils,参考上面的“编译前准备”

4.2.6内核对键盘等设备提高了灵活的接口,如果你的键盘或鼠标等输入设备不能工作,试着选中下面的选项:
--- Input I/O drivers
< > Serial i/o support
< > i8042 PC Keyboard controller
[ ] Keyboards
[ ] Mice

(记得选中keyboard/mouse里的列表)

5.2.4及以前的内核,打补丁的方式为:
gzip -cd patchXX.gz | patch -p0
在2.6里,linux在diffs里增加了另外的路径元素,所以推荐的方式为用-p1

6.如果想使用Hotplug需要,作如下改动:将/etc/rc.sysinit中的所有/proc/ksyms改为/proc/kallsyms。

7.同时usb的模块名字有改变,这将影响到/etc/modules.conf、/etc/rc.sysinit。如果用到usb的设备,只要将其改动成相应的就行。因为我没有usb的设备,所以没有做其测试。

上一篇:Linux 2.6 内核的精彩世界    下一篇:编译linux 2.6.0-test2 内核(中文版)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿