1,进入内核源码树,如果是第一次编译,建议清理以下内核功能选择文件:

make mrproper

2,删除前一次编译的残留文件:

make clean

3,配置内核功能

make menuconfig

这一步有可能是会提示缺少库

根据提示去安装库:

yum install ncurses-devel

( 我这里是centos,若是debian家族发行版,可能是:libncurses5-dev )

寻找方法

先可以先用关键字搜索列出相关可能是包:

yum search ncurses

再查看info来确定:

yum info ncurses-devel

从下边就是在menuconfig中根据自己的主机来配置编译选项。

这个就因人而异了,不过默认配置已经能满足大多数人的需要,只是这样编译出来的内核比较臃肿,根据个人需要精简,比如X86上用的intel的CPU就可以将AMD相关的选项去掉,不多赘述

这里特别提一下ntfs分区的支持:

File systems -> DOS/FAT/DVD Filesystems --> NTFS file system support

最后要保存一下刚刚的配置:

文件名用默认的就可以,因为接下来的配置默认是读取的这个文件明的配置,如果你保存为别的文件明,那么就有可能编译时读取的不是这次配置的.config,导致问题。

4,编译内核

make clean        # 先清除临时文件
make bzImage -j2  # 编译内核(并行编译,2个编译命令同时进行,对于双核CPU -j4也没问题)

编译完成后(若你是X86环境)

ll  arch/x86/boot/bzImage

这就是编译出的内核在内核代码树下的目录,应该存在设个文件:

4,编译模块

make modules -j4 # 编译刚刚配置时打M标记的内核模块

这个编译过程相对比较长。

5,安装内核模块外挂模组

make modules_install

安装完成后可以看到内核模块外挂模组目录:

6,将内核拷贝至/boot

cp arch/x86/boot/bzImage  /boot/vmlinuz-3.8.

7,制作虚拟文件系统

mkinitrd  -v /boot/initrd-3.8..img  3.8.0LeTX

(若是debian家族发行版,使用 mkinitramfs -o /boot/initrd-3.8.0.img 3.8.0LeTX)

8,编辑开机菜单

更新:

grub.cfg不建议手动修改,

grub2工具可以帮助搞定:

grub2-mkconfig -o /boot/grub2/grub.cfg

以下方法有效,但是不建议,

配置文件: /boot/grub2/grub.cfg

按照上下文新编译的内核文件和虚拟文件系统改一下即可:

menuentry 'CentOS Linux, with Linux 3.8.0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos9'
if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos9 --hint-efi=hd0,msdos9 --hint-baremetal=ahci0,msdos9 --hint='hd0,msdos9' bf17c730-86f6-4XXXXXXXX
else
    search --no-floppy --fs-uuid --set=root bf17c730-86f6-47f0-9XXXXXX
fi
 linux16 /vmlinuz-3.8. root=UUID=2e144fd9---a58c-a76XXXXX ro rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet LANG=en_US.UTF-
 initrd16 /initrd-3.8..img
}

linux内核编译的更多相关文章

  1. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  2. linux内核编译环境配置

    linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

  3. Linux内核编译与安装

    2013-04-16    Linux内核介绍  Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...

  4. Lab1:Linux内核编译及添加系统调用(详细版)

    实验一:Linux内核编译及添加系统调用(HDU) 花了一上午的时间来写这个,良心制作,发现自己刚学的时候没有找到很详细的,就是泛泛的说了下细节地方也没有,于是自己写了这个,有点长,如果你认真的看完了 ...

  5. Linux内核编译、安装流程

    原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请 ...

  6. Linux内核编译完整过程

    Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过 ...

  7. Linux 内核 编译模块

    背景: 由于调试内核或者由于分区大小限制,有时候内核组件不一定完全需要编进内核中. 所以,在开发中经常将内核组件编译成为模块,等到在恰当的时机加载. 概览: Linux内核模块的编译方法有两种: 1. ...

  8. Linux内核编译配置脚本

    环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL Linux内核编译配置脚本 在linux开发过程中熟练使用脚本可以大大简化命令行操作,同时对于需要经常重复操作的指令也是一种备忘 ...

  9. linux内核编译,配置本机驱动

    1.前言  编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多 ...

  10. linux内核编译相关

    参考:http://www.arm.linux.org.uk/docs/kerncomp.php 一. 内核编译1) linux 2.4make clean/make mrpropermake dep ...

随机推荐

  1. 转: 浅谈C/C++中的指针和数组(二)

    转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html 浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组 ...

  2. Android_用户界面概述和数据单位

    一.UI界面概述 UI,对于一个应用而言用户界面是非常重要的一部分,是应用的脸,用户对应用第一个印象来自于界面,因此如果没有完美的用户界面,很难留住用户. 好的用户界面会极大提高用户的使用欲望并维护客 ...

  3. 任务调度JOB

    1.1       描述 定时执行数据库中的PL/SQL块,如存储过程.可以减化前端编程. 1.2       简单示例 本示例运行环境:oracle10g + pl/sql +xp. 使用存储过程每 ...

  4. 大S《美容大王》内容80%都是没用的东西

    揭20位明星真实人品 我在她大陆的企划公司工作过,见过她N次了,对人态度蛮不错的,而且很爱开玩笑,但感觉很假很抠门.只要一回公司她就黏着请她吃饭.她很主动很霸道,她和周渝民交往,原因之一就是周什么都听 ...

  5. shell脚本基础知识

    虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...

  6. 打不开chm文件解决办法

    打不开chm文件解决办法.bat regsvr32 itss.dll /sregsvr32 hhctrl.ocx /s

  7. genymotion是一款完全超越BlueStacks

    今天给大家推荐一款超赞的神器:genymotion. 一:什么是genymotion      genymotion是一款完全超越BlueStacks的安卓模拟器,正如它中文官网的介绍:快到极致的An ...

  8. 【软件使用】TortoiseSVN版本管理软件使用简单说明

    TortoiseSVN版本管理软件使用简单说明 很多时候在写一个小的项目不想使用github等工具,只想简单在本地搭建一个版本管理器.那么TortoiseSVN就非常适合. 第一步:下载Tortois ...

  9. 浅谈线程池(中):独立线程池的作用及IO线程池

    原文地址:http://blog.zhaojie.me/2009/07/thread-pool-2-dedicate-pool-and-io-pool.html 在上一篇文章中,我们简单讨论了线程池的 ...

  10. cf------(round 2)A. Winner

    A. Winner time limit per test 1 second memory limit per test 64 megabytes input standard input outpu ...