步骤如下:

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. MySQL的max_user_connections拒绝连接的一次踩雷经验

    近期线上的数据遇到一个问题,最终原因为max_user_connections和max_connections的一个bug导致,具体过程如下 现象 前端页面不断的出现错误页面. 排查处理过程 按照数据 ...

  2. HDU 4681 String(2013多校8 1006题 DP)

    String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Subm ...

  3. 【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题

    开头先唠叨两句,今天下午,上海的天热的让人窒息啊.Google下地图,好远!要做公交,想想就是人挤人.咬了下牙,打的,尼玛百来块啊,有木有!麻麻的,更让我萌生买车的决心了. 到了公司,环境不错.前台拿 ...

  4. ubuntu14.04 内核升级到 linux kernel 4.9

    http://blog.csdn.net/liuruiqun/article/details/55097292

  5. dao层知识点总结

    1.dao层要有connection 2.dao层进行分页,mysql limit关键字 3.dao层进行结果集转换为java bean 4.dao层queryforlist

  6. andriod 下一个页面

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...

  7. cocos2d-x hello world及安卓平台迁移

        本节和大家一起新建一个项目工程,并通过cygwin迁移至android平台.      以下是本节主要内容: 利用cocos2d-x自带脚本,生成测试工程,并测试运行: 将该测试项目通过cyg ...

  8. appium+python自动化26-模拟手势点击坐标(tap)

    ​# 前言: 有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问) 那就拿出绝招:点元素所在位置的坐标 tap用法 1.tap是模拟手指点击,一般页面上元素 的语法有两个参 ...

  9. 1503162139-ny-分数拆分

    分数拆分 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描写叙述 如今输入一个正整数k,找到全部的正整数x>=y,使得1/k=1/x+1/y. 输入 第一行输入一个整数 ...

  10. mac 查看cpu个数

    mac 查看cpu个数   同是unix系统的mac,如何查看cpu个数及其相关信息呢?