Fedora下内核编译

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

第一步:去官方下载最新的内核源码包

官方网址: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,重启之后,大功告成,你的新内核已经安装好了。

【编辑推荐】

  1. Fedora12发布 颠覆的网络功能
  2. 史上最强Fedora10安装与启动教程
  3. Fedora 12 Beta 发布
责任编辑:赵宁宁 来源: chinaitlab
相关推荐

2010-03-12 10:20:19

Fedora内核

2009-12-24 17:06:35

编译Fedora内核

2010-01-11 10:15:09

FedoraFedora 12Mplayer

2010-02-02 15:41:00

Linux内核

2010-02-02 15:13:42

Linux ARM

2009-12-21 11:16:56

Fedora内核源码

2010-02-02 17:57:47

Linux PPStr

2010-02-24 15:32:05

Fedora Core

2009-12-21 13:46:40

Fedora 8内核

2013-05-10 13:27:55

FedoraUbuntu

2020-10-15 11:18:13

Linux内核虚拟机

2009-12-23 16:01:28

Fedora 8 gc

2011-03-21 09:17:06

NagiosFedora

2017-03-27 18:05:49

Linux内核编译与开发

2010-02-24 16:49:24

Fedora SkyE

2009-12-28 08:57:22

Fedora操作系统

2010-03-02 09:59:03

Fedora Make

2010-04-12 11:19:47

编译内核模块

2009-12-25 10:16:13

Fedora10 NF

2010-02-22 16:38:34

CentOS yum内
点赞
收藏

51CTO技术栈公众号