ubuntu下linux内核编译详细说明、_第1页
ubuntu下linux内核编译详细说明、_第2页
ubuntu下linux内核编译详细说明、_第3页
ubuntu下linux内核编译详细说明、_第4页
ubuntu下linux内核编译详细说明、_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 1 / 6 一、实验目的 学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。 二、实验内容 在Linux操作系统环境下重新编译内核。实验主要内容: A.查找并且下载一份内核源代码,本实验使用最新的Linux内核 2.6.36。 B.配置内核。 C.编译内核和模块。 D.配置启动文件。 本次实验环境是Linux 2.6.35内核的环境下,下载并重新编译内核源代码( 2.6.36);然后,配置GNU的启动引导工具grub,成功运行编译成功的内核。 三、主要仪器设备(必填) Linux环境: utuntu 10.10,linux内核 2.6.35 待编译内核: linux 2.

2、6.36 2 / 6 四、操作方法和实验步骤 【1】下载内核源代码 从http: 2.6.36。 【2】部署内核源代码 打开终端,更改用户权限为root。具体做法是在终端输入sudo su,然后按提示输入密码。判断是否是root用户是使用whoami命令,若输出为root则已经切换到root账户。 输入mv linux- 2.6. 36.tar.gz /usr/src,目的是把下载的内核源代码文件移到/usr/src目录。 输入cd /usr/src切换到该目录下。 输入tar zxvf linux- 2.6. 36.tar.gz,目的是解压内核包,生成的源代码放在linux- 2.6.36目

3、录下。 输入cd linux- 2.6.36,切换到该目录下。 输入cp /boot/config-,然后按下Tab键,系统会自动填上该目录下符合条件的文件名,然后继续输入.config,目的是使用在boot目录下的原配置文件。 【3】配置内核 配置内核的方法很多,主要有如下几种: 3 / 6 #make menuconfig /基于ncurse库编制的图形工具界面 #make config /基于文本命令行工具,不推荐使用 #make xconfig /基于X11图形工具界面 #make gconfig /基于gtk+的图形工具界面 由于对Linux还处在初学阶段,所以选择了简单的配置内核方

4、法,即make menuconfig。 在终端输入make menuconfig,等待几秒后,终端变成图形化的内核配置界面。进行配置时,大部分选项使用其缺省值,只有一小部分需要根据不同的需要选择。 对每一个配置选项,用户有三种选择,它们分别代表的含义如下: <*>或*将该功能编译进内核 不将该功能编译进内核 M将该功能编译成可以在需要时动态插入到内核中的代码 本实验在make menuconfig后,把ext2和ext3文件系统编译进内核。如果用户是在虚拟机下编译的,那么一般要把SCSI设备编译进内核。不是在虚拟机下编译的也可以把它编译进去,不会有什么影响的。 【4】编译内核 这步

5、是时间最长的一个步骤,一般在3个小时左右。 编译内核只需在终端输入make,然后等待编译的完成。 【5】编译和安装内核模块 输入make modules_install,这步很快能完成。 【6】安装内核 4 / 6 输入make install 【7】生成启动 依次输入: sudo mkinitramfs -o /boot/initrd.img- 2.6.36 sudo update-initramfs -c -k 2.6.36 sudo update-grub2 /自动修改系统引导配置,产生grub.cfg启动文件。 五、实验结果和分析 把内核源代码移动到目录/usr/src,如下图 在成功

6、执行语句 sudo mkinitramfs -o /boot/initrd.img- 2.6.36 sudo update-initramfs -c -k 2.6.36 后的boot目录,如下图 在成功执行语句 sudo update-grub2 后grub.cfg文件中增加了新内核的启动项,如下图 在所有的实验步骤成功完成后,重新启动,可以发现在启动项中多了两项,分别为Linux 5 / 6 2.6.36模式和Linux 2.6.36 recovery模式,选择Linux 2.6.36模式,进入新的内核,若在启动过程中没有跳出错误提示,表示已经成功了。进入系统后,打开终端,输入uname -

7、a,输出如下图,表明现在已经是 2.6.36的内核了 六、讨论、心得 1、本次实验,共编译了两次内核,在第一次编译时,对内核的配置这块没有把ext2和ext3文件系统编译进内核,导致了编译完的内核无法成功启动。在第二次编译中,经过仔细的对内核的配置,把ext2和ext3已经SCSI编译进内核,终于成功了。这让我觉得内核编译后能否成功启动的关键是内核的配置。 2、编译后的每一个步骤执行后,可以通过查看相关目录是否生成了预期的文件来判断过程的正确与否。 3、Linux通过在系统引导后从/boot目录下读取内核映像到内存中来完成启动。 4、initrd.img是Linux启动过程中很重要的一个文件,如果你编译内核时将一部分功能编译为可加载模块。如果系统的一些设备的驱动编译为可加载模块,那么启动时如果没有指定INITRD=/path_to_initrd.img,那么系统启动或者会失败,或者启动后会有设备无法使用(像网卡或者其它设备)。 如果没指定initrd.img或者指定的initrd.img中并没有包含正确的驱动模块,则系统启动时会挂起,并报告kernel panic: VF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论