Linux内核配置与编译

时间:2022-06-06 12:28:11

环境:Red Hat Enterprise 6

 

第一步:查看原系统的内核版本

 Linux内核配置与编译

第二步:安装linux内核源代码

 Linux内核配置与编译

第三步:清除临时文件、中间文件和配置文件

   make clean

        remove most generated files but keep the config

   make mrproper

        remove all generated files + config files

   make distclean

        mrproper + remove editor backup and patcher files

 Linux内核配置与编译

第四步:确定目标系统的软硬件配置情况,比如CPU的类型,网卡的型号,所需支持的网络协议等。

 

第五步:使用如下命令之一配置内核

    make config : 基于文本模式的交互式配置。

make menuconfig:基于文本模式的菜单型配置。(推荐使用)

make oldconfig:使用已有的配置文件(.config),但是会询问新增的配置选项。

make xconfig:图形化配置(需安装图形化系统)。

 

[root@localhost linux-3.0.4]# make menuconfig

出现错误,需要安装ncurses

# rpm -ivh ncurses-5.7-3.20090208.el6.i686.rpm

# rpm -ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm

Linux内核配置与编译

 

 

安装完成后再次输入make menuconfig

Linux内核配置与编译

可以进行配置然后保存。

配置完成后会生成一个.config的隐藏文件。

Linux内核配置与编译

 

在内核源代码的arch中相应的体系结构中有默认的配置

\arch\x86\configs

Linux内核配置与编译

可以拷贝过来然后再make menuconfig进行修改保存。

 

在这里我用系统现在运行内核的配置(/boot/ config-2.6.32-71.el6.i686)

Linux内核配置与编译

然后make menuconfig

 

第六步:编译内核

make zImage

make bzImage

区别:在x86平台,zImage只能用于小于512k的内核

 

如需获取详细编译信息,可使用:

make zImage V=1

make bzImage V=1

 

编译好的内核位于arch/<CPU>/boot/目录下

Linux内核配置与编译

 

第七步:编译内核模块

make modules

即编译前面配置选项中为M的项。

Linux内核配置与编译

 

第八步:安装内核模块

make modules_install

本步的作用是将编译好的内核模块从内核代码目录copy至/lib/modules下

安装前:

Linux内核配置与编译

安装后:

Linux内核配置与编译

 

第九步:制作init ramdisk

mkinitrd initrd-$version $version

例: mkinitrd initrd-3.0.4 3.0.4

[root@localhost linux-3.0.4]# mkinitrd initrd-3.0.4 3.0.4

$version可以通过查询/lib/modules下地目录得到

 

第十步:安装内核

1.       cp arch/x86/boot/bzImage /boot/vmlinuz-$version

   [root@localhost linux-3.0.4]# cp arch/x86/boot/bzImage /boot/vmlinuz-3.0.4

2.       cp $initrd /boot/

[root@localhost linux-3.0.4]# cp initrd-3.0.4 /boot/

3.       修改/etc/grub.conf或者 /etc/lilo.conf

Linux内核配置与编译

Linux内核配置与编译

进入系统查看版本。

至此,安装3.0.4内核安装成功