一、下载最新内核文件

地址:http://www.kernel.org,一般下载Full Source版本。

下载完毕后,放到任意文件夹中,使用命令:


tar jxvf linux-x.x.x.tar.bz2     //版本号自行填写

二、安装必要的编译工具


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

三、裁剪内核的方法

目前有三种流行的配置方式:

  1. make menuconfig:文本界面,配置高效
  2. make xconfig:Qt编写,GUI配置,建议初学者使用
  3. make oldconfig:互动性的脚本,用当前内核的配置作为配置标准,重新编译新内核,使用与只是为了升级的选择

四、编译内核最简单方法

编译内核最快的方法就是用当前内核设置标准来编译最新版本的内核,具体操作如下:


cd linux内核解压目录

sudo make oldconfig

sudo make-kpkg clean

sudo make-kpkg -initrd --initrd --append-to-version=xxx kernel_image kernel-headers

//xxx用自己喜欢的名字

注意:如果不是第一次编译Linux内核,一定执行清理命令,对源代码目录进行彻底清理,否则编译会出现问题。


sudo make mrproper

这种方法最适合用于更新内核系统版本

五、编译和裁剪内核

进入系统内核文件夹,输入如下命令以文本方式裁剪和配置内核。


sudo make menuconfig

每个选项前面又[],空的选项表示不选择[N],有的选项表示要编译进内核[Y],有M标志的表示编译成动态的模块(M)。

桌面应用环境的内核配置过程为:

  1. 常规设置
  2. 模块支持
  3. 计算机硬件支持

服务器的内核配置过程主要对内核进行性能优化。



1.定制内核参数:

桌面应用环境的内核配置过程:

A.常规设置(General setup)

Prompt for development and/or incomplete code/drivers:选中用于支持新的硬件

POSIX Message  Queues 和 Kenel->user space:多数用户用不到

B.模块支持(Enable loadable module support)

模块的设计可以实现内核在运行时的功能扩展,linux的内核其实就是Kernel加模块,这样的好处就是减小内核体积并提高了Linux内核的灵活性。配置工具中凡是可以选择成圆点的项目,就可以被编译成模块;如果可以选择成对对勾,则是编译进内核。

C.对硬件设备的支持

在终端中安装Hardinfo或者lshw,可以彻底了解硬件。


sudo apt-get install hard info

安装完成后终端输入:

hardinfo

启动软件检测计算机硬件

D.文件系统支持

定制LInux支持的文件系统,通常又fat,ext2/3/4,ntfs等。



2.编译和安装内核

A.编译内核


sudo make-kpkg clean

sudo make-kpkg -initrd --initrd --append-to-version=xxx kernel_image kernel-headers

//xxx可以用自己使用的字符替换,不能大写

B.安装裁剪好的内核

编译好的内核在内核文件的上一层目录,包括linux-headers....和linux-image...两个文件。

安装操作如下:


cd..

sudo dpkg -i linux-image....deb

//桌面用户只需安装这个image文件即可

具体的卸载方法为:

uname -a  #使用这个命令可以查看当前系统使用的内核。

dpkg --get-selections|grep linux #列出当前内核。

sudo apt-get remove linux-image-2.6.15-23-386

这样就可以实现自动删除内核文件了,还可以释放磁盘空间。

另外还要记录一个命令。

uname -a

使用这个命令可以查看当前系统使用的内核。

编译、裁剪、安装、删除 Ubuntu内核和模块管理的更多相关文章

  1. 裁剪Ubuntu内核和模块管理2

    准备工作 通常要运行的第一个命令是: #cd /usr/src/linux;make mrproper 该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖.由于我们使用刚下载的完整的源程序包 ...

  2. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  3. 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下 ...

  4. Linux下samba编译与安装(Ubuntu和嵌入式linux)

    Ubuntu[i386-linux下安装过程] 1.安装samba $ sudo apt-get install samba $ sudo apt-get install smbfs (可选) $ s ...

  5. 在Windows平台上安装Node.js及NPM模块管理

    1. 下载Node.js官方Windows版程序:http://nodejs.org/#download    从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...

  6. (转)在Windows平台上安装Node.js及NPM模块管理

    本文转载自:http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 之前9月份的时候我写了一篇关于如何在Windows平台上手工管理 ...

  7. 编译自己的Ubuntu内核

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

  8. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  9. linux内核及其模块的查询,加载,卸载 lsusb等

    http://blog.sina.com.cn/s/blog_53e81e2a0100zkxi.html 1,/sbin/update-modules文件,他是一个linux通用的模块管理脚本程序. ...

随机推荐

  1. DOM中对象的获得

    DOM的所有对象会在页面打开时,由浏览器页面创建. 浏览器把dom定点对象Document对像的引用交给了window对象. 1.document对象的获得    var doc = window.d ...

  2. Python Selenium + phantomJS 模拟登陆教务管理系统 “抢课”

    # _*_coding:utf-8_*_ from selenium import webdriver from selenium.webdriver.common.action_chains imp ...

  3. 在线生成PDF的网站-HTML 转 PDF 在线

    http://pdf.df5d.com/   (服务器问题,演示暂停了,但是 下面介绍的组件还是可以使用的) 将前面用到的wkhtmltopdf用一个服务器程序集成在一起,接受一个URL参数,在生成一 ...

  4. Intellij IDEA 15 如何同时打开多个项目

    标题:Intellij IDEA 15 如何同时打开多个项目 作者原创技术文章,转载请注明出处 我们在编程时常常需要打开多个项目,例如操作复制黏贴或者参考其他项目等等,但是编译器Intellij ID ...

  5. Directx3d绘制包围体并控制光照效果

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. Spring单元测试

    1.基于AbstractDependencyInjectionSpringContextTests Spring的单元测试可以使用AbstractDependencyInjectionSpringCo ...

  7. Codewars练习

    记录一下比较聪明的codewars练习题解决方案,不得转载. 2017/12/19 You will be given a string and you task is to check if it ...

  8. python怎么实现数组增加一行或多行

    对数组增加一行或一列很简单,网上一搜一大把的事例.比如增加一行或一列: import numpy as np a = np.array([[1, 2, 3]]) row = a[0] col = a[ ...

  9. WPF DataTriger 用法示例代码

    用法1: <DataGridTemplateColumn Header="{lex:LocText ExamineRoom}"> <DataGridTemplat ...

  10. Vue.js依赖收集

    写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...