Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52810
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-15 14:18
文章分类

全部博文(14)

文章存档

2014年(14)

我的朋友

分类: LINUX

2014-10-30 08:41:57

环境:Fedora 12
内核:linux-2.6.32.2

(为什么选择Fedora 12,因为12是偶数看起来舒服,且是最新版;同理选择了linux-2.6.32.2,虽然有最新版2.6.33,但不是偶数,不爽!)

STEP 1: 到ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,下载
  
STEP 2: 把复制到 /usr/src/kernels/ (当然其他任何目录都可以的) 
     

       cp linux-2.6.32.2.tar.gz /usr/src/kernels/


STEP 3: 解压

       tar -xzf linux-2.6.32.2.tar.gz


STEP 4: 进入linux-2.6.32.2

       cd linux-2.6.32.2


STEP 5: 配置。如果以前编译过,那么用make mrproper删除以前垃圾文件。用make menuconfig启动配置的图形界面。因为配置选项很多,短时间根本搞不懂哪些选项是必须的,哪些是可以不要的,所以,最佳的办法是在一个已经存在的配置文件上面修改。很显然,Fedora 12 就有现成的一个。把 /boot目录里面 config-2.6.31.5-127.fc12.i686.PAE复制到/usr/src/kernels/linux-2.6.32.2里面并命名为.config。当执行make menuconfig时,首先寻找.config,如果找到就读取。否则进入arch目录里面寻找相应体系结构默认的配置文件。

      cp /boot/config-2.6.31.5-127.fc12.i686.PAE /usr/src/kernels/linux-2.6.32.2/.config

      make menuconfig


STEP 6: 编译。2.6.32已经是非常高的版本了,所以执行make all,就相当于:make dep建立相依的属性关系),make clean(将旧的资料去除掉),make bzImage开始编译核心),make modules开始编译模块)

      make all


STEP 7: 安装模块。安装模块到/lib/modules/,以后程序运行时从这个目录加载模块。

      make modules_install


STEP 8: 安装内核。把make all 生成的vmlinuzSystem.map复制到/boot目录下同时修改grub /boot/grub/menu.lst. 修改menu.lst是自动完成的哦!!不用手动修改。

      make install


STEP 9: 重启Fedora。选择linux-2.6.32.2启动。当白色的进度条显示满了后,多等会。


附一:我遇到的问题
1. 在make install时报错,提示我没有 mkinitrd这个命令。我到/sbin/里面找确实没有啊。然后我到网上下了一个mkinitrd的软件包安装,安装时又出错,提示与系统的什么包相冲突。我在网上问了哈高手,然后通过Fedora 的包管理机制,添加了mkinitrd.总算是成功了。弄了很久。

2. 编译了内核启动时,白色的显示条显示满了后,要等一段时间。刚开始,我试了很多次,改了很多东西,每次白色条显示满了,我等了几秒,没反应,就错误地以为我编译的内核不成功。当我弄烦了后,干脆不理它,我搞点其他的,等回到虚拟机时,居然启动了。一阵狂喜啊!


附二感谢
感谢网上的高手给我提示,以后只要我知道我也会毫不吝惜地帮助别人;
感谢chinaunix里面牛人写的博客,(在参考博客里面),写得非常之好,仰慕,学习。



参考博客

Fedora下内核编译 [第十五期]

http://linux.chinaunix.net/techdoc/develop/2008/12/22/1054372.shtml
编译内核步骤详解


编译 Linux2.6 内核总结


阅读(1677) | 评论(0) | 转发(0) |
0

上一篇:printk打印不能显示到终端的问题

下一篇:没有了

给主人留下些什么吧!~~