热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux内核/嵌入技术 » Fedora下内核编译

Fedora下内核编译

论坛链接
  • Fedora下内核编译
  • 发布时间:2009-12-07 08:59:09    浏览数:9262    发布者:lutr    设置字体【   
第一步:去官方下载最新的内核源码包

  官方网址:www.kernel.org

  当前最新版本:2.6.31,下载网址:linux/kernel/v2.6/linux-2.6.31.tar.bz2">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2

  您可以使用 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2 下载

  第二步:解压源码包(这里有些人说要将源码解压到/usr/src目录下,其实是不正确的,你可以解压到任何目录)

  cd ~wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.bz2

  tar -jxvf linux-2.6.31.tar.bz2

  第三步:配置选项

  cd linux-2.6.31

  cp /boot/config-`uname -r` .config

  make mrproper (删除上次编译产生的垃圾,初次编译不需要)

  make menuconfig (启动内核选项配置界面)

  说明一下,make menuconfig会寻找linux-2.6.31目录下的.config配置文件,如果找不到,则使用与CPU相关的config文件作为默认的配置。当然,我们也可以拷贝当前系统的配置作为对照,如cp /boot/config-`uname -r` .config (.config是隐藏文件 ls -a查看)

  注意:如果是同版本的内核编译,还需要备份下当前模块

  cd /lib/modules

  mv 2.6.31 2.6.31_old

  指定内核识别码

  vim Makefile

  EXTRAVERSION = .custom-1 (第4行)

  第四步(1):传统方式编译

  make all (2.6以前版本需要手工运行如下命令)

  (

  # make dep       <==建立相依的属性关系!

  # make clean        <==将旧的资料去除掉!

  # make bzImage       <==开始编译核心!这个核心是经过压缩的 (30分钟左右)

  # make modules       <==开始编译模块!这个动作视您刚刚编译的模块数量!(1小时左右)

  )

  make modules_install (安装模块到/lib/modules/2.6.31),make install (系统将会把vmlinuz和System.map复制到/boot目录下同时修改grub/boot/grub/menu.lst,2.6以前版本需要手动拷贝vmlinuz和System.map)

  第四步(2):RPM方式编译,会产生RPM包,方便提供给别人使用make rpm,编译完成之后,在~/rpmbuild /SRPMS/目录发现一个新的src.rpm包, 比如.SRPMS/kernel-2.6.31.custom-1.src.rpm, 内核rpm包位于~/rpmbuild/RPMS/i386/ (或RPMS/i586/, RPMS/i686/, 等. 看你的平台类型). 比如.RPMS/i386/kernel-2.6.31.custom-1.i386.rpm. 可以看到内核识别码已添加到软件包的名字中.

  安装新内核

  现在去新的rpm内核包存在的目录(基于你的平台类型, 比如. ~/rpmbuild/RPMS/i386/)安装rpm包,cd ~/rpmbuild/RPMS/i386

  rpm -ivh kernel-2.6.31.custom-1.i386.rpm(现在你甚至能够拷贝到其它的Fedora系统, 通过上面的方式安装. 你将不再需要编译内核.)

  接下来我们为新内核创建一个ramdisk, 否则系统将不能引导新内核:

  mkinitrd /boot/initrd-2.6.31.custom-1.img 2.6.31.custom-1

  然后编辑/boot/grub/menu.lst文件, 看一下你系统上已经存在(正在工作的)引导内核信息, 拷贝其中的一个实例, 替换为你新的内核和ramdisk:vim /boot/grub/menu.lst
      比如, 我的menu.lst, 在我添加新的内核信息前的情况:

  # grub.conf generated by anaconda

  #

  # Note that you do not have to rerun grub after making changes to this file

  # NOTICE: You have a /boot partition. This means that

  # all kernel and initrd paths are relative to /boot/, eg.

  # root (hd0,0)

  # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00

  # initrd /initrd-version.img

  #boot=/dev/sda

  default=0

  timeout=5

  splashimage=(hd0,0)/grub/splash.xpm.gz

  hiddenmenu

  title Fedora Core (2.6.18-1.2798.fc6)

  root (hd0,0)

  kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00

  initrd /initrd-2.6.18-1.2798.fc6.img

  修改后的情况:

  # grub.conf generated by anaconda

  #

  # Note that you do not have to rerun grub after making changes to this file

  # NOTICE: You have a /boot partition. This means that

  # all kernel and initrd paths are relative to /boot/, eg.

  # root (hd0,0)

  # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00

  # initrd /initrd-version.img

  #boot=/dev/sda

  default=0

  timeout=5

  splashimage=(hd0,0)/grub/splash.xpm.gz

  hiddenmenu

  title Fedora Core (2.6.18-custom-2.6.18.2)

  root (hd0,0)

  kernel /vmlinuz-2.6.18-custom-2.6.18.2 ro root=/dev/VolGroup00/LogVol00

  initrd /initrd-2.6.18-custom-2.6.18.2.img

  title Fedora Core (2.6.31.custom-1)

  root (hd0,0)

  kernel /vmlinuz-2.6.31.custom-1 ro root=/dev/VolGroup00/LogVol00

  initrd /initrd-2.6.31.custom-1.img

  (你可以通过下面命令发现正确的vmlinuz和initrd文件:ls -l /boot)

  第五步:重启系统,在Grub引导菜单中,选择linux-2.6.31.custom-1。

  Reboot,重启之后,大功告成,你的新内核已经安装好了。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理