现在的位置: 首页 > 综合 > 正文

Ubuntu内核编译

2013年02月25日 ⁄ 综合 ⁄ 共 911字 ⁄ 字号 评论关闭

     前天做了一下Ubuntu Linux的内核编译的工作,工作很简单,只是好奇想看看内核编译是怎样的一个过程,正好要重新做系统,准备做一个双系统,先谈谈内核编译的问题吧,内核无非就是系统上面的一个文件而已,这个文件包含了驱动主机各项硬件的检测程序与驱动模块,据说内核编译是相当麻烦和漫长的过程,因此Linux很早就出现了所谓的模块化设置,既是将一些不常用的类似驱动程序的内容独立出内核,编译成模块,然后,内核可以在系统正常运行的过程当中加载这个模块到内核的支持,这样可以在不改动内核的前提下,只要编译出适当的内核模块并加载它(/lib/module/kernel)

 

内核编译的目的:

内核编译的重点是在于你要你的LINUX做什么,如果没有必要的工作,就干脆不要加载你的内核当中,这样才能让系统跑的更顺更稳,这是编译内核最主要的原因。还有其他主要目的的原因是:

1. 新功能的需求

2. 原内核太过臃肿了

3. 与硬件跑配的稳定性

4. 其他需求(嵌入式)

总而言之,编译内核的主要目的是让系统变得更稳。

 

在官网www.kernel.org中下载最新的内核版本 Linux-2.6.35,首先将内核源代码解压缩和放置目录

tar -jvxf linux-2.6.35.tar.bz2 -c /usr/src/kernels

 

下面先检查一下系统的硬件支持,由于我的硬盘不是很大,最终因为空间不足导致编译失败,但是终于体验到了一把

1. 保持干净的源代码: make mrproper.这个操作会将以前进行过的内核功能选择文件也删除掉,所以几乎只有第一次执行内核编译前才进行这个操作,

2. make clean 这个操作仅会删除类似目标文件之类的编译过程生成的中间文件,而不会删除设置文件。

3. make menuconfig 会弹出一个菜单式的画面,类似于BIOS的画面,可以选择需要编译的功能和模块

4. make vmlinux

5. make bzlmagemake modules

6. make mudules_install

7. 接下来要准备内核的安装,建议保存一下旧内核

8. 编辑开机菜单Grub /boot/grub/menu.lst

9. 重新以新内核开机。测试,修改  uname -a

 

【上篇】
【下篇】

抱歉!评论已关闭.