编译内核实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档