Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8106255
  • 博文数量: 159
  • 博客积分: 10424
  • 博客等级: 少将
  • 技术积分: 14615
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-14 12:45
个人简介

啦啦啦~~~

文章分类
文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(10)

2011年(116)

2010年(22)

分类: LINUX

2010-12-14 23:20:24

编译Linux内核2.6.36

一直以来,都是从事Linux用户空间的程序开发,对于Linux的了解仅限于基本Linux内核的经典书籍的阅读。由于目前从事的工作主要是TCP/IP 4层以上的处理,所以对内核的接触也不多。但近日空闲时间较多了,于是决定要好好研究研究Linux内核,主要集中在Linux内核的TCP/IP协议栈。

那么从今天开始,一方面是为了鞭策自己,另一方面也是给自己的学习过程做些记录,我要坚持把学习过程遇到的问题以及自己的收获记录下来。

那么,开始吧。

第一步,自然是编译内核。我选择的是当前最新的稳定版本Linux 2.6.36。我只有在很久之前,大概刚刚毕业的时候编译过内核,当时还是2.4.18呢————这个版本我记得很清楚。所以,具体步骤还得上google搜一下,结果发现大体上都差不多,但是每个人的介绍都有些细微的区别。

恩。。。那么,还是直接看linux的文档为上——这个最官方——其实就是源目录下的README,里面说得很清楚。

1. make mrproper:Make sure you have no stale .o files and dependencies lying around。用于清除以前的编译结果和依赖文件;

2. make O=/home/my_dir/works/linux_kernel/kernel menuconfig: 配置内核的编译选项。
这里的O=/home/my_dir/works/linux_kernel/kernel是指定生成的目录。如果没有该选项,就在默认目录生成。需要注意的是,如果使用了该选项,那么后面的命令中都要带有这个选项。

3. make O=/home/my_dir/works/linux_kernel/kernel:老版本的Linux还要使用make bzImage来生成image。但是新版本的Linux使用make就可以了。这与用户空间的make风格统一了。
这个make就可以生成压缩版本的kernel镜像。

4. make O=/home/my_dir/works/linux_kernel/kernel install: 如果有合适lilo,那么可以直接使用make install来进行镜像的安装。如果没有的话,只能自己动手赋值了。

如果在配置kernel的时候,有任何一个部分是配置成module的形式,那么还需要在make install之前执行make modules_install

到此ok,linux的编译过程其实很简单,重点是在配置内核上。大家根据自己的硬件尝试吧。最好使用虚拟机,这样即使出了问题,也很容易解决。

阅读(6676) | 评论(0) | 转发(7) |
给主人留下些什么吧!~~