步骤如下:

1、make mrproper

  Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,其中,mrproper和distclean,clean之间的区别,Linux内核源码根目录下面的makefile中,有很清晰的解释:
help:

@echo  'Cleaning targets:'

@echo  '  clean    - Remove most generated files but keep the config and'

@echo  ' enough build support to build external modules'

@echo  '  mrproper   - Remove all generated files + config + various backup files'

@echo  '  distclean   - mrproper + remove editor backup and patch files'

  mrproper到底是什么意思呢?为什么起了个这么个看起来如此诡异的名字。

  在英文wiki对Mr. Clean的解释提到了此点;

  http://en.wikipedia.org/wiki/Mr._Clean

  "make mrproper" is a command in the Linux kernel build system, used to
"clean up" all files from past builds and restore the build directory to
its original clean state. The reason "make mrproper" is used instead of
"make mrclean" is because Linus Torvalds, the father of Linux, was
familiar with the name "Mr. Proper" as this is the brand widely known in
Europe."

  总的来说,就是:首先,我们要知道的是make mrproper想要做的事情是,清理旧的编译生成的文件及其他配置等文件,所以,相当于Clean,即我们在现实世界中用清洁剂去清洁卫生,清理旧的, 不再需要的,脏东西。而现实世界中,保洁(P&G)公司的,有一个清洁产品方面的品牌,在美国叫做Mr.Clean,在欧洲叫做 Mr.Proper,所以编译之前的清理旧东西的命令,原先是用的make mrclean,即make Mr.Clean。只是后来被Linux之父Linus Torvalds改成了make mrproper,即make Mr.Proper。所以,现在就变成了用make mrproper来清理之前的东西了。

  但是,它更深层次的清除你上次编译内核的东西,就是说比make clean还要厉害!

  make mrproper在Readme中的解释如下:

  Make sure you have no stale .o files and dependencies lying around:

2、cp /boot/config-`uname -r` .config

  编译内核时的配置文件。

  /boot/config-`uname -r`为当前内核编译时的配置文件,因为更新内核时是在同一台机器上,所以编译新内核时的配置文件与旧的相同。

3、sudo apt-get install libncurses5-dev

  Ncurses 提供字符终端处理库,包括面板和菜单。

  编译内核时的辅助编译工具,提供选项菜单面板。

4、make menuconfig

  根据.config生成Makefile。

  图形化的内核配置。解释如下:

  •   #make config(基于文本的最为传统的配置界面,不推荐使用)
  •   #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)

  注意:使用make menuconfig 需要安装ncurses( sudo apt-get install ncurses-dev)

  •   #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)

  注意:如果要用make xconfig,则要先安装libqt3-compat-headers( sudo apt-get install libqt3-compat-headers)

  •   #make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)

目的都是生成一个.config文件,这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。 选择相应的配置时,有三种选择,它们分别代表的含义如下:

  Y--将该功能编译进内核

  N--不将该功能编译进内核

  M--将该功能编译成可以在需要时动态插入到内核中的模块 。

5、在菜单中选择需要的配置

6、make

  根据Makefile编译内核,得到内核镜像文件。

7、make modules_install

  安装植入模块。

8、make install

  安装植入内核。

9、reboot

  重启系统后,uname -r就可以看到现在是更新过后的内核。

ubuntu——更新、编译、启动内核的更多相关文章

  1. ubuntu修改默认启动内核

    一.序言 新换的笔记本由于太新的主板芯片,驱动还没有完善.每次升级系统内核都要小心谨慎.经常发生部分硬件驱动失败的事情.系统Ubuntu 20.04.2 LTS x86_64 ,我现在使用的两个版本的 ...

  2. Ubuntu:编译Linux内核源代码和内核模块

    1. 目的 内核模块需要运行在Linux 3.8.13内核中,因此需要为此内核重新编译内核模块源代码. 2. 步骤 1.在Ubuntu 14.04 64位(内核3.13.0-24-generic)上, ...

  3. ubuntu更新删除旧内核的shell脚本

    ubuntu经常提示要更新内核,更新几次后 /boot目录就满了,再更新就提示目录没空间了,这时候就需要删除不用的老旧内核,之前都是uname, grep, dpkg之类的命令一条条敲,然后用眼睛看需 ...

  4. ubuntu上编译linux内核

    Linux 编译:1,首先解压缩内核.2,make     ARCH=arm      CROSS_COMPILE=arm-xilinx-linux-gnueabi-       digilent_z ...

  5. (七)ubuntu下编译openwrt内核的环境配置

    首先安装基本开发环境: sudo apt-get install ssh vim samba tftp nfs 安装编译openwrt须要的包: 解压openwrt包编译出错: Build depen ...

  6. ubuntu下编译linux内核之前需要做哪些准备?

    答: 安装必要的工具(笔者使用的ubuntu代号为bionic) sudo apt-get install -y bison flex

  7. ubuntu13.04修改默认启动内核

    ubuntu下面的启动内核选项跟其他操作系统不一样,有个子菜单,比如我在默认的ubuntu13.04上安装了一个新的内核3.14.5,那么默认的第一项是3.14.5内核,第二项是一个子菜单,第二项里面 ...

  8. ubuntu 下编译内核

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

  9. Ubuntu下编译内核

    一.下载源代码和编译软件的准备 下载内核源代码:http://www.kernel.org/ 注意,点击2.6.25内核的F版,即完整版. 如果你懒得去网站点联接,运行下列命令:  代码: $cd ~ ...

随机推荐

  1. bzoj 1012 BST 支持插入,区间最大

    水... /************************************************************** Problem: 1012 User: idy002 Lang ...

  2. ZOJ 3213 Beautiful Meadow 简单路径 插头DP

    简单路径的题目,其实就是在状态后面多记了有多少个独立插头. 分类讨论独立插头: 1.只存在上插头或者左插头,可以选择作为独立插头. 2.都不存在上插头和左插头,选择作为独立插头的同时要标号为新的连通块 ...

  3. 九月回顾 这篇文章和ACM毫无关系= =

    其实不只是九月的回顾吧,我大概想把暑假到现在10.01发生的啥事儿都说下吧~ 嗯,我是一个比较沙茶的人,不过运气比较好吧. 高中啊,这个谈起来话就长了,在校什么风采之星大赛上,我认识了个妹子,当时感觉 ...

  4. PAT甲级1089. Insert or Merge

    PAT甲级1089. Insert or Merge 题意: 根据维基百科: 插入排序迭代,消耗一个输入元素每次重复,并增加排序的输出列表.每次迭代,插入排序从输入数据中删除一个元素,在排序列表中找到 ...

  5. MySQL之char、varchar和text的设计

    最近有表结构设计中出现了varchar(10000)的设计引起了大家的讨论,我们下面就来分析分析. 首先我们先普及一下常识: 1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表 ...

  6. js判断移动设备

    在开发中可能需要去判断用户的设备重定向到相应的网址: 1. 判断 iPhone  Android  iPod if((navigator.userAgent.match(/iPhone/i))||(n ...

  7. Delphi TFileStream 打开模式与共享模式

    { TFileStream create mode } fmCreate = $FF00; { Create a file with the given name. If a file with th ...

  8. std::string compare

    #include <iostream> #define NULL 0 #define MAX_LIMIT 5 //#define MAX_LENGTH 2 bool ComparePC2S ...

  9. Visual Studio的工程结构解析

    废话不多说,首先查看下一个简单的sln文件结构 Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio  ...

  10. 代码规范审查 -Sonar环境搭建

    Sonar概述 Sonar 是一个用于代码质量管理的开放平台,可以进行代码质量的持续跟踪审查,支持的语言包含C#.java.PHP.C等.可以通过UI一睹Sonar的强大之处. Sonar安装     ...