内核的配置与编译

1.清除临时文件、中间文件和配置文件

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 patch files补丁文件)

2.确定目标系统的软硬件配置情况,比如CPU的类型、网卡的型号,所需支持的网络协议等

3.使用如下命令之一配置内核

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

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

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

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

配置结果保存在当前目录下的.config中,这是一个隐藏文件,可以用ls -a 查看。

Make menuconfig (在参考配置文件下再进行修改,如:先执行 make s3c2410_defconfig,然后再执行make menuconfig进行配置)是最为常用的内核配置方式,使用方法如下:

1.使用方向键在个选项间移动。

2.使用“Enter”键进入下一层选项;每个选项上的高亮字母是键盘快捷方式,使用它可以快速地达到想要设置的选项。(*编译链接,M只编译不链接)

可以参考原有的配置文件,在目录/arch/cpu(如arm)/configs中有很多种类型的配置文件,如:s3c2410_defconfig,  cp s3c2410_defconfig /顶层目录/.config

4.编译内核:

Make zImage

Make bzImage(编译较小)

区别:在X86平台,zImage只能用小于512K内核。

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

Make zImage V=1

Make bzImage V=1

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

5.编译内核模块:

Make modules

6.安装内核模块

Make modules_install 将编译好的内核模块从内核源代码目录copy 至/lib/modules下,建一个子目录和内核版本一致2.6.29。

7.制作init ramdisk

Mkinitrd initrd-$verision $version

如:mkinitrd initrd-2.6.29 2.6.29 (把/lib/modules目录下的/2.6.29制作成一个文件)

 

内核安装:

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

2.Cp $initrd /boot/  *$initrd 是做好的ramdisk, 如initrd-2.6.29*

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

**$version 为编译好的内核版本号**

重新启动就可以看见自己创建的系统。