linux 内核编译手记

最近因为工作需要,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值