当前位置: 技术问答>linux和unix
我想升级到2.60版本内核,直接下载编译能用吗?
来源: 互联网 发布时间:2015-06-05
本文导语: 直接下载linux-2.6.10.tar.gz 然后解开,make menuconfig这样就可以了吗 如果从新的内核启动,会不会遇到一些库比如glib版本不对的 问题?? 我原来的是redhat 9 内核版本是2.4.20 | 第一部分,准备 ...
直接下载linux-2.6.10.tar.gz
然后解开,make menuconfig这样就可以了吗
如果从新的内核启动,会不会遇到一些库比如glib版本不对的
问题??
我原来的是redhat 9 内核版本是2.4.20
然后解开,make menuconfig这样就可以了吗
如果从新的内核启动,会不会遇到一些库比如glib版本不对的
问题??
我原来的是redhat 9 内核版本是2.4.20
|
第一部分,准备
要使用新的内核首先当然要取得新内核的源码,内核的官方网站是http://www.kernel.org 在上面可以得到最新的内核。2.6的更新是相当快的,你可以在命令行下使用finger @kernel.org命令来快速得到当前最新的内核列表。在这篇文章中我将以2.6.0为准。
下载了内核源码之后,我们要使用tar jxvf linux-2.6.0.tar.bz2来提取源码,如果你下载的是以tgz结尾的压缩包就使用zxvf参数来解压。我强烈建议你不要使用 /usr/src/linux这个目录来存放源码,因为使用这个目录你需要手工在/usr/include目录下作一些符号链接,这实在不是一个好主意。所以我建议你为源码单独建一个目录,这里我们的目录是/src/linux-2.6.0。
要编译与正常运行新的内核你需要升级一些软件包,这些信息在源码目录下的Documentation/Changes文件中,请根据你的实际情况选择升级。这其中我强调一下你应该升级Module-Init-Tools,不要被你当前系统中depmod -V输出的版本号迷惑(在RH9中它的输出是2.4.22,感觉好象要比Changes中所要求的要高,实际上它们使用不同的版本规则)。新的 Module-Init-Tools在下面的网址中取得:http: //www.kernel.org/pub/linux/kernel/people/rusty/modules/
我使用的是0.9.14。如果你下载的是源码使用如下步骤进行编译
./configure --prefix=/
make moveold
#这一步会将你以前的insmod, modprobe, rmmod和 lsmod
#重命名为insmod.old, modprobe.old, rmmod.old lsmod.old
make
make install
然后使用 ./generate-modprobe.conf /etc/modprobe.conf (将原来的/etc/modules.conf转换到/etc/modprobe.conf )
如果你使用devfs系统你还需要复制modprobe.devfs 到/etc目录下。
当你升级完相关软件包之后,准备工作就算完成了,下面我们将进入到编译阶段。
第二部分 编译
2.6的build系统与2.4有很大的不同,实际上是更加简单与方便了。第一步我们要进入源码目录
cd /src/linux-2.6.0
make mrproper
make menuconfig (基于文本选单的配置界面)
在闪过几行字之后就出现了如图的界面
在界面的上部是配置工作的使用说明,使用箭头键在各选项间移动,使用enter进入下一层菜单,每个选项上的高亮字母是键盘快捷方式,使用它可以快速的到达你想设置的菜单项上。在括号中按y将这个项目编译进内核中,按M编译为模块,按N为不选择。按?将打印这个选项的帮助信息,按esc将返回到上层菜单。 GUI工具的基本概念也与之类似我们就不详细讨论了。在后面我将主要使用menuconfig来设置各个选项,选项的次序以它为准,其它工具中各选项也基本与之对应。切记把声卡的模块编译进内核不然无法发声!!
要使用新的内核首先当然要取得新内核的源码,内核的官方网站是http://www.kernel.org 在上面可以得到最新的内核。2.6的更新是相当快的,你可以在命令行下使用finger @kernel.org命令来快速得到当前最新的内核列表。在这篇文章中我将以2.6.0为准。
下载了内核源码之后,我们要使用tar jxvf linux-2.6.0.tar.bz2来提取源码,如果你下载的是以tgz结尾的压缩包就使用zxvf参数来解压。我强烈建议你不要使用 /usr/src/linux这个目录来存放源码,因为使用这个目录你需要手工在/usr/include目录下作一些符号链接,这实在不是一个好主意。所以我建议你为源码单独建一个目录,这里我们的目录是/src/linux-2.6.0。
要编译与正常运行新的内核你需要升级一些软件包,这些信息在源码目录下的Documentation/Changes文件中,请根据你的实际情况选择升级。这其中我强调一下你应该升级Module-Init-Tools,不要被你当前系统中depmod -V输出的版本号迷惑(在RH9中它的输出是2.4.22,感觉好象要比Changes中所要求的要高,实际上它们使用不同的版本规则)。新的 Module-Init-Tools在下面的网址中取得:http: //www.kernel.org/pub/linux/kernel/people/rusty/modules/
我使用的是0.9.14。如果你下载的是源码使用如下步骤进行编译
./configure --prefix=/
make moveold
#这一步会将你以前的insmod, modprobe, rmmod和 lsmod
#重命名为insmod.old, modprobe.old, rmmod.old lsmod.old
make
make install
然后使用 ./generate-modprobe.conf /etc/modprobe.conf (将原来的/etc/modules.conf转换到/etc/modprobe.conf )
如果你使用devfs系统你还需要复制modprobe.devfs 到/etc目录下。
当你升级完相关软件包之后,准备工作就算完成了,下面我们将进入到编译阶段。
第二部分 编译
2.6的build系统与2.4有很大的不同,实际上是更加简单与方便了。第一步我们要进入源码目录
cd /src/linux-2.6.0
make mrproper
make menuconfig (基于文本选单的配置界面)
在闪过几行字之后就出现了如图的界面
在界面的上部是配置工作的使用说明,使用箭头键在各选项间移动,使用enter进入下一层菜单,每个选项上的高亮字母是键盘快捷方式,使用它可以快速的到达你想设置的菜单项上。在括号中按y将这个项目编译进内核中,按M编译为模块,按N为不选择。按?将打印这个选项的帮助信息,按esc将返回到上层菜单。 GUI工具的基本概念也与之类似我们就不详细讨论了。在后面我将主要使用menuconfig来设置各个选项,选项的次序以它为准,其它工具中各选项也基本与之对应。切记把声卡的模块编译进内核不然无法发声!!