编译安装新内核
步骤:
1、下载到新的版本的内核 内核官方网站,在这里有各种版本的内核!直到现在内核的最新版本为3.2.7
2、配置新的内核,选定要使用的功能或模块,前面说到Linux采用的是单内核的设计模式,所以有些驱动或功能可以直接编译进内核,有些则可以编译为模块,而这些就是在这里进行配置的。2.1 解压到特定目录下:/usr/src/#tar xvf linux-2.6.28.10.tar.gz -C /usr/src/#cd /usr/src/这里我要编译的内核版本是2.6.28.102.2 这里还要将解压出来的目录linux-2.6.28.10创建一个linux软链接,一是约定俗成,二是方便以后我们以后在编译新内核,当然这里如果不想创建链接,也可以将其重命名为linux法1:#ln -sv linux-2.6.28.10 linux ---为linux-2.6.28.10创建软连接linux 法2:#mv linux-2.6.28.10 linux ---将linux-2.6.28.10重命名为linux2.3 配置编译环境#yum grouplist ---查看Development Libraries,Development Tools这两个包组是否都安装,如果Development Libraries已经安装,Development Tools并未安装,但是此时Development Tools大部分都已经安装,因为Development Libraries安装时依赖于Development Tools,但如果Development Tools已经安装,Development Libraries并未安装,这时则需要安装Development Libraries #yum groupinstall nogpgcheck "Development Libraries" -y ---不验证签名信息直接回复y进行安装
2.4 配置内核(驱动、功能、支持...)#cd /usr/src/linux法1:(make menuconfig ---打开配置选项菜单)
当打开时这里都是一些默认的选项,并不是完全根据我们的计算机的硬件配置所进行的配置,而这里大概有3000多项,稍微有一点选择错误,就有可能导致我们的内核编译失败,所以我们可以使用redhat之前给我们的预设的配置文件".config"#cp /boot/config-2.6.18-164.el5 ./.config ---将之前的内核配置文件config-2.6.18-164.el5复制到当前目录下并且重命名为.config#make menuconfig ---在Redhat给我们预设的配置基础上在做稍微的修改,是不是方便多了注:在menuconfig中[]:表示不启用此项 [*]:表示直接编译进内核 [M]:表示编译为模块法2:(#make xconfig ---打开图形界面进行选择配置)注:使用xconfig需要安装KDE Software Development,但是安装依赖于X Software Development,所以使用#yum groupinstall nogpgcheck "KDE Software Development" -y #make xconfig法3:(#make gconfig)注:使用gconfig需要安装GNOME Software Development,所以先#yum groupinstall nogpgcheck "GNOME Software Development" -y #make gconfig法4:
(#make config) ---这个将会遍历所有的配置选项,3000多项,你懂的,遍历下来很痛苦的,呵呵。 所以我们一般常用的就是法1、法2、法3
3、编译新内核 编译新内核这个过程是很漫长的,短则30分钟长则1个半小时,时间的长短,取决于所要编译的内核模块多少和机器的性能。
这里一般我们经常都是远程登录到Linux上,所以当我们这在编译内核时突然远程链接断开了,那么就前功尽弃了,还得重新来过,所以为了防止这种情况发生,我们使用screen
#which screen 如果存在screen
#screen ---进入屏幕 #make ---编译 如果不存在screen
#yum install screen #screen ---进入屏幕 #make ---编译 注:Ctrl+a,d 离开屏幕
#screen -ls ---查看打开的screen列表,每一个screen都有一个screenid #screen -r screenid ---打开指定的screen4、安装#make modules_install ---安装模块 #make install 扩展:一、在已经编译过的内核源码基础重新编译:#make clean ---清理之前编译的选项 #make mrproper 上面的两个命令执行后.config会被删除
三、仅编译某个目录中的源代码:#make SUBDIR=arch/四、仅编译某个目录中的模块#makke M=drivers/net/ 本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/790859,如需转载请自行联系原作者