Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47913
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-07 14:00
文章分类
文章存档

2013年(18)

我的朋友

分类: LINUX

2013-05-31 15:13:12

原文地址:x86平台linux内核的编译 作者:ohmytime

  1. 首先获得内核,这里得到的是linux2.6.29;
  2. 进入内核目录;
  1. make distclean

这一步是清理中间文件,配置文件

  3.然后选择参考配置文件

   就选择当前运行的linux平台的配置文件吧

  1. cp /boot/config-2.6.18-194.el5 .config
   4.然后进行配置内核
  1. make menuconfig

    等图形界面出来后,向下移动鼠标,选择Load an Alternate Configuration file,然后回车Select进行选择,然后Exit,它会提示你保存。

   5.然后执行如下命令,进行编译内核

  1. make bzImage

整个过程需要大概20分钟左右的时间,看个人的配置好坏了。

然后生成的内核镜像bzImage位于 arch/x86/boot 目录下。

有一个需要注意的问题:

不要在windows文件系统下编译linux内核,因为它不支持ln,比如:

ln: 创建符号链接 “include/asm”: 不支持的操作

附注:因为有次我尝试在虚拟机下安装的linux系统编译,在/mnt/hgfs/linux-2.6.29 下编译。因为是在windows的FAT目录下编译,所以出现了这样的错误。

所以,编译内核的时候在linux文件系统下编译就行了,比如/home目录。

   6.编译内核模块

  1. make modules

   7.安装内核模块

  1. make modules_install

   8.制作init ramdisk

initramdisk的作用:提供一种让内核可以简单实用ramdisk的能力。这些能力包括:格式化一个ramdisk;加载文件系统内容到ramdisk;将ramdisk作为根文件系统。

  1. mkinitrd initrd-2.6.29 2.6.29

  然后再当前目录会生成initrd-2.6.29

    9.安装内核

    由于linux系统启动时,会从/boot目录下来寻找内核文件与init ramdisk,所以需要将内核和init ramdisk拷贝至/boot目录

  1. cp linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29
  2. cp initrd-2.6.29 /boot

然后修改grub的配置文件。

  1. vi /etc/grub.config
然后你会看到你系统中已经有一个了,这里我以rhel5举例
  1. title Red Hat Enterprise Linux Server (2.6.18-194.el5)
  2. root (hd0,0)
  3. kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet
  4. initrd /initrd-2.6.18-194.el5.img
  5. ~

你只需要修改一下上图中的红色字体就行了。然后再拷贝一份在下面就行了。开机的时候按空格键就可以选择了

 

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