linux 内核编译手记

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

最近因为工作需要,linux自带的一些参数必须修改,这必须重新编译linux内核才行,于是参照了一些网上兄弟写的内核编译文档,自己重新编译了redhat 9的内核,现将内核编译过程写下,希望对大家有用。

一、准备工作

linux版本:redhat9 自带linux-2.4.20-8

# cd /usr/src/

# ln -s linux-2.4.20-8 linux

vi /usr/src/linux/Makefile

修改EXTRAVERSION为 自己特定的版本号,以与原来版本标识。

如:-8custom_kunp1

二、修改内核源代码

1、设置fd_set支持的最大数量

a、修改/usr/include/bits/typesizes.h

#define __FD_SETSIZE 1024 ---> 65536

b、修改/usr/src/linux/include/linux/posix_types.h

#define __FD_SETSIZE 1024 ---> 65536

2、修改/usr/src/linux/include/linux/fs.h

设置最大打开文件数量(TCP连接数量)

#define INR_OPEN 1024 ---> 65536

#define NR_FILE 8192 ---> 65536

#define NR_RESERVED_FILES 10 ---> 128

3、修改/usr/src/linux/include/net/tcp.h

a、设置TIMEOUT的时间为1秒

#define TCP_TIMEWAIT_LEN (60*HZ) 60 ---> 1*HZ

b、设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上也是减少重试时间

#define TCP_SYNACK_RETRIES 5 ---> 3

4、保证linux目录下没有不正确的.o文件。

# cd /usr/src/linux

# make mrproper

三、make menuconfig

用以下命令读取刚才的配置数据使之生效:

# make dep

# make clean

四、开始编译内核和模块

a、内核:

# make bzImage //生成了/usr/src/linux/arch/i386/boot/bzImage

b、模块:

# make modules //时间比较长,大概20分钟

# make modules_install //生成了 /lib/modules/2.4.20-8custom_kunp1 ("2.4.20"+"-8custom_kunp1")

c、生成镜像文件,在/boot下生成 initrd img文件

# cd /boot

# mkinitrd 2.4.20-8custom_kunp1.img 2.4.20-8custom_kunp1

d、移动bzImage到boot目录

# mv /usr/src/linux/arch/i386/boot/bzImage bzImage-kunp1

五、修改grub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航