将Ubuntu 10.04自带2.6.32内核升级成3.0内核图文教程

1、完成如下实践工作,并截屏说明实践步骤:1)下载安装虚拟机VMWare Workstation;2)在虚拟机中安装Linux2.x ;3)通过自行编译,将Linux 2.x内核升级到Linux 3.x。

1)     安装VMware Workstation 11.1.0。

2)     在虚拟机中安装Ubuntu 10.04 LTS (ubuntu-10.04-desktop-i386.iso),其Linux内核版本为2.6.32。

3)     从kernel.org下载新版3.0.0内核,在Ubuntu10.04上编译后安装,从而升级到3.0.0内核。

2、对1题的3)完成的同时,回答如下问题:

1)  内核主要源代码目录包括什么,每个目录下主要实现什么管理?

/arch:目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

/documentation:目录下是一些文档,没有内核代码,可惜都是English的,是对每个目录作用的具体说明。

/drivers:目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于/drivers/sound;block 下为块设备驱动程序,比如ide(ide.c)。如果你希望查看所有可能包含文件系统的设备是如何初始化的,你可以看/drivers/block/genhd.c中的device_setup()。它不仅初始化硬盘,也初始化,因为安装nfs文件系统的时候需要网络。其他:如, Lib放置核心的库代码; Net,核心与网络相关的代码; Ipc,这个目录包含核心的进程间通讯的代码;
Fs,所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统,例如fat和ext2。

/fs:目录存放Linux支持的文件系统代码和各种类型的文件操作代码。每一个子目录支持一个文件系统,如ext3文件系统对应的就是ext3子目录

/include:目录包括编译核心所需要的大部分头文件,例如与平台相关的头文件在/include/linux子目录下,与 intel cpu相关的头文件在/include/asm-i386子目录下,而/include/scsi目录则是有关scsi设备的头文件目录。

/init:目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。

/ipc:目录包含了核心进程间的通信代码。

/Kernel:内核管理的核心代码,此目录下的文件实现了大多数linux系统的内核函数,其中最重要的文件当属sched.c;同时与处理器结构相关代码都放在/arch/*/kernel目录下。

/lib:目录包含了核心的库代码,不过与处理器结构相关的库代码被放在/arch/*/lib/目录下。

/mm:目录包含了所有独立于 cpu 体系结构的内存管理代码,如页式存储管理内存的分配和释放等。与具体硬件体系结构相关的内存管理代码位于/arch/*/mm目录下,例如/arch/i386/mm/Fault.c 。

/net:目录里是核心的网络部分代码,实现了各种常见的网络协议,其每个子目录对应于网络的一个方面。

/scripts:目录包含用于配置核心的脚本文件等

/block:块设备驱动程序I/O调度。

/crypto:常用加密和散列算法(如AES,SHA等),还有一些压缩和CRC校验算法。

/security:主要包含SELinux模块。

/sound:ALSA,OSS音频设备的驱动核心代码和常用设备驱动。

/usr:实现了用于打包和压缩的cpio等。

2)  内核升级必要的软件包需要那些?

编译内核用到:gcc, libncurses5-dev

下载内核文件用到:wget

解压缩内核源代码用到:tar

3)  编译内核的步骤是什么?

第一步:Configure

sudo make menuconfig

上面的命令用来配置Linux内核,一旦执行了该命令,屏幕将会弹出一个窗口,里面都是菜单列表,我们可以选择新配置选项,如果不熟悉该配置的话,我们只需要进入File systems菜单项,来确认ext4文件系统被选中,如果没有选中的话,选中它,并且保存配置。

第二步:Compile

sudo make

上面的命令用来编译Linux内核,这个步骤比较花时间,大概用了40-50分钟。

第三步:Install

sudo make modules_install install

上面的命令用来将Linux3.0内核安装到系统中,该命令将会在/boot/目录下创建一些文件,并且会在grub.cfg文件中建立一个启动项,我们可以检查一下该启动项是否被正确创建,/boot/目录下的文件如下:

System.map-3.0.0

vmlinuz-3.0.0

initrd.img-3.0.0

config-3.0.0

重启系统,我们会进入新的Linux3.0内核的Ubuntu系统中。

4)  在编译过程中通常会遇到的问题有哪些,解决的办法是什么?

问题1:没有足够的权限,这是由于当前用户权限不够引起的,在Ubuntu上可以通过在命令前面加入sudo来按照root权限执行命令。

问题2:安装软件包失败,这是由于ubuntu官方网站在国外,国内一般不容易连接成功,这时可以通过替换Ubuntu源来解决,源的配置文件为/etc/apt/sources.list,将此文件中的内容替换成国内的源地址即可。本文中替换的源为网易Ubuntu10.04源:


deb http://mirrors.163.com/ubuntu/ lucid main universe restricted multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid main universe restricted multiverse

deb http://mirrors.163.com/ubuntu/ lucid-security universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ lucid-security universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-updates universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-proposed universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ lucid-proposed universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ lucid-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/ lucid-updates universe main multiverse restricted

5)  你在编译过程中实际遇到了什么问题,最后的解决办法是什么?收获是什么?

问题1:下载内核的命令:wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2,经常下到一半就连接中断。

我的解决办法是在Windows下采用迅雷软件进行内核下载,然后通过samba共享文件机制把内核文件共享到Ubuntu中。

问题2:内核编译速度比较慢。

我的解决办法是在VMware中为虚拟机分配6个CPU核和3GB内存,这样虚拟机可以6个线程一起进行内核编译,从而显著加快速度。

收获:

经过这次Linux内核升级实验,我对Linux内核的编译、工作机制有了更好的了解,对我们今后开展Android内核的安全加固项目提供了有效指导。

时间: 2024-07-30 10:15:33

将Ubuntu 10.04自带2.6.32内核升级成3.0内核图文教程的相关文章

【转】Ubuntu 10.04 LTS 的窗口控制按钮从左上角调整到右上角

原文网址:http://www.linuxidc.com/Linux/2010-05/26111.htm 升级到Ubuntu 10.04后最大的问题,是最小最大和关闭按钮,放到了左边.这叫Ubuntu的MAC化.这给操作带来了很大的不便.大部分的theme的窗口关闭按钮都放到左边去了.每次有窗口操作,不得不左右寻找,降低了效率. 改改即可: 窗口功能按钮的位置取决于一个配置文件.我们将使用图形界面“gconf-editor”修改这个配置文件. 按下“Alt + F2”组合键,在弹出的运行应用程序

在虚拟机下安装ubuntu 10.04 64bit,并修改root用户密码

实验的环境: 笔记本是:HP 虚拟机:VMware  9 准备安装的操作系统: ubuntu 10.04  64bit 实验步骤: 一:让自己的hp支持虚拟化技术(由于ubuntu 10.04  64bit需要CPU支持虚拟化技术,所以要通过bios来更改电脑的默认设置) 启动时根据提示按 Esc 键 按 F10 键以配置 BIOS 使用箭头键滚动到"System Configuration" 选择"Virtualization Technology",然后按 En

Ubuntu 10.04下架设流媒体服务器

Ubuntu 10.04下架设流媒体服务器 个人建议:使用DarwinStreamingSrvr5.5.5,因为DarwinStreamingSrvr6.0.3安装过程中有很多问题需要解决! 目前主流的流媒体服务器有微软的windows media server.RealNetworks的Helix server和苹果公司的Darwin Streaming Server. 微软的windows media server只能在windows 2000 server和windows 2003 ser

Using iSCSI On Ubuntu 10.04 (Initiator And Target)

This guide explains how you can set up an iSCSI target and an iSCSI initiator (client), both running Ubuntu 10.04. The iSCSI protocol is a storage area network (SAN) protocol which allows iSCSI initiators to use storage devices on the (remote) iSCSI

Ubuntu 10.04——boa服务器的搭建

 声明:自从第一次发表博文不知不觉过去了好久了,非常抱歉没能把自己的东西分享出来,但是由于上家公司本月初裁员,所以致使学的新东西成了半成品,无奈又换了一家,目前已工作三周了,自己也很想写博文分享知识,但是学的东西太杂,有都是半成品,确实不知道以什么为切入点,目前这家公司最近一直在做项目,我想先一点点的写吧,虽然我的东西能在网上找到很多样本,但是我感觉有的不全,还是自己总结的东西比较靠谱,希望对大家有所帮助,如果有新问题,我会不断更新的,好了,废话不多说了...             Ubunt

ubuntu 10.04 vpn搭建

1.环境: cat /etc/issue Ubuntu 10.04.4 LTS \n \l 2.安装 apt-get install pptpd3.查看 ps  aux |grep  pptp root     18778  0.0  0.0   1980   648 ?        Ss   01:33   0:00 /usr/sbin/pptpd 4.配置/etc/pptpd.confsudo vim /etc/pptpd.conf添加下面两行(在配置文件的最后取消注释修改IP即可)loc

分布式进阶(三)Ubuntu 10.04 之JDK安装

Ubuntu 10.04 之JDK安装 1.从官网 (http://www.Oracle.com/technetwork/java/javase/downloads/jdk6u35-downloads-1836443.html)下载安装文件(如:jdk-6u45-linux-x64.bin).复制该文件到/usr/lib/java下,如果没有java文件夹,则创建它.sudo mkdir  -p  /usr/lib/jvm/java 安转文件默认是没有执行权限的,所以首先第一步是要将安装文件赋予

分布式进阶(四)Ubuntu 10.04下安装Tomcat 6

Ubuntu 10.04下安装Tomcat 6 1,下载apache-tomcat6, 地址链接:http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.28/bin/ 选择Ubuntu Linux适用版本,即apache-tomcat-6.0.28.tar.gz文件, 2,复制安装文件到/usr/local/目录下面,在控制台console输入命令, sudo cp /home/shq/桌面/apache-tomcat-6.0.28.tar.gz

ubuntu 10.04 安装arm交叉编译器

家里有一台cotext-A9(armv7-a) 的盒子,现在不用了, 一直想着废物利用.于是想怎么为这盒子编译程序. 目标机器: [email protected]:/# uname -a Linux routon-h1 2.6.34 #3 SMP Mon Oct 29 19:01:06 CST 2012 armv7l GNU/Linux 装了一台 ubuntu 10.04 X86 的虚拟机 [email protected]:~# uname -a Linux ubuntu 2.6.32-38