X86平台:linux系统下编译配置内核并启动内核

13 篇文章 0 订阅

X86平台:linux系统下编译配置内核并启动内核

 

本文转自:http://blog.chinaunix.net/uid-25811099-id-1704590.html

PC机系统: windows XP
虚拟机: VMware 6.5.1 build-126130
虚拟机系统: linux系统(version: 2.6.25-14.fc9.i686 友善光盘中提供的)
编译内核版本: linux-2.6.32
具体编译内核并启动的主要步骤:
1) 下载内核并解压.
2) 配置并编译内核/模块.
3) 制作init ramdisk.
4) 复制相应文件到/boot/.
5) 修改启动选择.
下面具体细说:
1) 下载内核并解压.
1. 下载内核
到下面的网站下载linux源代码: http://www.kernel.org
我这里下载的是linux-2.6.32版本,然后放到/usr/src/目录下.
2. 解压内核
#cd /usr/src
#tar xvzf ./linux-2.6.32
2) 配置并编译内核/模块
1. 配置前的清理工作
因为这里直接从官网下载的'干静'的内核源代码,固此步可以省略~,如果你的源代码被多次使用过,那么在编译之前可以有选择的运行以下三个命令中的一个.
make clean --> remove most generated files but keep the config
make mrproper --> remove all generated files + config files
make distclean --> mrproper + remove editor backup and patch files
2. 配置内核
配置内核有四种命令:
@ make config: 基于文本的最为传统的交互式配置界面,不推荐使用
# make menuconfig: 基于文本菜单的配置界面,推荐使用
$ make xconfig: 基于图形化的配置界面,要示QT被安装
% make oldconfig: 使用已有的配置文件(.config),但会询问新增的配置选项
这里我选择使用make menuconfig,进入界面后,不改动任何东东,Exit并Save.
3. 编译内核
#make bzImage
此过程费时比较长,大概20分钟左右(只是估计~),完成后将会在/usr/src/linux-2.6.32/arch/x86/boot/目录下生成bzImage文件.
在这里说一下为什么使用make bzImage 而不使用make zImage编译内核:因为我这里编译的是x86的内,在x86平台下,zImage只能用于小于512K的内核.但其它平台下并无区别.
4. 编译并安装内核模块
#make modules modules_install
此过程费时也是比较长的,完成后将会内核的模块将会被安装到/lib/modules/目录下.因为我使用的内核版本为linux-2.6.32,所以将会在此目录下看到一个2.6.32的文件夹.
有必要说一下:我这里是把编译,安装内核模块放到一个命令行中,也可以分开写make modules 和make modules_install.
make modules --> 此过程会把配置为'M'的选项的文件编译成.ko文件
make modules_install -->安装过程实际上就是把内核源代码中的内核模块剪切到/lib/modules/下.
3) 制作init ramdisk
#mkinitrd initrd-2.6.32 2.6.32
完成此命令后,将会在内核源代码中生成initrd-2.6.32文件.
在此对mkinitrd命令作解释:
语句: mkinitrd initrd-$version $version
initrd-$version 这里的名称可以随便取,但这样取的意义在于能与linux呼应.
$version 这个就不能随便取了,他就是刚刚在/lib/modules/目录下生成的对应linux版本号的文件夹.
4) 复制相应文件到/boot
1.复制并重命名/usr/src/linux-2.6.32/arch/x86/boot/bzImage到/boot/目录下
#cp /usr/src/linux-2.6.32/arch/x86/boot/bzImage /boot/vmlinuz-2.6.32
这里改名为vmlinuz-2.6.32主要是为了和linux中相应的文件保持一致.
2.复制/usr/src/linux-2.6.32/initrd-2.6.32到/boot/目录下
#cp /usr/src/linux-2.6.32/initrd-2.6.32 /boot/
5) 修改启动选项
修改/etc/grub.conf文件.
#cd /etc
#vim grub.conf
修改前:
修改后:
title MyLinux(linux-2.6.32) --> 这个将会在启动linux系统选择系统的时候出现
kernel /vmlinuz-2.6.32 --> 即/boot/vmlinuz-2.6.32
initrd /initrd-2.6.32 --> 即/boot/initrd-2.6.32
然后,reboot,启动时键入Enter,即会出现现在的画面
然后选择刚刚配置的内核就可以登录系统啦~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值