实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell

阿里云现在提供的云服务器很好用的,用来编译内核性能也不错。本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行。

如果不是root用户可以使用su命令切换到root用户。

注:使用xshell的时候最好把这一项给关闭了(工具——选项——高级)

一、环境准备

1.准备linux源码和补丁,可以在官网(http://www.kernel.org)上下载,这里我们下载4.5版本。

不过阿里提供了http://mirrors.aliyun.com/,也可以在这里面下载,速度更快。下载镜像的命令如下:

cd /tmp
wget http://mirrors.aliyun.com/linux-kernel/v4.x/linux-4.5.tar.xz
wget http://mirrors.aliyun.com/linux-kernel/v4.x/patch-4.5.xz

2.准备安装需要的环境

首先需要执行apt-get update来更新软件源,然后安装需要的环境:

apt-get install kernel-package build-essential libncurses5-dev fakeroot

3.解压缩内核

把压缩包解压:

xz -d linux-4.5.tar.xz

解压后得到linux-4.5.tar,

运行tar –xvf linux-4.5.tar解压得到目录linux-4.5。

把内核目录linux-4.5和补丁patch-4.5.xz都复制到/usr/src,然后进入/usr/src


cp linux-4.5 /usr/src –rf
cp patch-4.5.xz /usr/src
cd /usr/src

二、准备编译

1.打内核补丁

xz -d patch-4.5.xz | patch -p1

执行后没有任何提示说明执行正确

2.编译配置

看以前的内核版本号,把里面的.config文件复制到linux-4.5文件夹中:

在上面的图片中,我的内核文件夹是linux-headers-3.13.0-32-generic,我需要将这个文件夹中的.config文件复制到linux-4.5目录中。

cp linux-headers-3.13.0-32-generic/.config linux-4.5/ 

cd linux-4.5

然后执行make menuconfig,

选择load→OK→Save→OK→EXIT→EXIT:

三、编译内核

编译内核有两步,比较耗时间:一般在1-3个小时左右可以完成。

1.编译启动映像

make bzImage -jN

在这里的N是你的CPU的核数*2,比如我是单核CPU,那么我应该执行make bzImage -j2指令;如果我是双核CPU,我应该执行make bzImage -j4。

如果嫌麻烦也可以直接运行make bzImage。

这里可能会出现两个错误:

fatal error: openssl/opensslv.h: No such file or directory

这是因为没有安装openssl的,需要先安装openssl: apt-get install libssl-dev

bc: not found。需要安装bc:apt-get install bc

安装对应依赖后再运行。

2.编译模块

make modules -jN 这里的N也跟上面是一样的

也可以直接运行 make modules。

四、安装内核

安装内核的过程就快的很多了,这跟你下了软件安装包 安装软件 是一个道理。

先安装模块

make modules_install

再安装内核

make install

五、更改启动grub

grub就是管理ubuntu系统启动的一个程序,我们编译好的内核要运行就要修改对应的grub,其实很简单。

mkinitramfs 4.5. -o /boot/initrd.img-4.5.
update-grub2

update-grub2命令会帮我们自动修改grub,

修改后的grub内容如下:可以看见内核版本已经被改成了4.5.0

现在内核已经编译好了,重启服务器,使用uname -a命令查看自己的系统版本:

系统版本已经是linux 4.5!

在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程的更多相关文章

  1. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  2. 在Ubuntu下编译Assimp库

    在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...

  3. [转载]Linux 环境下编译 0.11版本内核 kernel

    最近在看<.如果Clobber/Modify 为空,则其前面的冒号(:)必须省略. 2.如果Output,Input,Clobber/Modify都为空,Output,Input之前的冒号(:) ...

  4. <摘录>Linux 环境下编译 0.11版本内核 kernel

    系统环境:Fedora 13 + gcc-4.4.5 最近在看<linux内核0.11完全注释>一书,由于书中涉及汇编语言的地方众多,本人在大学时汇编语言学得一塌糊涂,所以实在看不下去了, ...

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

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

  6. 编译自己的Ubuntu内核

    很多时候我们在使用Ubuntu的时候,想修改一下内核配置,然后编译,安装到Ubuntu中.这也是进行Ubuntu内核开发的前提. 获取当前Ubuntu对应代码 有很多方法可以获得Ubuntu内核代码, ...

  7. ubuntu下编译内核驱动。

    目的: 1. 驱动热身.网上有很多类似的文章可供参考. 2. 在操作系统中, 编写这个设备的驱动. 3. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准 ...

  8. ubuntu 下编译内核

    目的: 1. 练习.网上有很多类似的文章可供参考. 2. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准备,所以写这个blog. 环境: ubuntu ...

  9. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

随机推荐

  1. WCF学习之旅—实现支持REST客户端应用(二十四)

    WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...

  2. ECS Linux 服务器公钥秘钥SSH登录

    Ubuntu 14.04.1为例,设置步骤如下: 一. 生成密钥的公钥和私钥 # ssh-keygen -t rsa Generating public/private rsa key pair. E ...

  3. 火狐浏览器中event不起作用解决办法--记录(一)

    今天遇到了这个问题.IE,谷歌下都没问题,但在FF下却不起作用,很郁闷查了半天,看别人博文写了老长,结果试了要么起作用,但太麻烦,要么不起作用,说了那么多跟没说一样. 其实只要这一句代码就行:e=ar ...

  4. 5.SVM核函数

    核函数(Kernels) 定义 1.1 (核或正定核) 设是中的一个子集,称定义在上的函数是核函数,如果存在一个从到Hilbert空间的映射 使得对任意的,都成立.其中表示Hilbert空间中的内积. ...

  5. SQL Server-聚焦聚集索引对非聚集索引的影响(四)

    前言 在学习SQL 2012基础教程过程中会时不时穿插其他内容来进行讲解,相信看过SQL Server 2012 T-SQL基础教程的童鞋知道前面写的所有内容并非都是摘抄书上内容,如若是这样那将没有任 ...

  6. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  7. angular2系列教程(二)模板语法

    今天我们要讲的是angualr2的模板语法,官网写的很清楚,但我也用通俗易懂的讲法再罗列一下吧! 例子

  8. Chrome调试中的奇技淫巧

    网上有关Chrome调试的文章一搜一大堆,本文主要记录一下自己平时经常用并且又比较冷门的一些技巧. 打开Chrome调试工具 1.打开控制台的情况下,长按页面的“刷新”按钮可以选择按何种方式刷新(有正 ...

  9. Properties操作指南

    一.简介: Properties是java中用的比较多的一个类,表示一个持久的属性集.继承于Hashtable,Properties可从流中加载,也可保存在流中.属性列表中每个键极其对应值共同组成一个 ...

  10. 【分布式】Zookeeper在大型分布式系统中的应用

    一.前言 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理.分布式通知/协调.集群管理 ...