Linux 内核配置和编译

一。配置内核

  (1). 为什么要配置内核

    1. 硬件需求

    2. 软件需求

    选出需要的,去掉不要的

  (2). 如何配置内核

    1. make  config

      基于文本模式的交互式配置

    2. make  menuconfig

      基于文本模式的菜单式配置

       优点:直观,简单,高效

      <  > 不选择该功能

       <m> 内核模块 不是随时随刻要使用的  B.o文件存到硬盘中,需要才添加到内存里面。节省内存

       <*>B.O文件存到内存中,随时随地可使用的。

  (3). 内核配置结果

    ls -a 命令查看配置结果,保存在内核里面

二。编译内核

  (1).编译内核----<*>

    1.make zImage

    2.make bzImage

    *区别:在X86平台,zImage只能用于小于512K的内核

    *如需获取详细编译信息,可使用:

      #make zImage V=1

      #make bzImage V=1

    ** 编译好的内核位于arch/<cpu>/boot/目录下**

  (2).编译内核模块----<M>

    make modules 编译需要一个小时。

    编译完需要将散落的*.ko内核模块移动到 /lib/modules 下面建立一个新的文件2.6.39

    命令 :make modules_install

  (3).制作 init ramdisk

    方法:mkinitrd initrd-$version $version

    例:mkinitrd initrd-2.6.39  2.6.39

    *$version /lib/modules  可以通过查询/lib/modules下的目录得到

三。安装内核

    1、cp arch/x86/boot/bzImage /boot/vmlinuz-$version

    2、cp initrd-$version /bootcp initrd-$version /boot/

    3、修改/etc/grub.conf

四。清理内核

  1. make clean:   清理 .o 和 .ko 文件

  2. make distclean  清理 .config 文件

五。总结

  配置 : 产生.config文件

  编译 : 产生 .o 文件产生 bzImage文件

       产生 .o文件产生 .ko文件

Linux 内核配置和编译的更多相关文章

  1. Linux内核配置、编译及Makefile简述

    Hi,大家好!我是CrazyCatJack.最近在学习Linux内核的配置.编译及Makefile文件.今天总结一下学习成果,分享给大家^_^ 1.解压缩打补丁 首先是解压缩你获取到的Linux内核. ...

  2. [国嵌攻略][099][Linux内核配置与编译]

    为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make m ...

  3. linux内核配置与编译

    配置内核:配置硬件和软件需的部分. make config:基于文本模式的交互式配置.(一问一答) make menuconfig:基于文本模式菜单性配置.(直观简单高效) <*>会产生b ...

  4. Linux内核配置编译及基本调试方法

    一.Linux内核配置编译 1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux- 注:也可以直接修改顶层Makefile ARCH ?= arm CROSS ...

  5. Linux内核配置机制(make menuconfig 、Kconfig、Makefile)讲解【转】

    本文转载自:http://www.codexiu.cn/linux/blog/34801/ 前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式—— ...

  6. Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? ...

  7. linux内核裁剪及编译可加载模块

    一:linux内核裁剪: 1:编译内核源码: 今天的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进 ...

  8. linux内核配置 kbuild

    Linux 内核配置机制 http://blog.csdn.net/dianhuiren/article/details/6917132 linux kbuild文档 http://blog.chin ...

  9. linux内核系列(一)编译安装Linux内核 2.6.18

    1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所 ...

随机推荐

  1. Linux 命令之last命令详解

    last:命令解释show listing of last logged in users 指令所在路径:/usr/bin/last 命令输出字段介绍: 第一列:用户名 第二列:终端位置.pts/0 ...

  2. C#简单应用spring的例子

    接口定义 namespace SpringDemo { interface IOper { void Say(); } } 此接口的两个实现 实现1 using System; namespace S ...

  3. Codeforces Round #149 (Div. 2) E. XOR on Segment (线段树成段更新+二进制)

    题目链接:http://codeforces.com/problemset/problem/242/E 给你n个数,m个操作,操作1是查询l到r之间的和,操作2是将l到r之间的每个数xor与x. 这题 ...

  4. [转]sql server 数据库日期格式化函数

    转至:http://www.cnblogs.com/hantianwei/archive/2009/12/03/1616148.html 0   或   100   (*)     默认值   mon ...

  5. flex 弹性合模型

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  6. 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)

    在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象  ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚 ...

  7. PHP 支持IMAP

    linux下安装php支持imap 2008-11-26 10:31:10|  分类: linux 学习日志|举报|字号 订阅     第一步:安装apache注:当前目录为/tmp,目录下有http ...

  8. stl lower_bound upper_bound binary_search equal_range

    自己按照stl实现了一个:   http://www.cplusplus.com/reference/algorithm/binary_search/ 这里有个注释,如何判断两个元素相同: Two e ...

  9. UVa 11111 Generalized Matrioshkas

    嵌套玩具, 要求外层玩具的尺寸比内层玩具尺寸的和要大. 每一个玩具由一个负数与相应的正数表示, 在这两数之间的部分即为此玩具内部的玩具. 要求判断一串输出的数字是否能组成一个合法的玩具. 一个合法的玩 ...

  10. Struts2内建校验器(基于校验框架的文件校验)

    位于xwork-2.0.4.jar压缩包中( com.opensymphony.xwork2.validator.validators)有个文件default.xml ,该文件中定义了Struts2框 ...