*本文基于本人亲自实践*
在linux官网下载最新版本的linux内核,要下载偶数版本(稳定版)。
linux官网( www.linux.org ),不要到其他网站上下载,其他网站上的是人家裁剪过的,编译的时候会有令人抓狂的问题。1.删除之前配置和编译产生的临时文件。有三个命令,一般直接用第一个命令就好
(1) make distclean
会删除所有产生的临时文件、配置文件和一些备份文件。
(2) make mrproper
会删除所有产生的临时文件和配置文件。
(3) make clean
会删除所有的临时文件,但是保留原有的配置。
2.内核裁剪和配置。要根据实际CPU的架构进行配置,一般在arc/下相应的处理器目录里有配置好的.config文件,把它复制到内核文件的顶层目录。内核裁剪命令有三个,一般用第一个就可以。
(1) make menuconfig
基于文本模式的菜单行编译。会有一个菜单,实现整体编译。注意要在顶层目录下执行,如果有.config文件,会在这个文件的基础上进行修改。
(2) make config
基于文本模式的交互式编译,这个编译是一问一答的形式,每一个配置项问你,(Y/N/M),选择之后才能继续下一项,全部配置完成才会生成.config文件。不推荐
(3) make oldconfig
跟第二个差不多,只是如果有.config文件,那么已经配置过的就不会再问你了。
4.内核编译,有两个命令,一般用第一个就可以,如果用第二个,X86平台下如果内核超过512K会出错。在其他平台下没区别。
(1) make bzImage
(2) make zImage
一般后面会加上V=1 ,这样编译具体信息才会打印出来,如果有问题方便查找错误。
编译成功后,生成的bzImage文件会保存在./arch/<CPU>/boot下面。如果bzImage没有执行的权限,要加上执行权限!5.内核模块编译
make modules
6.内核模块安装
make modules_install
这个命令的功能:将编译好的内核模块,当前目录拷到/lib/modules下面。
7.制作init ramdisk
mkinitrd myinitrd-3.18.0 3.18.0
后面的那个3.18.0是内核版本,一定要正确。不知道查看/lib/modules
至此,linux内核已经定制成功!主要是要获得两个文件:bzImage 和initrd-xxxx
8.内核安装
(1) 把./arch/<CPU>/boot/bImage 文件拷到/boot/下面。
(2) 把./initrd-xxx 文件拷贝到/boot/下面。
(3) 修改grub引导文件,复制原来的部分,然后修改。把原来的内核映像和initrd改成自己的。
9.重启,可以看到引导的时候多了一个内核启动的选项,就是刚刚编译好的mylinux-3.18.0