内核编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内核编译相关的知识,希望对你有一定的参考价值。

1,下载src.rpm 格式的内核源码包

# wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-573.el6.src.rpm

2, 安装 src.rpm 包

# useradd mockbuild

# su mockbuild

# rpm -ivh kernel-2.6.32-573.el6.src.rpm

# exit

3,制作rpm包,安装完成后会在 mockbuild 用户家目录下生成rpmbuild 目录

# yum -y install xmlto asciidoc newt-devel    (安装依赖包)

# rpmbuild -bb ~/rpmbuild/SPECS/kernel.spec

4,把内核源码包展开至/usr/src 目录下

# cd /home/mockbuild/rpmbuild/SOURCES/

# tar xf linux-2.6.32-573.el6.tar.bz2 -C /usr/src/

# cd /usr/src/

5,创建链接

# ln -sv linux-2.6.32-573.el6 linux

# cd linux

6,提供内核编译配置文件

# cp /boot/config-2.6.32-431.el6.x86_64 .config

7,选择编译选项

# make menuconfig

8,编译内核

# make

9,安装模块

# make modules_install

10,安装内核

# make install

11,检测

# cat /boot/grub/grub.conf   (查看文件中是否有新内核配置项)


二次编译

1,清理此前的编译配置

只清理编译生成的文件,但不删除配置文件 .config

# make clean 

清理编译配置和配置文件

# make mrproper

重置源代码树

# make disclean

2,选择编译选项

# make menuconfig

3,编译内核

# make

4,安装模块

# make modules_install

5,安装内核

# make install

6,检测

# cat /boot/grub/grub.conf   (查看文件中是否有新内核配置项)


将编译生成配置文件放在特定路径下

# mkdir /source

# cd /source/

# ./configure --ksource=/usr/src/linux


只编译某个模块

# make drivers/net/ethernet/intel/e1000/e1000.ko


修改内核参数的两种方法:

1,通过命令

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all  或

# sysctl -w net.ipv4.icmp_echo_ignore_all=1

2,通过配置文件

# vim /etc/sysctl.conf

      icmp_echo_ignore_all = 1

# sysctl -p

3,查看内核参数

# cat /proc/sys/net/ipv4/icmp_echo_ignore_all

# sysctl net.ipv4.icmp_echo_ignore_all






本文出自 “珞辰的博客” 博客,请务必保留此出处http://luochen2015.blog.51cto.com/9772274/1752924

以上是关于内核编译的主要内容,如果未能解决你的问题,请参考以下文章

如何编译一个内核

Linux内核源码如何编译

linux为啥要编译内核

linux编译内核步骤

编译linux内核问题

LINUX内核编译