首先是准备条件:
①、有一台装有ubuntu的机器
②、先移步到http://www.kernel.org/下载linux稳定版内核
③、拥有root权限
④、并将下载好的内核解压到/usr/src下
好,如今一切都准备好了,接下来就开始配置,编译,安装新内核吧!
1, 进入刚才的文件夹 /usr/src/linux-须要升级的内核,输入命令:
$ make mrproper
该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件通常是之前编译时未清理而残留的。而对于第一次编译的代码来讲,不存在这些残留文件,因此能够略过此步,可是若是该源代码之前被编译过,那么强烈建议执行此命令,不然后面可能会出现未知的问题。
2, 配置编译选项
做为操做系统的内核,其内容和功能必然很是繁杂,包括处理器调度,内存管理,文件系统管理,进程通信以及设备管理等等,而对于不一样的硬件,其配置选项也不相同,因此在编译源代码以前必须设置编译选项。其实我以为这一步是升级内核整个过程当中最有技术含量的,由于要根据本身的须要正确选择yes or no须要对计算机方方面面的知识都有所了解。可是这里的选项实在是太多了,大概有几百项之多,我之前曾尝试着一项一项的选,可是最后仍是放弃了,由于有不少选项不是很明白。
既然这样,难道没有什么简便的方法么? 固然有!那就是make menuconfig 或者make xconfig。我使用的是make menuconfig,可是前提条件是要装ncurses。
ncurses 到http://ftp.gnu.org/pub/gnu/ncurses/下载,能够放到任何目录进行安装:
tar zxvf ncurses<version>.tar.gz #解压缩而且释放 文件包
cd ncurses<version> #进入解压缩的目录(注意版本)
./configure #按照你的系统环境制做安装配置文件
make #编译源代码而且编译NCURSES库
su root #切换到root用户环境
make install #安装编译好的NCURSES库
另外,在make menuconfig过程当中也会有一些选项须要你来设置*, y, n 或者m,选择*表示选项中的内容被直接编入内核中,选择m表示选项中的内容不编入内核,而只是编成独立的module,用到时才调用。
ok, 在当前文件路径下,输入命令:
make menuconfig(或者用 make xconfig,我没有启用成功)
根据菜单提示,选择编译配置选项,并保存配置文件为.config(也能够直接复制现有的.config文件,我是这样作的!!!)
3,肯定依赖性
根据以往的经验,这一步是必须的,可是此次编译的时候,系统提醒我没必需要执行这个命令:
make dep
若是用现有的.config文件,这里会有不少内核新增长的驱动和功能让你确认是否编入内核中,这个你就本身看着输入y/n/m/?吧!
4,清除编译中间文件
输入命令:make clean
5,生成新内核(这是我用的时间07:38-07:57,19分钟。这里时间的长短都取决于你机器的性能)
就是把配置过程当中,咱们选中编入内核中的程序编译连接生产linux内核,输入命令:
make bzImage
6,生成modules(这是我用的时间07:58-09:28)
和上步差很少,就是把配置过程当中,咱们选中编成modules的程序编译连接成modules,输入命令:
make modules
7,安装modules
就是把刚才编译生产的modules拷到系统文件夹下,以供新内核调用。输入命令:
make modules_install
一切都自动作好了。
8,创建要载入ramdisk的映像文件
若是linux系统安装在scsi磁盘上,这步是必须的,不然能够跳过。个人linux是装在vmware上的,用的是虚拟的scsi磁盘,因此必须 要这一步。输入命令:
mkinitramfs -o /boot/initrd-linux3.3.4.img 3.3.4
若是你的linux不是ubuntu,而是其余的发行版本,那么使用的命令可能不是mkinitramfs,而是mkinitrd,但功能和用法相似。
9,按装内核
输入命令:make install
此时系统会把linux内核的镜像文件还有System.map考入到/boot下,而后会自动生成引导菜单。linux