`
zkgale
  • 浏览: 101601 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Ubuntu下的Linux内核编译

阅读更多

http://www.ownlinux.cn/2009/07/12/ubuntu-linux-kernel.html

 

 

(感谢群成员-系统框人的投递)

最初用Linux,我们需要满足的可能很小,后来,我们发现,我们也需要属于自己的Linux,我们想方设法优化自己的Linux,最后,到了要编译内核的地步

 

 1.下载内核源代码和编译将要用的软件

  下载内核源代码:http://www.kernel.org/ 注意选择F版,即完整版,下载到哪里,用什么工具都无所谓。

安装必要的软件:

sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot

sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt

 2.解压源代码

sudo tar xvfj linux-X.tar.bz2 -C /usr/src(之所以解压到这里,是为了以后安装驱动,X为版本号)

有人说要为源代码打上补丁,但据我所知,不用,因为不影响编译。

 

下面,进入目录,开始编译:cd /usr/src/linux-X

 3.开始配置内核

sudo make xconfig

图片1

然后就显示这个配置窗口了,是不是有点相Windows的注册表编辑器?

打钩的选项表示编译进内核(简称Y),空的选项表示不选择(简称N),圆点则表示编译成动态加载的模块(简称M)。Option菜单下的选项最好全选,以后会有用的。

具体配置请参考金步国先生翻译的资料:内核编译配置选项。
网址:http://lamp.linux.gov.cn/Linux/kernel_options.html

对于硬件驱动部分,最好先

sudo aptitude install hardinfo

然后

sudo lshw,显示你的硬件以及所需的模块(模块表示为,有的时候没有显示模块,那就要注意),Ctrl+F在配置窗口里打开搜索,搜索你module=或driver=的值,选成Y。

注意下列选项:

1、在“General setup”里面,有几项普通用户可以放心的去掉,
分别是:POSIX Message Queues 、Cpuset Support、Create deprecated sysfs files、Kernel->user space relay support (formerly relayfs) 

2、在“Block layer”里,假如没有2TB的硬盘,就去掉:Support for Large Block Devices 。

3、在“ Timer frequency ”里,默认是250Hz,最好选择1000Hz以提高gui响应

4、下列选项请慎重选择:
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
PCI support
PCI Express support 老式机器没有PCI-E设备的可以选N
ISA support 较新的新机器没有ISA设备,可以选N
MCA support 一般选N
NatSemi SCx200 support 一般选N
PCI Hotplug Support
Support for PCI Hotplug (EXPERIMENTAL) 如果没有PCI热插拔设备,选N

ATA/ATAPI/MFM/RLL support
Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬盘上,那么这里一定要选Y,选M都不行。否则启动时会出现“waiting for root file system”的提示而停滞不前。
SCSI device support 如果有SATA硬盘,就选Y
SCSI disk support 如果你的/boot放在SATA硬盘上,一定要选Y。
Character devices
I2C support 一般可以选Y或者M
Graphics support 不建议把显卡驱动编译进内核。,选M,编译成模块方便日后升级驱动。
VESA VGA graphics support 我的机器显卡是ati 3d lt,linux里面的型号定为mach64,我发现除了自己的显卡选项,一定要选择这项,编译进内核,如果不选,显示出现问题。如果你不确定的话,选上吧。
File systems
CD-ROM/DVD Filesystems
ISO 9660 CDROM file system support 一般选Y
DOS/FAT/NT Filesystems
VFAT (Windows-95) fs support 有FAT32分区就选Y吧
NTFS file system support 有NTFS分区就选Y吧
NTFS write support 如果想对 NTFS分区进行写操作,选Y

 

一切配置好后,点击保存(软盘图标,这个不说都知道),退出

 4. 开始编译内核

命令:

sudo make-kpkg clean fakeroot make-kpkg –initrd –append-to-version=xxx kernel_image

        上条命令的xxx可以自己选择,但不能是大写。

       下面的工作就是等待编译完成,时间长短要看你的配置和你的机器,如果配置有问题,可能要编译一天一夜……

        编译获得的软件包应该小于10 MB,大一点也没什么关系,如果超过20 MB,那就有问题了

 5.安装内核

编译得到的安装包在上级目录,所以,我们应该是/usr/src

鼠标点击包并且安装它

安装完成后和老内核比较一下大小:ls -l /boot/ 

此时千万不要删除老内核,因为出了问题还要找他呢

 6.重新启动验证它

建议这个时候把显卡驱动下载下来改成简单文件名以便于一会安装

 7.真出问题了

       据我的经验,第一次编译肯定要失败的,此时就再GRUB里选择老内核,在“新立得软件包管理器”里删除刚刚安装的内核,干掉它,然后重复上述操作(7以前的)

 8.安装显卡驱动

如果英特尔显卡或者ATI显卡的驱动你已经编译进内核了,恭喜你,下面的内容无视

重启之后如果你的内核成功启动,但是不能启动图形界面,那就该安装显卡驱动了

在恢复模式(即GRUB里新内核的第二个选现)里选择root,执行下列内容

cd /刚才下载的驱动程序的目录

sh  驱动程序文件名.run

如果显示没有找到源代码就

sh 驱动程序文件名.run –kernel-source-path=你编译内核的目录

我们应该是:sh 驱动程序文件名.run –kernel-source-path=/usr/src/linux-X

 

 最后

如果对某些选项很迷茫,可以看看HX大牛的配置

使用方法:cp /下载的目录/config ./.config 

config文件:config

参考http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=110461写成

由于作者是第一次写作,如有错误的地方,还请多多见谅并指正,谢谢!

分享到:
评论

相关推荐

    ubuntu下linux内核编译

    快速上手,准确编译,尽在ubuntu下linux内核编译,欢迎下载!

    ubuntu下linux内核编译详细说明、借鉴.pdf

    Ubuntu 下 Linux 内核编译详细说明、借鉴 本文讲解的是在 Ubuntu 环境下重新编译 Linux 内核的详细过程,实验的目的是学习重新编译 Linux 内核,理解掌握 Linux 内核和发行版本的区别。 一、Experiment Purpose ...

    ubuntu下linux内核编译详细说明、宣贯.pdf

    Ubuntu 下 Linux 内核编译详细说明与宣贯 本文将详细介绍 Ubuntu 下 Linux 内核编译的详细过程,包括实验目的、实验内容、实验步骤、实验结果和分析等。 实验目的:重新编译 Linux 内核,理解和掌握 Linux 内核和...

    ubuntu下linux内核编译详细说明、.docx

    ### Ubuntu 下 Linux 内核编译详解 #### 实验目的 - 学习重新编译 Linux 内核,深入理解 Linux 内核与发行版之间的区别。 #### 实验内容 在 Linux 操作系统环境中重新编译内核。具体内容包括: 1. **查找并下载...

    ubuntu下linux内核编译详细说明、[文].pdf

    Linux 内核编译详细说明 Linux 内核编译是 Linux 内核的核心组件之一,它负责管理计算机的硬件资源和提供系统服务。Linux 内核编译的过程包括下载内核源代码、配置内核、编译内核和模块、安装内核和模块、生成启动...

    ubuntu下linux内核编译详细说明、.pdf

    【Linux内核编译详解】 在Ubuntu环境下,重新编译Linux内核是一项深入理解操作系统核心机制的重要实践。本文将详细阐述这一过程,包括从下载内核源代码到配置、编译、安装以及验证新内核的全部步骤。 一、实验准备...

    ubuntu下linux内核编译详细说明、 (2).docx

    在Ubuntu环境下,重新编译Linux内核是一项技术性的任务,它涉及到理解内核与发行版之间的区别,以及如何在Linux操作系统中进行内核更新。本实验以Ubuntu 10.10和Linux内核2.6.35为基础,目标是下载并编译内核源代码...

    ubuntu下linux内核编译详细说明、 (2).pdf

    在Ubuntu系统下,重新编译Linux内核是一个深入了解操作系统核心工作原理的重要实践。这个过程涉及到获取内核源代码、配置内核选项、编译、安装以及更新启动引导。以下是详细的步骤和相关知识点: 1. **获取内核源...

    操作系统Linux内核编译实验报告.docx

    操作系统Linux内核编译是一项对Linux系统有深入理解的重要实践,它涉及到系统核心的构建、配置和安装。在这个实验报告中,我们主要关注的是在Ubuntu Kylin 13.04环境下,如何编译和安装一个新的Linux内核,并且如何...

    ubuntu安装及内核编译

    ubuntu安装及内核编译是指将ubuntu操作系统安装到计算机硬盘上,并编译 Linux 内核的过程。该过程需要选择合适的硬件环境、设置启动项、分区硬盘、安装ubuntu系统、软件升级、截图等步骤。同时,内核编译也需要下载...

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

    总的来说,这个实验报告涵盖了Linux内核编译的基本流程,以及如何向内核添加自定义系统调用。虽然这个过程可能对初学者来说有些复杂,但它提供了深入理解操作系统工作原理的宝贵机会。通过这个实践,我们不仅可以...

    Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行

    "Linux 0.11 内核编译及在 Bochs 2.6.9 中的调试运行" 本文主要讲述了在 Ubuntu 18.04 环境下编译 Linux 0.11 内核,并在 Bochs 2.6.9 中进行调试运行的过程。文章涵盖了编译 Linux 0.11 内核源代码、Bochs 2.6.9 ...

    Ubuntu下3.0.4内核编译

    这一过程不仅有助于熟悉内核编译的基本流程,还能让您体验到最新内核带来的性能提升和新特性。需要注意的是,在实际操作过程中可能会遇到各种问题,如编译错误、硬件兼容性问题等,建议查阅官方文档或社区资源寻求...

    linux内核编译,基于ubuntu系统

    Linux 内核编译与添加系统调用 Linux 内核编译是 Linux 系统的核心组件之一,负责管理系统的硬件资源和提供系统服务。Ubuntu 系统作为流行的 Linux 发行版,提供了方便的方式来编译和安装 Linux 内核。在本文中,...

    Linux 内核编译流程

    Linux 内核编译流程 Linux 内核编译流程是一个复杂的过程,涉及到多个步骤和文件,其中包括解压 Linux 内核源码包、设置交叉编译工具链、编译 Linux 内核源码、生成压缩镜像文件和设备树文件等。 1. 解压 Linux ...

    Ubuntu 安装编译内核步骤

    在 Ubuntu 9.10 下安装并编译新的内核是一项重要的系统管理任务,不仅能够为 9.10 版本提供更新的功能和支持,同时也适用于其他多个版本。这一过程包括了准备编译环境、下载内核源代码、配置内核选项、编译内核以及...

    在ubuntu12.04下编译内核

    ### 在Ubuntu 12.04下编译Linux内核的知识点详解 #### 前言 编译Linux内核是一项复杂但具有高度定制性的任务,尤其对于希望深入理解操作系统底层工作原理或需要针对特定硬件进行优化的用户来说至关重要。本文将基于...

    Linux内核移植与编译

    实验环境中,我们使用的是 PC:windows+virtualbox 下安装 Ubuntu12.10 开发板:S3C6410+linux2.6.10。实验目的包括了解 Linux 内核相关知识与内核结构、了解 Linux 内核在 ARM 设备上移植的基本步骤和方法、掌握 ...

Global site tag (gtag.js) - Google Analytics