内核的配置与编译
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 为编译好的内核版本号**
重新启动就可以看见自己创建的系统。