一、下载
http://www.kernel.org
二、解压
1.把下载好的内核放到/usr/src目录中,比如我下载的是linux-2.6.0-test8.tar.bz2
#mv linux-2.6.0-test8.tar.bz2 /usr/src
#tar jxvf linux-2.6.0-test8.tar.bz2
2.进入相应的目录编译和安装,进入内核选项设置
#cd linux-2.6.0-test8
#make mrproper
#make menuconfig
进入内核选项卡,M是以模快方式编译,*是直接编入内核
三、编译和安装内核
#make
#sudo make install
这个过程是编译和安装内核的过程,系统自动为我们做了哪些事?
1]系统会在/usr/src/linux/arch/i386/boot/目录中产生bzImage,并把bzImage复制为vmlinuz-2.6.0-test8到/boot目录中,并创建议vmlinuz-2.6.0-test8的链接vmlinuz;
2]在/boot目录中,系统会产生System.map-2.6.0-test8,以及创建它的链接System.map;
3]在/boot目录中,自动生为initrd-2.6.0-test8.img;
4]修改/etc/grub.conf 文件,加入了新内核的启动项。
四、编译和安装模快
#make modules
#make modules_install
五、设置/etc/grub.conf
为什么要设置这个呢?其实在编译和安装内核的过程中,系统已经自动把新内核的启动项直接添加到了/etc/grub.conf中。当我们不对/etc/grub.conf进行改动,直接启用新内核会发现VFS错误之类的提示。
下面的是我安装后新内核后,没有改动过的/etc/grub.conf
title Fedora Core (2.6.0-test8)
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=LABEL=/
initrd /boot/initrd-2.6.0-test8.img
title Fedora Core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
改动后的就是
title Fedora Core (2.6.0-test8)
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=/dev/hda8
initrd /boot/initrd-2.6.0-test8.img
title Fedora Core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
对比改动过的/etc/grub.conf,我们不难发现,我们在新内核2.x中,指定root的根分区所在的位置时,没有用标签LABEL=/,而是用的是真正的分区位置。
最后还有一点就是如果显示卡原来安装过驱动,就要在新内核中重新安装。比如我用的是NVIDIA的显卡,我下载的是LinuxSir.Org的下载区中,哈兄提供的打过补丁的NVIDIA的驱动。装上就OK了。
原文来自:http://doc.linuxpk.com/2279.html
另外还有一篇关于ubuntu内核编译方法:
http://hi.baidu.com/lianxi1999/blog/item/ff704624c3ec942ed507423b.html
分享到:
相关推荐
Make是Linux中最常用的自动化构建工具之一,它可以根据`Makefile`文件中的指令自动构建项目。`Makefile`是一个文本文件,包含了项目的构建规则和依赖关系。 - **编写Makefile**:为了能够使用Make来构建项目,首先...
### Linux实验十一 arm-Linux交叉编译环境搭建 #### 实验目的 本次实验的主要目标是让学生熟练掌握在Linux环境下构建arm-Linux嵌入式开发环境的过程,包括交叉编译器的搭建、安装与配置方法。通过实践操作,学生...
编译自己的Linux内核是一次深度技术探索之旅,它要求用户兼具理论知识和实践技巧。通过细致的规划、耐心的配置和严谨的测试,每位IT从业者都有机会打造出完全符合自己需求的定制化内核。这不仅是对个人技能的极大...
本文将深入解析Linux下编译.so库文件的过程,以及与之相关的静态库和动态库的基本概念,旨在为读者提供一个全面的理解。 ### 一、理解库文件类型 在Linux系统中,库文件分为静态库和动态库两大类,它们分别以`.a`...
《Linux1.0核心游记》通过详尽的注释和解释,为读者提供了一次穿越Linux早期历史的旅程,帮助他们理解这个开源项目是如何从最初的简单设计逐渐演变为全球广泛使用的操作系统之一。无论你是想提升C语言编程技巧,还是...
1. **了解Linux的发展历史、功能与特点**:通过对Linux起源及其发展历程的学习,理解它为何成为当今最流行的开源操作系统之一。 2. **动手安装Linux操作系统**:熟悉Linux安装过程,特别是Ubuntu这一广受欢迎的发行...
要安装和使用LIDS,首先需要从官方站点或镜像站点下载相应的LIDS补丁和与之匹配的Linux内核源码。然后,解压缩并编译内核,将LIDS补丁应用到内核源码中,再编译和安装新内核。最后,安装lidsadm工具并配置LIDS以满足...
在Linux操作系统中,C语言是核心开发语言之一,而GCC(GNU Compiler Collection)是用于编译C语言的主要工具。GCC不仅支持C,还支持C++、Fortran等其他编程语言。GDB(GNU Debugger)则是C语言开发过程中的重要调试...
Linux的最大特色之一就是其源代码完全开放,用户可以在 `/usr/src/linux` 目录下找到所有内核源代码。这一特性不仅允许用户深入了解系统的内部运作机制,还能够根据自身需求定制内核,甚至修改内核以实现特定功能。...
报告中提到的错误之一是由于缺少`linux-libc-headers-2.6.12.0.tar.bz`文件导致的编译失败,这可以通过确保所有必要的源码包都已下载来解决。此外,报告中还提到了其他未详述的编译错误,这些问题通常可以通过仔细...
### Linux 2.6.20.x 内核编译配置选项详解 #### 1. Code maturity level options —— 代码成熟度等级选项 这部分主要关注于开发阶段或尚未完全成熟的代码与驱动程序的选择。 ##### 1.1 Prompt for development ...
在Linux操作系统中,编译内核是一项关键任务,特别是对于嵌入式系统开发者而言,因为这涉及到硬件特性的定制和优化。本文将详细讲解如何在Linux环境下编译ARM系统内核,以S3C2410RP嵌入式实验箱为例。 首先,实验...
### Linux系列实验之[编译安装LAMP] #### 一、引言 随着互联网技术的发展,Web服务成为了信息交流和资源共享的重要平台。其中,LAMP(Linux + Apache + MySQL + PHP/Perl/Python)作为一套经典的开源解决方案,在...
### 内核链接vmlinux.lds.doc:深入解析 #### 一、内核布局概述 内核布局涉及两个主要方面:特定于体系结构的部分和与体系结构无关的部分。特定于体系结构的部分负责硬件初始化、内存配置等工作,之后将控制权交给...
Linux内核编译是一个将源代码编译成可执行文件的过程,在这个过程中,开发者可以根据需要选择不同的配置选项来定制内核,以满足特定系统的要求。Linux 2.6.19.x内核作为一个较早期的稳定版本,其编译配置选项非常...