前言
其实应该在安装完 Linux 之后便开始编译核心,因为每个人所需要的核心都并不相同!举个例子来说,你安装了一个很新的网路卡,但是你的核心并不支援这一种网路卡,那你只好下载比较新的核心来编译,才能支援你的网路卡!另外,由于太大的核心对于整体的执行效能会比较慢,所以适当的核心对于你的 Linux 系统之执行效率也是有帮助的!因此,一般的玩家通常在安装完了 Linux 之后,便开始进行核心的重新编译工作!
在study-area 也曾提到:Linux的灵魂所在╋其实就是其稳定的核心设计。我们可以将之看成是一个架于程式和硬体之间的界面操作系统╋离开来核心╋什么东西都用不了。而核心的编译好坏╋也会影响到系统的效能╋甚至╋一些系统功能(如 ip networking)╋就必须要编进核心才行。
不过,由于核心的更新速度太快了,如果你一直执着于最新的核心编译,那肯定会吃不消,所以通常我们的建议就是,除非你有新的需求,否则可以不用常常去更新核心的!
下载新核心
?核心的版本:
要如何知道你的核心版本呢?基本上,你在开机进入 Linux 的 login 画面时, Redhat 应该就已经告诉你这个主机的核心版本了,不过,如果你要知道你的核心版本的话,可以输入:
[root@tsai /root]# uname -r 2.2.12-20
上面显示我们这个 Linux 核心是 2.2.12-20 这个版本。
好啦,那要选择哪一个核心版本呢?目前你可以看到的核心版本主要有 2.2.X, 2.3.X 及 2.4.X,哪一个才适合你呢?我想,既然我们需要的是稳定版的 Linux ,那自然选择越稳定的越好?,那基本上,所有 2.2.X 及 2.4.X 的都是属于稳定型的核心版本,至于 2.3.X 则是适合开发 Linux 软体的核心!另外,2.4.X并不是比2.2.X还新的意思,基本上,所有 2.2.X 及 2.3.X 与 2.4.X 都是同时开发的核心,只是因为其支援的程度或者是一些功能方面不完全相同,所以才会分成这些版本!而目前我们所想要使用的应该是 2.2.X 这个版本的系列核心,截至目前为止,这一版的最新核心应该是 2.2.19 这一个,当然,你也可以下载其他的核心!
?核心下载地点:
Linux 核心的下载地点可以在底下的地点找到最新的,当然也可以在台湾相关的 FTP 站找到你要的核心。
ohttp://www.kernel.org/
o交大资科
o教育部
另外,你也可以在我这里下载 linux-2.2.19.tar.gz 这个核心版本。基本上,最好是在系统安装完毕之后马上就进行核心编译工作,免得以后每次装一些特定功能的时候又要花一大轮时间编译。另外要说明的,由于小弟是以 2.2.18 这一版的核心来做升级的动作,所以以下是以 2.2.18 来做示范!
?核心解压缩:
下载下来的核心大致上都是 *.tar.gz 这种压缩档,所以需要先解压缩,另外,由于 redhat 预设的编译核心的目录是 /usr/src/linux ,所以你要将这个压缩档解至这个目录。不过由于系统原本就有一个 linux 的连结档在这里,所以你要先取消连结档。现在假设你的 linux-2.2.18.tar.gz 放在 /root/ 底下,则你可以这样做:
[root@tsai /root]# cd /usr/src/ [root@tsai src]# rm linux [root@tsai src]# tar -zxvf /root/linux-2.2.18.tar.gz [root@tsai src]# mv linux linux-2.2.18 [root@tsai src]# ln -s linux-2.2.18 linux
?则你的新核心资料放在 linux-2.2.18 这个目录中,而 linux 则是连结至这个目录的连结目录!
开始设定核心的内容
编译核心有许多方法,这里以视窗介面的方法来说明:
1.进入核心目录: cd /usr/src/linux
2.开始设定画面: make menuconfig
3.进入选择项目:
进入选择项目之后,你将会在视窗介面中看到很多的选项,请使用方向键、空白键与 enter 来进行选择。以下开始你要慢慢的详细挑选,如果有任何问题的话,请详细的看一下每一个选项中的 Help 。另外,如果没有需要的话,请尽量不要把核心边的太大!否则效能是会降低的喔!此外,由于很多时候你不晓得需不需要选择这个项目,那你可以将之编成模组( 的项目),模组是在开机载入时有被载入才可以执行的咚咚!所以并不会使效能方面有太大的问题!
oCode maturity level options:请选择。这个项目主要在让你可以接受一些测试的版本的套件。
oProcessor type and features:请选择进入,选你的 CPU 形式。
§Processor family:例如鸟哥的 CPU 为 P-166 则我可以选择 Pentium/K6/TSC/CyrixIII 这一项!
§Math emulation:这一项请不要选择,因为这是用软体来模拟硬体的计算核心,因为我们的 CPU 都是 P-100 以后的,所以不用选这项!
§Symmetric multi-processing support:这是是否支援双CPU 的主机板的选项,你可以选择也可以不选择,但如果你使用双CPU主机板,这个就一定要选择。
§其他保持预设值即可。
oLoadable module support:请选择,这是用来是否支援模组载入的。
§Enable loadable module support:请选择。
§Set version information on all symbols for modules:不要选,因为我们可能会具有两种以上的版本的核心,所以这一项不可选择。
§Kernel module loader:请选择。
oGeneral setup:
§Networkking support:一定要选择。
§PCI support:请选择。
§Advanced Power management BIOS support:如果您的BIOS支持APM的话╋请选择。
§Power off on shutdown:如果您选择了上一个╋也请选择。
§其他,保留预设,或视实际情况设定。 例如我们实验室的机器需要与 SGI 的机器联系,所以就多选择了 SGI Visual Workstation support 这一项。
oPlug and Play support:将之全部选择。
oBlock devices:里面放置了一些晶片组的选项,通常以预设值就可以了,不过,如果你的主机板是最近的版子,例如 VIA 的 82C586 晶片组,哪就必须进来选择你的晶片组啦!
oNetworking options:这是所有项目里面最重要的了,底下的选择
§Network firewalls╋请选择。
§Socket Filtering╋请选择。
§TCP/IP networking╋请选择。
§IP: multicasting╋请选择。
§IP: advanced router╋请选择。
§IP: police routing╋请选择。
§IP: verbose route monitoring╋请选择。
§IP: firewalling╋请选择。
§IP: use FWMARK value as routing key╋请选择。
§IP: transparent proxy support╋请选择。
§IP: masquerading╋请选择。
§IP: ICMP masquerading╋请选择。
§IP: masquerading special modules support╋请选择。
§IP: ipautofw masq support╋请选择为 Module。
§IP: ipportfw masq support╋请选择为 Module。
§IP: ip fwmark masq-forwarding support╋请选择为 Module。
§IP: optimize as router not host╋请选择。
§IP: multicast routing╋请选择。
§IP: aliasing support╋请选择。
§IPX: Full internal IPX network╋如果您的网路有Novell伺服器╋请选择。
§IPX: SPX networking╋如果您的网路有Novell伺服器╋请选择。
§其他╋保留预设╋或视实际情况设定。
oTelephony Support:保留预设值。
oSCSI support:除非你有 SCSI 的设备,否则可以选择成为 M 的模组型态。
oNetwork device support:这个也是很重要的选项,与你的网路卡有关!
§Dummy net driver support:非常建议选择。
§Ethernet (10 or 100Mbit):除非您使用其他的网路形态╋否则这个一定要选择。
§3 COM cards:除非您的网路卡是这个牌子的╋否则不选择。
§Western Digital/SMC cards:除非您的网路卡是这个牌子的(或兼容)╋否则不选择。
§RealTek 8912/8139 (not 8019/9029!) support:除非您的网路卡是这 8912或8139这两个确切型号╋否则不选择╋不过╋也可以选“M”。
§Other ISA cards:如果您有ISA网卡的话╋可以选择。
§NE2000/NE1000 support:如果您不知道您的网路卡型号╋这个可以试试选择。
§EISA, VLB, PCI and on board controllers:请选择。
§PCI NE2000 support:如果您用的是PCI网路卡╋又不知道型号╋这个可以试试选择。
§EtherExpressPro/100 support:如果您有此类网卡╋请选择。
§Pocket and protable adaptors:如果您使用PCMCIA网卡╋可以试试选择。
§基本上在这个选项当中,就是选你有的网路卡的形式就对了!
§FDDI driver support:如果您没用使用FDDI╋请不要选择。
§Frame relay DLCI support:如果您没用使用Frame relay╋请不要选择。
§PPP (point-to-point) support:这个一定要选择。
§SLIP (serial line) support:如果您知道您ISP使用SLIP╋可以选择。
§Token Ring driver support:如果您的网路不是这个形态╋请不要选择。
§至于其他╋如果确定不使用的╋就不要选择╋如果不确定╋可以保留预设╋或将之设成“M”。
oAmateur Radio support :有才选择,通常不选。
oIr