Linux内核编译步骤

编译之前,一定要查看,内核源码中,Documentation/Changes文件,查看内核编译时,需要的运行环境,如果不适合编译和有可能失败。

由于2.4和2.6内核的编译方法不是完全一样,所以我们分开两种情况讨论

编译2.4内核:                                                         编译2.6内核

第一步:make mrproper -清理内核源代码树(清理垃圾信息)             make mrproper

第二步:make menuconfig   --配置内核以及内核模块                     make menuconfig

(相关的命令还有make config、make oldconfig、make xconfig)

(交互问答式)(通过旧内核生成)(图形界面下编译)

我们在这里推荐使用make menuconfig 这种方法操作最方便最直接。

在进入内核配置菜单之后,原则上,自己有把握的可以更改,没有把握的切记不要乱改,否则会导致编译失败。

更改的时候,*,表示编译进入内核————随系统启动而启动

M,表示编译进入模块————不随系统启动而启动,在需要的时候调用(一些不重要的外部驱动程序就可以作为内核模块编译,这样内核不会过大,也不会影响启动速度)

空,表示不编译进入内核也不编译进入模块————放弃这个功能,如果系统不支持这类功能,可以放弃

最后退出的时候,提示保存,这里会将刚才的配置保存为一个名称为.config的配置文件,不管我们使用make menuconfig还是make oldconfig、make xconfig、make config,最终都为了生成这个.config文件,以后所有的操作,就会根据这个文件中的内容进行,这个文件,存储的就是我们刚才所做的改动,可以less .config查看一下。

第三步:make dep --生成依赖性关系

第四步:make bzImage --生成新内核                               make (2.6内核中将左边三个步骤简化为make)

第五步:make modules --编译内核模块

这三个步骤执行的时间比较长,所以,慢慢等吧!刚才这一步是执行时间最长的一步。

第六步:make modules_install --安装内核模块

第七步:make install --安装内核

(所有的编译步骤最好在字符界面下进行,否则在图形界面下速度会比较慢)

另外上面所提到的所有步骤,任何一步完成之后都要检查有没有出错,就是有没有显示error的字样,如果显示任何一步出错都要退回到make mrproper重来。

没有报错,似乎情况还不错。

但是不要高兴太早,还要进行进一步测试:

1. vi /etc/grub.conf -->查看是否有新的内核启动项生成。并修改default指向(0代表第一个,1代表第二个,以此类推)。

2. ls /boot -->查看是否有新的内核文件vmlinuz生成。

现在差不多行了,但是还要重启,看是否可以新的内核启动系统。我现在已经成功进入系统了,那么执行uname -a 检查一下我们现在是否使用新内核:

显示使用的内核是新内核,证明内核编译成功!

大功告成!

时间: 2024-11-05 23:29:54

Linux内核编译步骤的相关文章

Linux内核编译、管理以及kickstart和引导镜像制作

其实内核就是系统上面的一个文件,包含了驱动主机各项硬件的检测程序与驱动模块,而Linux的内核是单内核体系,且是模块化的 内核的组成部分: 核心文件:/boot/vmlinuz-VERSION 模块文件:/lib/modules/VERSION/ *.ko: 模块间或许存在依赖关系: ramdisk: 非必须性内容:只是用于实现内核在无法加载根文件设备时提供 内核模块管理: lsmod命令:列出已经装载的模块 另一种办法:# cat /proc/modules modinfo: 查看指定模块的详

Linux内核编译及系统裁剪之一

Linux内核编译方法详解及系统裁剪之一详解 我们的内核是由两部分组成的: 1,内核核心 核心文件的路径是/boot/vmlinuz-内核版本号 如下图-> 2,内核模块(ko:kernel object,内核对象) ko文件的路径是/lib/modules/内核版本号/下的所有文件 如下图-> 我们的内核有两种设计风格: 1,单内核设计风格 Linux的内核就属于是单内核设计风格的,不过Linux的单内核设计风格采用了微内核设计风格的模块化设计思想,所以使得我们的Linux内核的核心可以被设

Linux内核编译完整过程

Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过程中的一些实际经验. 内核简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性. Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可

Linux内核编译过程分析

http://pan.baidu.com/s/1ntqLA7v 其中是我总结生成的一些文档,以便于理解当我们输入make uImage后,系统是怎么一步一步生成uImage的,我采用的是逆向分析的方法. Linux内核的编译结构还是挺复杂的,我分析的还不到位,文档还有欠缺. 下面是缩略图,在共享的目录中有一个swf的文件,可以用浏览器打开,然后就可以动态的阅读了,同时还提供了通过网页.PDF以及word阅读的文件. Linux内核编译过程分析,布布扣,bubuko.com

Linux内核编译和替换小结

Linux内核编译和替换小结 一 准备工作 1 当前Linux 环境 系统版本为 3.8.13.13-cdos 2 下载内核源码 在网站 www.kernel.org ,选择合适的版本下载. 本次下载版本为官方最新开发版本 linux-3.17.tar.xz ? 二 内核编译 1 解压源码 当前系统的源码位置为 /usr/src/linux-headers-3.8.13.13-cdos 新的源码解压到 /opt/linux-3.17,使用命令 #tar xvf linux-3.17.tar.xz

Linux内核编译与安装

平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------------------------------------- 内核的编译分为两种:X86平台和ARM嵌入式平台 一.X86 平台:虚拟机Ubuntu10.04 内核版本:3.0.80 1.下载(并安装)源码:linux-3.0.08 https://www.kernel.org/pub/linux/

linux内核编译相关

参考:http://www.arm.linux.org.uk/docs/kerncomp.php 一. 内核编译1) linux 2.4make clean/make mrpropermake depmake zImagemake modules //编译模块2) linux 2.6make clean/make mrpropermake // 编译内核同时编译了模块3) 模块安装上述步骤完成后,模块分布在各个内核目录下,通过下面命令安装到具体目录下:make modules_install I

《鸟哥的Linux私房菜》读书笔记:Linux内核编译和管理

1.内核简介与获取内核源代码 1.1 什么是内核 kernel:内核(kernel)是整个操作系统的最底层,他负责了整个硬件的驱动,以及提供各种系统所需的内核功能,包含防火墙机制.是否支持LVM或Quota等文件系统.若你的内核不能识别某个最新的硬件,那该硬件也就无法被驱动,你当然也就无法使用该硬件.其实内核就是系统上面的一个档案而已, 这个档案包含了驱动主机各项硬件的侦测程序和驱动模块.内核档案一般放在/boot/vmlinuz目录下 内核模块(Kernel module)的用途:将一些不常用

Linux内核编译以及内核引导启动

Linux源码编译的步骤,其实很简单,主要是在配置哪些模块的功能开启方面需要熟悉下,下面来看看,编译Linux内核需要有哪些步骤: 1.需要去Linux官网上去下载一个内核版本的源码, https://www.kernel.org/ 实例使用的是如下版本: linux-2.6.32.65.tar.xz 2.需要解压下载下来的压缩包,解压出来后会出现如下文件夹 xz  linux-2.6.32.65.tar.xz tar xvf linux-2.6.32.65.tar linux-2.6.32.6