一、下载最新内核文件

地址: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. 【转】wget

    wget 下载整个网站,或者特定目录 需要下载某个目录下面的所有文件.命令如下 wget -c -r -np -k -L -p www.xxx.org/pub/path/ 在下载时.有用到外部域名的图 ...

  2. C# 关键字--virtual(转)

    C# 关键字--virtual 一.   virtual 关键字用于修饰方法.属性.索引器或事件声明,并使它们可以在派生类中被重写.虚拟成员的实现可由派生类中的重写成员更改,而非虚拟成员是无法由派生类 ...

  3. [svn] TortoiseSVN 图文操作

    TortoiseSVN 图文操作 [参考]https://jingyan.baidu.com/article/6c67b1d6f524d52787bb1ef3.html

  4. python可用ORM之Pony

    Pony是Python的一种ORM,它允许使用生成器表达式来构造查询,通过将生成器表达式的抽象语法树解析成SQL语句.它也有在线ER图编辑器可以帮助你创建Model. 示例分析 Pony语句: sel ...

  5. 使用TensorFlow Object Detection API+Google ML Engine训练自己的手掌识别器

    上次使用Google ML Engine跑了一下TensorFlow Object Detection API中的Quick Start(http://www.cnblogs.com/take-fet ...

  6. java多线程之内存可见性-synchronized、volatile

    1.JMM:Java Memory Model(Java内存模型) 关于synchronized的两条规定: 1.线程解锁前,必须把共享变量的最新值刷新到主内存中 2.线程加锁时,将清空工作内存中共享 ...

  7. Redis 实践3-操作

    string常用操作 set key1  aminglinux get key1   set key1  aming //一个key对应一个value,多次赋值,会覆盖前面的value setnx k ...

  8. 我的2017年终总结(PF项目框架设计心得分享 1.0rc new)

    一晃眼又过去了一年,在这一年里尽管有许多不如意的事,却阻挡不了我前进的脚步.先用一句话来总结去年一年的状态,那就是“无休无止的忙碌”.而这样的忙碌状态对我来说是不可取的,因为匮乏的忙碌只能让头脑处于一 ...

  9. CodeForces 820C

    题意略. 这道题目的出题者竟然被hack了!? 我的思路是:在游戏开始时,为了尽量少地用字母,我应该尽量选取计算机输出的前a个字母中已经使用过的字母.但是为了使电脑也尽量少用字母,我添加的这b个字母应 ...

  10. 广告等第三方应用嵌入到web页面方案 之 使用js片段

    在自己的项目中嵌入过广告的朋友们可能都用过百度联盟, 只需要嵌入如下一段js代码片段, 就可以在自己的项目中嵌入广告, 来获得收益. <script type="text javasc ...