详解Debian系统中安装Linux新内核的流程


一直对Linux内核很有兴趣,但苦于入门不易,认真看了ldd前5章突然就来感觉了,光看不练不顶用,首先就需要环境搭建。
使用的是Debian 5.0,内核2.6.26,欲安装的新内核为2.6.28,这里有一点需要注意,安装的内核版本最好要大于使用编译的版本,不然gcc等有些会报错。
下载https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2,解压到任意目录,不需要一定要在/usr/src目录下。
由于我只需要一个内核源码树,所以生成配置文件使用简单的make oldconfig


1.生成config文件

复制代码
代码如下:

make oldconfig

make oldconfig会以你已有的配置文件进行增量提示,这里最后都采用系统默认值,也就是一路“回车”,不然可能导致有些模块依赖关系,导致编译失败。

2.生成内核压缩镜像

复制代码
代码如下:

make bzImage

这会在你对应平台的boot目录下生成bzImage,如我的linux-2.6.28/arch/x86/boot/bzImage

3.编译模块

复制代码
代码如下:

make modules

这步是很花时间的,慢慢等待

4.安装内核模块

复制代码
代码如下:

make modules_install

这会在你的/lib/modules/目录下创建对应的内核版本模块

5.安装内核

复制代码
代码如下:

make install

这会把我们编译的内核安装到/boot目录下

6.创建initramfs文件

复制代码
代码如下:

update-initramfs -c -k 2.6.28

c代表创建一个新的initramfs,k指定内核版本

7.更新grub

复制代码
代码如下:

update-grub

如果不行还可以手动通过修复/boot/grub/menu.lst,可以参考之前的配置文件,只需要增加"title","root","kernel","initrd"字段就可以了。注意:update-grub新加的内核版本将出现在老版本的前面。

8.reboot,enjoy  it。



相关阅读:
iPad系统常用文件夹位置整理
简要分析Java多进程编程的并发控制
论JavaScript模块化编程
深入浅析JS的数组遍历方法(推荐)
ThinkPHP视图查询详解
HTML5 canvas基本绘图之绘制线段
VC基于ADO技术访问数据库的方法
Android编程之内存溢出解决方案(OOM)实例总结
Android图片处理实例介绍(图)
android预置默认的语音信箱号码具体实现
Java编程中字节流与字符流IO操作示例
VC创建DLL动态链接库的方法
jQuery插件制作之参数用法实例分析
JS文字球状放大效果代码分享
快速导航

Copyright © 2016 phpStudy |