`
bruce.lu
  • 浏览: 33933 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

重编译Linux内核

阅读更多

I've been hankering to rebuild the core of Linux, seemed incredible to myself. But now let's kick off.

准备阶段:

 备份旧有核心#cp /boot/vmlinuz /boot/vmlinuz.2.2.12
   取得新核心压缩档(ex.linux-2.2.15.tar.gz),或修补程序文件(Patch)(ex.patch-2.2.13.gz, patch-2.2.14.gz, & patch-2.2.15.gz)
   备份/usr/src/linux一般linux只是一个符号链接,你可以直接将之移除
   将压缩档在/usr/src下解开#tar zxvf linux-2.2.15.tar.gz#mv linux linux-2.2.15#ln -s linux-2.2.15 linux
   Change Directory To /usr/src/linux
  
   重编核心的步骤 (以2.2.12升级至2.2.15为例)


I. make mrproper在linux目录下执行"make mrproper",此一步骤目的在清除不稳定目的档(.o),确保核心重编时顺利成功。这个步骤在修补核心(patch)后重编核心时,为重要且必要。


II. make config (make menuconfig, make xconfig)这是重编核心时极重要的一个步骤,你必须针对系统现况,回答上百个问题,错误的选项可能导致核心无法使用。选像设定方式有三种:"make config"、"make menuconfig"及"make xconfig";"make config"采交谈式一问一答;"make menuconfig"在文字模式下,采选单方式设定核心选项;"make xconfig"则是在图形模式(X-Window)下的选单设定模式。当你完成冗长的设定程序之后,如果未指定设定内容储存档名,你的设定将会被储存在./usr/src/linux/arch/i386/defconfig中,下次重编核心时,这就是你的预设(default)选项来源。
III. make dep这个步骤帮你设定所的附设档案,确保include file的相依关系。


IV. make clean清除旧系统核心与driver,如果你第一次重编核心,你可以略过这个步骤。


V. make zImage编制一个新的核心,如果你的心核心大小超过640KB,你必须改用"make bzImage"。如果你希望编制新核心的过程中,顺带制作一个开机片,你可使用"make zdisk" or "make bzdisk"(if new kernle is larger than 640KB)。这个步骤所需时间约20~40分钟不等(or longer),端视你系统CPU与RAM数量而定。编译成功后,新核心位置在/usr/src/linux/arch/i386/boot/zImage or /usr/src/linux/arch/i386/boot/zbImage。


VI. 改变系统使用之核心#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.2.15#cd /boot#ln -s /boot/vmlinuz-2.2.15 /boot/vmlinuz###请确定你原有核心以备份。(如前置作业所述)如果你为使用lilo开机,你必须在编译核心时制作开机片,或直接用"dd"将核心加载磁盘中,以便开启新系统。
VII. 编译系统模块#make modules#make modules_install你必须执行此一步骤,否则你的心核心将无法使用你的旧模块。新的模块将会被安装至/lib/modules/2.2.15目录下。


VIII. 更新System.map#cp /usr/src/linux/System.map /boot/System.map-2.2.15#rm /boot/System.map#ln -s System.map-2.2.15 System.map每一版本的系统核心都有其特有的系统功能映像文件System.map,以定义该版核心的所有功能信息。


IX. 编辑lilo.conf,保留旧核心开机选项没有人可以保证编辑的新核心一定可以开启系统,保留旧核心开机选项是一个保险做法。你的lilo.conf修改之后大约会像以下的内容:
  boot=/dev/hda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  default=linux
  
  image=/boot/vmlinuz
  label=linux
  read-only
  root=/dev/hda1
  
  image=/boot/vmlinuz-2.2.12-20
  label=linux.old
  read-only
  root=/dev/hda1
  执行过lilo -v -v -v之后你就可以准备重新开启新核心了。(By Reboot System)


X. uname -a 
  检查新核心版本。(After Reboot)
  [root@nmc ~]# uname -r
  2.2.15 --> Kernel is now 2.2.15

分享到:
评论

相关推荐

    linux内核编译原理

    linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...

    编译Linux内核及调试内核模块

    编译Linux内核及调试内核模块 本篇文章主要讲述了编译Linux内核及调试内核模块的过程,以帮助读者掌握编译内核调试内核模块的基本方法。下面是文章中所涉及的知识点: 1. 获取内核源码:文章中讲述了如何从网上...

    浅谈Linux内核的重编译

    ### Linux内核重编译详解 #### 一、前言:Linux内核的魅力与灵活性 Linux内核,作为操作系统的核心,不仅提供了用户程序与硬件之间的桥梁,还支持多任务、虚拟存储、共享库函数等功能,使得Linux成为了一个成熟且...

    编译Linux内核

    编译Linux内核 编译Linux内核是Linux操作系统课程设计实验的一部分,目的是学习重新编译Linux内核,理解并掌握Linux内核和发行版本的区别。以下是编译Linux内核的详细知识点: 一、实验目的 * 了解Linux内核的...

    Linux内核编译与裁剪

    编译Linux内核是一个复杂但重要的过程,它涉及到多个步骤: - **配置内核**:使用`make menuconfig`或`make xconfig`等工具来配置内核。这些工具提供了图形界面或文本界面,帮助用户选择需要的功能。 - **交叉...

    编译Linux内核的错误汇总

    "编译Linux内核的错误汇总" 在编译Linux内核的过程中,可能会遇到各种错误,这些错误可能会导致编译失败。为了帮助大家更好地编译Linux内核,本文档总结了一些常见的错误和解决方法。 错误一:编译2.6.21内核时...

    自己动手编译Linux内核

    自己动手编译Linux内核是一项对系统有深入了解的高级任务,它可以帮助你定制内核以适应特定的需求,去除不必要的功能,提升系统效率,或者添加新的硬件支持。以下是一些关于如何编译Linux内核的关键步骤和注意事项:...

    linux内核编译实验报告

    - **编译Linux内核**: 执行`make bzImage`命令编译内核映像文件`bzImage`,并使用`make modules`和`make modules_install`命令编译并安装内核模块。 - **修改Grub配置**: 修改Grub配置文件以支持新编译的内核,确保...

    linux内核下载,【转载】菜鸟编译Linux内核参考.pdf

    Linux 内核下载和编译指南 Linux 内核下载是获取 Linux 内核源码的第一步,在这个过程中,我们可以从官方网站或其他镜像站点下载最新的 Linux 内核版本。下载完成后,我们可以开始编译内核,编译过程需要注意一些...

    windows下面编译linux-0.11内核

    为了编译Linux内核,你需要安装MinGW32的完整版,包括gcc、make以及其他必要的库和工具。确保你的MinGW32安装了g++编译器,因为内核源码主要是用C++编写的。 接下来,我们需要**Linux 0.11** 的源代码。在解压提供...

    linux重编译

    ### Linux内核重编译全解析 在深入探讨如何重编译Linux内核之前,我们先来了解一下何为内核及为何需要重编译。Linux内核是操作系统的核心部分,负责管理系统的硬件资源,提供基本服务给其他程序,并且作为硬件和...

    编译linux内核的方法.pdf

    ### 编译Linux内核的方法:详尽指南 #### 核心知识点概览: 1. **编译环境的搭建**:包括安装必要的编译工具、库文件和配置工具。 2. **内核源代码的获取**:通过Ubuntu的源安装或从`kernel.org`下载最新内核版本...

    操作系统实验报告-编译linux内核

    本实验报告详细记录了在Fedora 10系统上编译Linux内核2.6.27.5的过程,旨在让学生理解内核构建流程,并深入学习Linux内核与发行版的关系。 实验的第一步是准备环境,这包括安装Fedora 10和必要的开发工具,如GCC和...

    linux内核编译文档

    Linux 内核编译文档 本文档旨在为 Linux 新手提供一个详细的 Linux 内核编译指南,帮助他们从基础开始学习 Linux 系统。编译内核对于 Linux 新手来说可能有一些困难,但通过本文档的指导,读者可以轻松地完成内核...

    Linux内核编译实验

    4. **了解Linux内核的编译过程**:学会如何编译Linux内核,理解编译过程中的关键步骤及其背后的原理。 5. **掌握如何将自定义代码加入Linux内核结构**:学会如何将自己的代码整合进内核,使其成为内核的一部分。 ##...

    Linux内核编译步骤

    Linux 内核编译步骤 Linux 内核编译是一个复杂的过程,需要了解 Linux 内核的结构和编译过程。下面是 Linux 内核编译的详细步骤: 步骤 1: 下载 Linux 内核源代码 在编译 Linux 内核之前,需要下载 Linux 内核的...

    Linux 内核源码编译

    下面将详细讲解Linux内核源码编译的过程、重要性以及相关知识点。 首先,我们要明白为什么需要编译内核源码。默认的内核可能无法满足特定硬件或软件的需求,比如新的硬件驱动支持、优化性能或添加安全特性。通过...

    OMAPL138编译Linux内核方法

    ### OMAPL138编译Linux内核方法详解 #### 1. 编译内核 根据提供的文档信息,本文将详细介绍如何针对OMAPL138平台编译Linux内核的方法。OMAPL138是一款高性能的嵌入式处理器,支持多种内核版本。本文档将涵盖Linux ...

    linux下编译linux内核_内核_linux内核_怎样编译内核_

    总之,编译Linux内核需要对操作系统有深入的理解,并且需要耐心和细心。尽管过程中可能会遇到挑战,但这也是提升技能和解决问题能力的好机会。遵循正确的步骤,解决遇到的问题,你将能成功编译出适合你需求的定制化...

Global site tag (gtag.js) - Google Analytics