`
scutcs
  • 浏览: 19157 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

华工 linux 作业 Ubuntu9.04 编译 linux2.6.18 总结(待续)

阅读更多

编译Linux内核,首先需要安装linux,这里选择Ubuntu9.04发行版。

有两种安装方式,1 双系统 2 xp vm虚拟机里装.

由于双系统ubuntu直接运行在硬件上,各机硬件的差异会导致,自己编译好内核安装后启动中出现各种各样的错误,所以推荐Vmware虚拟机安装,由于硬件都是vm虚拟出来的,比较统一,比较容易避过硬件差异带来的错误。

Vmware安装Ubuntu9.04,新建一个虚拟机,一路默认下去,Vmware为虚拟机默认配置硬件如下:

为了新编译内核顺利启动,尤其内核出现

安装好Ubuntu9.04开始准备编译内核,内核编译步骤如下:

三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。

如果是第二次或者是第n次编译,那么一定要执行。注意这条命令会删除上一次配置好的.config文件,即上次make menuconfig的配置项,需要先备份.config文件,执行完命令在还原.config文件。


相关命令如下:
代码:
$ sudo make mrproper

四、开始配置内核选项。
相关命令:
代码:
$sudo make menuconfig
配置用到的键只有几个,esc退出菜单;空格改变选项状态;光标键上下左右移动,回车选定。
选项意义:M是编译成可以随时加入的模块,*是编译进入内核,空就是不要。
配置选项非常多,具体配置可以参考金步国先生翻译的资料:Linux 2.6.19.x 内核编译配置选项。
参考网址:http://lamp.linux.gov.cn/Linux/kernel_options.html
为了一次成功,请大家遵循一个原则,如果你自己使用的内核已经选用了某个选项,如果你没用充分的理由,不要随便改动。这样虽然内核不那么精简,但是不容易出现问题。
我们可以精简的部分是硬件模块部分,对于自己没有的硬件要毫不犹豫的清除。
如果你很执着,或者你有洁癖,你也可以一项项对过去,按照金步国先生的资料描述去选择基本上没有问题。

 

六、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
相关命令:
代码:
$sudo make-kpkg clean   这条命令好像不要超级权限,很多资料上说要,不过这不是原则问题。
$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers
上述命令中的dell1400可以用自己喜欢的字符代替,最后的字符一定是数字.
输完上述命令回车之前,建议大家把浏览器还有别的运用程序都关掉,机器开始的工作比较艰苦。我的机器大概十几分钟。
七、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb两个文件,如果你不搞开发的话,只要安装内核就可以,头文件以后要用的时候再说。
安装相关命令:
代码:
$ cd ..
$ sudo dpkg -i   linux-image-(按tab键)
文件名很长,如果不用tab自动补足是不可能的,tab键万岁。
安装完成后和老内核比较一下大小
代码:
$ ls -l /boot/
八、重新启动验证新内核。
代码:
$ sudo reboot

 

上面的都是标准步骤,但是ubuntu9.04在编译linux2.6.18内核时,在第4步编译的过程中,会遇到2个问题,解决办法如下:
1、scripts/mod/sumversion.c:384: error: ‘PATH_MAX’ undeclared (first use in this function)
解决办法:在源码linux2.6.18/scripts/mod/sumversion.c 中加入
#include <limits.h>
就解决了这个问题。
2 kernel/built-in.o: In function `timespec_add_ns':
/usr/src/linux/include/linux/time.h:173: undefined reference to `__umoddi3'
/usr/src/linux/include/linux/time.h:173: undefined reference to `__udivdi3'
这个问题你由于Ubuntu9.04自带的gcc版本为4.3,而linux内核编译以gcc-3.4编译为好。采用降低Gcc版本解决了这个问题。具体降低方法:which gcc可以看到gcc在哪个目录下(/usr/bin/gcc),然后用aptitude search gcc可以从源中查看有哪些安装包,找到了gcc-3.4,号称这个是最稳定的。于是我就安装这个。apt-get install gcc-3.4就安装好了。然后删除老的gcc连接rm gcc,它是指向gcc4.3的。 然后用ln -s gcc-3.4 /usr/bin/gcc建立新连接即可。这样就将gcc版本降低了.

 

 

到这里编译内核成功了,安装内核成功了,但是新安装的内核还不一定能够启动,主要是硬盘的原因。
新内核不能成功启动,原因排查:
在ubuntu选择菜单中,选择新安装的内核,按 e ,将进入编辑界面,在kernel 那一行上,继续按e, 将 ro queit splash 中的queit splash去掉,回车返回前一个界面,按b启动,这样如果内核不能成功启动就可以看到错误提示信息,将提示信息搜索,就能得到解决方法。
 

 

 

 

 

分享到:
评论

相关推荐

    在ubuntu 9.04上安装VMWareTools步骤 -上海嵌入式家园-开发板商城

    ### 在Ubuntu 9.04上安装VMware Tools的详细步骤及注意事项 #### 一、背景介绍 在虚拟化环境中,为了提高宿主机与虚拟机之间的兼容性和性能,通常需要在虚拟机内部安装一个名为VMware Tools的软件包。本文将详细...

    硬盘安装ubuntu9.04过程详解

    标题中的“硬盘安装Ubuntu 9.04过程详解”指的是在个人计算机的硬盘上安装Linux Ubuntu 9.04操作系统的详细步骤。Ubuntu 9.04,代号“Jaunty Jackalope”,是Ubuntu发布的一个较早的版本,于2009年推出,它提供了对...

    Ubuntu 9.04 安装过程札记

    在本篇文章中,我们将深入探讨如何安装Ubuntu 9.04操作系统,这是一款基于Debian的Linux发行版,因其稳定性、易用性和强大的开源社区支持而受到广大用户的喜爱。Ubuntu 9.04,代号Jaunty Jackalope,发布于2009年,...

    ubuntu9.04安装全体验

    Ubuntu 9.04是Ubuntu Linux发行版的一个重要版本,发布于2009年,它引入了许多新特性和性能提升,旨在提供更快速、更稳定的用户体验。 在安装过程中,用户首先会遇到的是下载Ubuntu 9.04的ISO镜像文件,这通常可以...

    ubuntu 9.04基本命令

    对于学习ubuntu 9.04的童鞋很有用滴

    完美的服务器--ubuntu 9.04

    Ubuntu 9.04 ISPconfig设置

    ubuntu9.04更新源

    ### Ubuntu 9.04 更新源配置详解 #### 背景介绍 Ubuntu 9.04(代号Jaunty Jackalope)是2009年4月发布的Ubuntu版本之一,它提供了许多功能改进和性能提升。随着时间的推移,用户可能会遇到软件包过时或下载速度慢的...

    Ubuntu9.04下安装SimpleScalar

    ### Ubuntu9.04下安装SimpleScalar的知识点详解 #### 1. 安装环境 - **操作系统**:Ubuntu 9.04 - **GCC版本**:4.3.3(该版本为系统自带) #### 2. 软件下载 - **下载地址**:访问官方网站 ...

    colinux的Ubuntu 9.04的镜像文件

    Ubuntu-9.04-1gb.7z,是colinux下的Ubuntu 9.04的镜像文件~

    Linux操作系统Ubuntu 9.04正式版发布.pdf

    标题提及的"Linux操作系统Ubuntu 9.04正式版发布"是本文的核心内容,Ubuntu 9.04,代号Jaunty Jackalope,是一款由Canonical公司开发的开源Linux发行版。该版本的主要特点包括更快的启动速度,据称大约只需25秒,...

    ubuntu9.04 linux内核编译和添加系统调用的实验报告

    在本实验报告中,我们将深入探讨如何在Ubuntu 9.04操作系统上编译Linux内核版本2.6.34,并添加自定义的系统调用。Linux内核是操作系统的核心部分,负责管理硬件资源、提供系统服务以及调度进程。系统调用是用户空间...

    Ubuntu9.04Linux视频教程23讲

    教程名称:Ubuntu 9.04 Linux视频教程23讲课程目录:【】01_简介【】02_安装篇_CD【】03_安装篇_Live.USB【】04_安装篇_LiveUSB安装【】05_安装篇_wubi安装【】06_基本命令篇_目录结构【】07_基本命令篇_ls【】08_...

    OpenERP Installing Ubuntu9.04

    OpenERP Installing Ubuntu9.04

    新手windows下硬盘安装Ubuntu 9.04

    - **Ubuntu 9.04** 是一款基于Debian的开源操作系统,提供了一个用户友好的图形界面以及丰富的应用软件,对于希望尝试Linux系统的Windows用户来说是一个不错的选择。 - **Windows** 系统是目前市场上最广泛使用的...

    使用Crosstool-0.43在ubuntu9.04上制作arm交叉编译器arm-linux

    ### 使用Crosstool-0.43在Ubuntu 9.04上制作ARM交叉编译器ARM-Linux #### 一、概述 本文档详细介绍了如何在Ubuntu 9.04环境中使用Crosstool-0.43构建ARM交叉编译器ARM-Linux的过程。构建交叉编译器是一项重要的...

    ubuntu9.04翻译软件stardict词典

    标题中的“ubuntu9.04翻译软件stardict词典”指的是在Ubuntu 9.04操作系统上使用的Stardict翻译软件。Stardict是一款开源的、强大的词典和翻译工具,它支持多种语言和词典格式,允许用户在Linux环境下进行高效的词汇...

    ubuntu9.04 服务器版官方文档

    ### Ubuntu 9.04 服务器版官方文档知识点...通过以上详细解析,可以看出 Ubuntu 9.04 服务器版官方文档不仅覆盖了系统的基本安装与配置,还深入探讨了许多高级主题和技术细节,是 Linux 初学者及有经验用户的宝贵资源。

    ubuntu 9.04 安装配置优化全记录

    ubuntu 9.04 安装配置优化全记录

Global site tag (gtag.js) - Google Analytics