手动编译安装内核经验上
大家有可能看过前面我发的一遍内核编译经验,这次是手动的,由于文章太长,我把它分文上中下三部分……获得一份完整的内核源代码
到www.kernel.org上下载一份你想要的内核,现在最新的稳定版内核是2.6.11.9。http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_01.png.jpg
图1 在kernel.org上下载最新的原代码
配置前的准备
把下载下来的源码包复制到任意一个目录下,在这里我们把它复制到~/kernelsource/中(这样可以先暂时避免使用root账户)。之后进入~/kernelsource目录,解压缩:tar -jxvf linux-2.6.11.9.tar.bz2之后我们会得到一个目录linux-2.6.11.9,里面就放着要编译的内核源代码。进入该目录。cd ~/kernelsource/linux-2.6.11.9在这里值得说明的是,现在很多书籍上都说一定要把内核解压缩到/usr/src中,之后还要在/usr/src中创建一个名为linux的符号链接指向它,实际上这么做是不必要的,一是编译内核的时候不一定非要在/usr/src中进行,在哪里都是可以的;二是/usr/src/linux这个符号链接指向的源码树通常会和你系统上的C库有所关联,所以出于这个因素,你也不应该改变它。
配置内核
这一步是至关重要的,自己编译内核的目的就是为了量身定做一个适应自己的CPU和硬件设备的内核,不过在我们进一步深入之前,我想先提一些关于使用内核配置工具的事情,我们有5种方式来配置内核:(下面的每种配置方式配个图说明一下)1. make config这是一个基于控制台的互动文本程序,系统一个个的向你提问,你一个个的回答,且不能反悔,估计一般人坚持不到最后就退出了,不推荐。2. make menuconfig这是一个文本模式、菜单驱动的配置程序,有简单的图形界面,配置很方便,是我个人比较比较喜欢的配置方法http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_02.png.jpg
图2 menuconfig 上面这两种方法的优点是不需要X的支持,当然如果你比较喜欢GUI环境的话,下面的两种方法可以满足你的需求:3. make xconfig这是一个用qt写的配置程序,在GUI下配置内核,感觉很直观和清晰。建议初学者使用。http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_03.png.jpg图3 xconfig4. make gconfig如果你更喜欢gtk的配置风格,就用它吧。http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_04.png.jpg
图4 gconfig最后,说两种懒办法:5. make defconfig这是根据你的机器的类型对内核进行默认的配置,免去了你配置内核的烦恼,有人说这是Linus本人在x86机器上的默认配置,但我不敢肯定。而且经过很多人的测试,这个东西几乎不会配置出一个功能比较完善的内核,尤其是对于非Intel CPU的识别、U盘的支持、NTFS分区的支持以及ADSL的使用等问题做的都不是很让人满意。所以,不推荐。6. make oldconfig 这是一个非互动性的脚本,用你当前内核的设置作为配置标准,重新编译新内核。如果你只是为了简单升级的话,是个不错的选择。上面的六种方法,任选一种,就可以打开内核配置界面了。在这里,我用的是make xconfig。下面,就进入真正的内核配置部分。当你打开xconfig面对一系列的配置选项的时候,你并不用着急,很多配置都是已经默认设置好了的,而我们要做的就是去掉那些自己不想要的,修改那些不符合我们意愿的,仅此而已。因为这些默认的选项时面对大多数用户的,所以有些可能不是很符合你自己的情况,我们只要进行修改就好了。作为一个以桌面应用为主要目的的整个内核的配置过程可以分成几个大部分:代码成熟度等级、模块支持、硬件设备以及通用系统选项。下面我们就来仔细看一下每一个部分。在此要说明的是,由于有些内核的配置是和系统硬件相关的,所以这里我只能用自己的计算机配置举个例子,具体的大家要看一下配置工具提供的帮助。1. 代码成熟度选项这个选项用来告诉配置程序是否显示那些还处于试验阶段的内核特性,选定该选项,则显示,反之则隐藏。对于桌面应用的用户来说,不妨打开它,试验一些内核新特性。http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_05.png.jpg(图5
2 模块的支持模块的设计是Linux的一大特色,它可以实现内核在运行时的功能扩展,这对于减少内核尺寸和我们将来学习内核编程都是非常有帮助的。所以,一定要选上下面的部分。http://blog.csdn.net/images/blog_csdn_net/csdn_document/133802/o_06.png.jpg
图6 模块的支持在这里说明一下,凡是配置工具中可以选择成圆点的项目,就是可以被编译成模块的部分,如果被选择成对钩,则是要编译进内核的部分,下同。
http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 crazylinux的微博 好贴占沙发~~ 擦,仔细看了一下,are you sure about:现在最新的稳定版内核是2.6.11.9? wajmjjj 发表于 2011-11-10 15:51 static/image/common/back.gif
擦,仔细看了一下,are you sure about:?
最新版内核是3.0.8 {:5_99:}加个精华弄得偶一头晕,看来今天上班太累了… 现在水平还玩不了,不过先顶上! 进入内核!!! 准备 编译 正在 下载 。。都内核了,很好,很强大{:5_109:} $ make gconfig
HOSTCCscripts/basic/fixdep
*
* Unable to find the GTK+ installation. Please make sure that
* the GTK+ 2.0 development package is correctly installed...
* You need gtk+-2.0, glib-2.0 and libglade-2.0.
*
HOSTCCscripts/kconfig/conf.o
make: *** 没有规则可以创建“scripts/kconfig/gconf.o”需要的目标“scripts/kconfig/.tmp_gtkcheck”。 停止。
make: *** 错误 2
一个GTK+-2.0的依赖关系那么庞大 真操蛋啊两个包互相依赖 在哪里踢皮球 怎么装 贴主是做Linux的啊?要多多学习呀~! 不错哦,要好好学习~! 很好很强大,值得深入学习学习了!! 碉堡了 Linux新手路过
我要向你学习 不错呦,顶一个。 Be_envious 发表于 2011-11-22 10:46 static/image/common/back.gif
真操蛋啊两个包互相依赖 在哪里踢皮球 怎么装
那就两个一起装
页:
[1]