📄 00000032.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: encarta (知更鸟), 信区: Linux <BR>标 题: 编译内核:我的一点心得 <BR>发信站: BBS 水木清华站 (Wed Aug 30 11:06:45 2000) <BR> <BR>为了给内核打上一个网络方面的补丁,这两天一直在机器上编译内核,犯过了 <BR>屡次错误之后,终于成功了,有感于介绍这方面的心得比较少,特发此篇,望 <BR>大侠们指教. <BR> <BR>在一般情况下是不需要编译内核的,但如果要给内核打上补丁(就是对内核文件 <BR>做了修改,增加了其中功能),就必须重新编译内核. <BR> <BR>一般情况下要先去下载一个和当前内核版本一样的内核源代码文件,比如当前 <BR>用的是RedHat6.0,内核版本就是2.2.5,就可以到 www.kernel.org下载一个 <BR>linux-2.2.5.tar.gz的内核源代码文件,拷到/usr/src目录下,并解开,比方说 <BR>解到了/usr/src/linux-2.2.5目录下。再把补丁程序也拷到linux-2.2.5目录, <BR>执行patch -p1 < linux.patch(比方说补丁文件叫linux.patch)。这样就给 <BR>内核源代码文件打上了补丁(做了修改,一般是增加了代码)。 <BR> <BR>然后执行: make menuconfig,这一步很关键,直接影响内核编译成功与否, <BR>我就是在这里犯了几个错误。 <BR> <BR>首先,在cup类型的选项中,其默认值是奔腾pro或奔腾MMX,如果你的CPU是 <BR>Cyrix586,就要把这一项改成相应的CPU类型。 <BR> <BR>其次,要清楚,如果你选择了所打上的补丁支持的功能,那么这项新功能还需要 <BR>在内核中选择其它什么支持。比如:我的补丁是给网络方面增加了移动IP的功能, <BR>那么在我选择了移动IP的功能后,我还需要选择advanced route, route messaging, <BR>netlink,ip tunneling等选项,这些一般都在补丁文件中有说明,如果你没有选 <BR>或者是选得不全那么很有可能编译是能通过的,但用新内核启动后在finding <BR>modules dependencies这一步时会死掉。当初我在编译新内核时在这一步死了 <BR>n次,后来在menuconfig中增加了补丁说明中的没有提到的几个选项才通过。 <BR> <BR>再次,在menuconfig的网络设备选项中,关于以太网的默认值是PCI的以太网卡, <BR>对ne2000的默认支持方式是build-in,即没有设成模块,所以如果你的网卡是 <BR>ISA的,那么务必要选择其中的other ISA card,最好把PCI intel pro选项去掉, <BR>另外把ne2000 support选项改成module。 <BR> <BR>最后就是make dep; make clean; make bzImage <BR>然后 make modules
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -