红联Linux门户
Linux帮助

Linux 核心编译 (kernel)

发布时间:2006-03-02 00:46:08来源:红联作者:thej
其实应该在安装完 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 站找到你要的核心。
  o
  http://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:请选择。这个项目主要在让你可以接受一些测试的版本的套件。
  o Processor type and features:请选择进入,选你的 CPU 形式。
  § Processor family:例如鸟哥的 CPU 为 P-166 则我可以选择 Pentium/K6/TSC/CyrixIII 这一项!
  § Math emulation:这一项请不要选择,因为这是用软体来模拟硬体的计算核心,因为我们的 CPU 都是 P-100 以后的,所以不用选这项!
  § Symmetric multi-processing support:这是是否支援双CPU 的主机板的选项,你可以选择也可以不选择,但如果你使用双CPU主机板,这个就一定要选择。
  § 其他保持预设值即可。
  o Loadable module support:请选择,这是用来是否支援模组载入的。
  § Enable loadable module support:请选择。
  § Set version information on all symbols for modules:不要选,因为我们可能会具有两种以上的版本的核心,所以这一项不可选择。
  § Kernel module loader:请选择。
  o General setup:
  § Networkking support:一定要选择。
  § PCI support:请选择。
  § Advanced Power management BIOS support:如果您的BIOS支持APM的话,请选择。
  § Power off on shutdown:如果您选择了上一个,也请选择。
  § 其他,保留预设,或视实际情况设定。 例如我们实验室的机器需要与 SGI 的机器联系,所以就多选择了 SGI Visual Workstation support 这一项。
  o Plug and Play support:将之全部选择。
  o Block devices:里面放置了一些晶片组的选项,通常以预设值就可以了,不过,如果你的主机板是最近的版子,例如 VIA 的 82C586 晶片组,哪就必须进来选择你的晶片组啦!
  o Networking 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伺服器,请选择。
  § 其他,保留预设,或视实际情况设定。

  o Telephony Support:保留预设值。
  o SCSI support:除非你有 SCSI 的设备,否则可以选择成为 M 的模组型态。
  o Network 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”。
  o Amateur Radio support :有才选择,通常不选。
文章评论

共有 0 条评论