编译内核实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一编译Linux内核
实验时间
6小时
实验目的
认识Linux内核的组成,掌握配置、编译、安装Linux内核的步骤。
实验目标
下载2.6.19或更新的Linux内核,配置该内核使其支持NTFS,并在新的内核中修改其版本为Linux NameTestKernel x.x.x,其中,Name是你的名字(汉语拼音);x.x.x是新内核的版本号,最后在你的机器上编译安装这个新内核。
背景知识
参见《Red Hat Enterprise Linux 4入门与提高》第20章。
实验步骤
1.验证gcc的可用:在你自己的工作目录下,编译链接运行Hello World程序。
2.在上下载指定的内核,或者查找更新的稳定版内核并
下载之。
3.准备相关工具。
提示:如当前运行的Linux内核是基于2.4版本的,则需要更新以下软件:
module-init-tools和mkinitrd。具体更新信息可参见下载内核源代码中的
Documentation/Changes这个文件。
4.把源代码解压缩至/usr/src中,最终形成/usr/src/linux x.x.x/目录(x.x.x是新
内核的版本号)。
提示:这里的注意点是路径的选择,一般要放在/usr/src/linux x.x.x/目录下面,以满足Makefile对路径设置的初始要求。
5.进入源代码的根目录,找到合适自己的内核配置方法,并按照实验目标对其
进行配置。
6.修改/usr/src/linux x.x.x/linux/include/linux/verson.h文件中的版本信息。
7.编译内核。
8.安装模块文件。
9.安装内核文件。
10.重新启动新内核。
实验结果
1.实验步骤1中,编译链接运行程序你下达了哪些命令?
2.实验步骤2中,你下载了哪个版本的内核文件?
3.实验步骤3中,你是否安装了相关工具?如安装,则写出安装过程。
4.实验步骤4中,你是用哪些命令解压缩内核文件的?
5.实验步骤5中,你用了哪种内核配置的方法?
6.你对实验步骤6中涉及的文件做了怎样的修改?
7.实验步骤7-9的过程,是否出现错误?如有,你是如何解决的?
8.观察你机器中GRUB的配置文件,它在安装完新内核后发生了哪些变化?
9.新内核启动过程是否成功?如有错误,是哪些错误?你是如何消错的?
实验报告
1. 引言
本次实验所要讨论的问题是编译并安装一个完全属于我自己的内核。
工作步骤:首先下载指定的内核,准备相关工具,然后解压缩源代码,配置内核,编译内核,安装模块文件以及内核文件,最后重新启动新内核。
结果:完成了实验步骤123456。
意义:这次试验让我初步认识了Linux内核的组成,能够使用简单的gcc,同时掌握了一些编译、安装内核的命令。
2. 问题提出
内核是一个操作系统的核心,在编译内核实验过程中我们需要解决以下几个主要问题:(1)准备相关工具,下载完新的内核之后需要先更新以下两个软件:module-init-tools和mkinitrd。
(2)解压新内核
(3)内核配置
(4)编译内核
(5)安装模块文件和内核文件
3. 解决方案
3.1 准备相关工具
下载module-init-tools 和mkinitrd,安装步骤见附录(1)。
3.2 解压新内核
将下载好的内核源码包和两个相关工具拷贝到/usr/src文件夹下,开始解压新内核,具体操作步骤见附录(2)。
3.3 内核配置
程序见附录(3),在给出的内核配置选项中大多数选择了默认,有几个选项必须选择,例如:
A.Loadable Module support选项中,选上"Module unloading"和"Automatic kernel module loading"这两项;
B.Device Drivers--->Block Device 中选上"Loopback device support";
Device Drivers--->Multi-device support (RAID and LVM) 处选"device mapper support";
Device Drivers--->Graphics support 一定要选上"Support for frame. buffer devices";
Device Drivers --->USB support --->选上"USB Mass Storage support";
Device Drivers--->Network device support--->Ethernet (10 or 100Mbit)---> <*> AMD PCnet32 PCI support;
3.4 编译内核、安装模块文件和内核文件
在/usr/src/linux-2.6.15.5目录下,执行以下命令即可:见附录(4)。
4. 实验结果
1. gedit hello.c
gcc -o hello hello.c
运行:./hello Hello world
2.我下载的内核版本:linux-
3.1.4
3.安装了相关工具,步骤见附录(1)
4.tar -jxvf linux-3.1.4.tar.bz2
在ubuntu下也可以直接右击解压缩
5. 我采用的内核配置方法:make menuconfig
这是文字模式的设置方式,它包含一个菜单以设置内核编译选项。
6. 对/usr/src/linux-3.1.4/Makefile进行修改:将NAME改为linux dingbin 3.1.4
9. 启动没有成功,不知道什么原因
5. 结束语
此次实验很多步骤老师已在实验步骤中有指导,所以实验的难度减少了很多,但是在实验中还是遇到了一些问题,例如:在配置内核时,要在/usr/src/linux xxx目录下才可以执行make命令等等。这些问题说明我们还很缺乏linux知识,还要在课下补充。另外编译内核后启动内核失败,查了一些资料仍未解决,以后还要多看看资料。
6. 附录
(1)3.1安装module-init-tools步骤:
在/usr/src目录下,依次执行:
#tar jvxf module-init-tools-3.2.tar.bz2 (解压)
#cd module-init tllos-3.2 (由/usr/src目录进入module-init-tools目录下)
#./configure --prefix=/
#make mokeold
#make all install
#./generate-modprobe.conf /etc/modprobe.conf