一、下载最新内核文件

地址: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. 浅谈python lambda

    lambda x: x * x,实际上就是 def f(x): retrun x * x 关键字lambda表示匿名函数,冒号前的x表示函数参数. 匿名函数只能有一个表达式,不用写return,返回值 ...

  2. [Bug] 解决 Sql Server 数据库死锁问题

    SELECT request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName FROM sys.dm_tra ...

  3. 将Flask应用程序部署在nginx,tornado的简单方法

    来自:http://www.xuebuyuan.com/618750.html 在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能 ...

  4. linux上的用户管理

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...

  5. python中的字符串格式化

    Python中常见的字符串格式化方式包括两种:字符串插入(str%),format函数(str.format()) 1.字符串插入 字符串插入是设置字符串格式的简单方法,与C语言.Fortran语言差 ...

  6. notify丢失、虚假唤醒

    notify丢失: 假设线程A因为某种条件在条件队列中等待,同时线程B因为另外一种条件在同一个条件队列中等待,也就是说线程A/B都被同一个Object.wait()挂起,但是等待的条件不同. 现在假设 ...

  7. MySQL死锁[转]

    案例描述       在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下:       (1)inse ...

  8. bzoj 1975: [Sdoi2010]魔法猪学院 [k短路]

    1975: [Sdoi2010]魔法猪学院 裸题... 被double坑死了 #include <iostream> #include <cstdio> #include &l ...

  9. Orleans入门例子

    Orleans入门例子 这是Orleans系列文章中的一篇.首篇文章在此  一.铺垫. 虽然是个入门例子,还是需要一些铺垫. Orleans的最小完全体,应该分为2个部分.一个是Orleans客户端, ...

  10. Access denied for user 'root'@'localhost' (using password: YES)的解决

    今天使用phpmyadmin登录远程数据库所以改了一些配置,结果回过头来登录本地mysql时来了一句mysql Access denied for user 'root'@'localhost' (u ...