[关闭]
@1405010304geshuaishuai 2016-03-23T11:56:48.000000Z 字数 1642 阅读 544

Linux 系统分析实验报告

实验二 ---- Linux内核的编译
姓名 学号 班级
葛帅帅 1405010304 三班

一、 实验题目

在Linux环境下编译不同版本的内核。

二、 实验目的

  • 学会Linux内核的安装
  • 了解Linux系统启动过程

三、 实验平台

基于32位的Linux Mint 17.3的计算机

cmd-markdown-logo

图2-1 Linux Mint 17.3桌面环境

除了您现在看到的这个 Linux系统版本,您还可以前往以下网址下载:

Linux 系统官网

温馨提示:
 我们在实验一中已经讲述了如何安装Linux系统,如果你还不会安装赶紧get√

四、 试验要求

  • 在Linux 下,编译内核
  • 独立完成

五、 实验过程记录

1. 首先下载需要的linux内核源代码,可以到kernel.org去下载自己想要的内核源代码。

2.下载完成后进行解压,一般内核代码是位于/usr/src目录之下的,所以可以将你的内核源代码解压到这个目录下。

3. 解压完成之后,就可以看到linux内核源代码的目录了。

4.进入到内核源代码的目录之下,执行命令:

  1. make menuconfig

出现下列错误 如图2-2:
make-error

图2-2 make 出现错误

解决办法:如图2-3:
resolve-error

图2-3 解决make错误

成功解决错误后的运行结果:见图2-4
menuconfig

图2-4 make menuconfig界面

注意:这个命令需要在超级用户权限下执行,否则可能会报出一些莫名奇妙的错误。执行这个命令之后了,就可一看到下面的图片了:
这个界面中的一些选项是用来对编译时的linux内核进行配置的,我们可以根据需要来进行选择配置。

5.配置完成之后,选择Exit退出并保存配置就可以了。

6.接下来执行命令:

  1. make all -j4

cpu-cores

图2-5 CPU Cores

就可以编译内核了,make all就是将内核以及模块一起编译。后面的参数-j4表示,cpu要开启四个线程来编译内核。一般来说,每个cpu可以开启两个线程来编译内核,我的电脑是有两个cpu (如图2-5),所以开启了4个线程。
编译过程见图2-6:
make-all

图2-6 编译过程

编译是个漫长的过程,于是我就让它自己编译我先去吃饭然后去睡觉最后去上课,回来之后就ok了见图2-7。
make-successfully

图 2-7 编译成功

7.编译完成之后,就可以进行内核的安装了,我们将源代码目录下的arch/x86/boot/bzImage复制到/boot/下面,因为我下载的源代码版本为linux-4.1.20,所以复制的命令为:

  1. cp arch/x86/boot/bzImage /boot/vmlinuz-3.19.0-32-generic

order
根据自己的cpu类型,如是x86架构还是amd,或者是32位或64位,在相应的目录下寻找bzImage。

8.将源代码目录下的System.map复制到/boot目录下:

  1. cp /usr/src/linux-4.1.20/System.map /boot/System.map-3.19.0-32-generic

9.将源代码目录下的.config复制到/boot/目录下:

  1. cp .config /boot/config-3.19.0-32-generic

10.安装模块:

  1. make modules_install

安装过程如图2-8
installing

图2-8 installing

11.切换到/boot/grub/目录下:

  1. cd /boot/grub/

12.更新grub.cfg文件:

  1. update-grub2

之后,就可以重启电脑了,在previous version中就可以启动新编译的内核了,最后内核更新成功见图2-9。
well-done

图2-9 更新成功

六、 实验体会

一开始并没有成功,在make config出错,参照网上的方法没有解决无奈后来有重装了一个镜像,后来出现上述问题,然后在网上找到解决办法成功,告诉我们遇到困难并不可怕,可怕的是遇见困难而没有坚持下来找解决的办法。通过本次试验,了解了Linux系统运行的过程,虽然在配置系统那一步中遇到问题,毕竟一项一项配置确实很麻烦,于是直接将现有系统中的配置装载过去就省事很多。了解了更新内核的基本方法。

七、 实验评价

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注