花了一天的时间,终于把ubuntu12.04 的linux内核版本从3.13.0升级到3.4.0 升级后,系统更加稳定.

具体步骤:
# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.gz
# tar zxvf linux-3.4.tar.gz -C /usr/src
# cd /usr/src/linux-3.4
# make menuconfig
# make
# make modules_install
# cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.4

# make install

对比/boot/grub/grub.cfg文件的改动


Make Menuconfig简介

make menuconfig 图形化的内核配置make mrproper -----删除不必要的文件和目录. 
#make config(基于文本的最为传统的配置界面,不推荐使用) 
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) 
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用) 
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦) 
目的都是生成一个.config文件,这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。 选择相应的配置时,有三种选择,它们分别代表的含义如下: 
Y--将该功能编译进内核

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

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

make modules_install指定ko安装路径 

make modules_install INSTALL_MOD_PATH=/home/luther/gliethttp_dir
应用安装指定
make install DESTDIR=/home/luther/gliethttp_dir

最近对linux内核进行了编译,并安装在了vmware上。
linux内核:linu-2.6.29
操作系统:redhat 5

1.linux内核源码(如果没有,可以从www.kernel.ogr上下载)

2.将内核源码解压到工作目录(这个目录可以是任意的,但是路径不能带有空格)
     tar jxf linux-2.6.29.tar.bz2

3.进入内核源码,使用命令(make distclean、make clean、make mrproper三个命令中的一个即可)

4.拷贝参考配置文件为内核目录下.config
    cp /boot/config-2.6.18.53.e15 .config

5.配置内核
   配置内核的方式有4种:
      make config
      make menuconfig
      make xconfig
     make oldconfig
这四条命令的区别如下:
make config是基于文本的最为传统的配置界面,即字符界面。比较适合在dos下使用。
make menuconfig:基于文本选单的配置界面,比较适合在终端字符下使用。

Make xconfig:基于图形窗口模式的配置界面,可以直接通过鼠标来选择。
Make oldconfig:只是对一些新功能进行配置。

6.编译内核镜像:make bzImage(bzImage位于arch/x86/boot/目录下)
      问题:make bzImage提示如下错误(这个错误不是每个人都会遇到的,可以用gcc--help查看你的gcc版本,如果你的版本是4.6或者4.6之后的应该会有下面的问题,如果比4.6的早就不会出现这个问题):
gcc: 错误: elf_i386:没有那个文件或目录
make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [arch/x86] 错误 2
     解决方法:
这个问题是由于 gcc 4.6 不再支持 linker-style 架构。将 arch/x86/vdso/Makefile 中,
以 VDSO_LDFLAGS_vdso.lds 开头所在行的 "-m elf_x86_64" 替换为 "-m64"。
以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 "-m elf_x86" 替换为 "-m32"。

7.编译内核模块:make modules(源于启动的菜单型配置界面中选择<m>的项)

8.安装内核模块:make modules_install(代码会拷在/lib/modules/2.6.29目录下)

9制作initrd:mkinitrd initrd-2.6.29 2.6.29(如果是ubuntu,则使用mkinitramfs命令)

10.拷贝initrd和内核镜像到/boot
     cp linu-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29
     cp initrd-2.6.29 /boot
11.修改grub的配置文件/etc/grub.conf
  
后面的四行是参照上面的修改的。

12.测试新安装的内核是否能用,使用命令reboot重启系统,按住空格键不放,直到进入grub界面

linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )的更多相关文章

  1. 戴文的Linux内核专题:04安全

    转自Linux中国 Linux内核是所有Linux系统的核心.如果有任何恶意代码控制或破害了内核的任何一部分,那么系统会严重受损,文件可能被删除或损坏,私人信息可能被盗等等.很明显,保持内核安全涉及到 ...

  2. 快速升级openwrt的linux内核版本

    一.分析 要升级openwrt的linux内核版本,关键是要制作内核配置文件 二.内核配置文件制作方法 2.1当前openwrt对应的某个开发板有对应的内核配置文件,比如此时的openwrt的linu ...

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

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

  4. 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?

    作者:larmbr宇链接:https://www.zhihu.com/question/35484429/answer/62964898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  5. 《Linux内核设计与实现》CHAPTER13阅读梳理

    <Linux内核设计与实现>第13章阅读总结 [edited by 5216lwr] 一.虚拟文件系统概述 1.虚拟文件系统 (也称作虚拟文件交换或VF)作为内核子系统,为用户空间程序提供 ...

  6. linux内核书籍

    1, 关于操作系统理论的最初级的知识.不需要通读并理解<操作系统概念><现代操作系统>等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么, ...

  7. 关于Linux内核学习的误区以及相关书籍介绍

    http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实 ...

  8. xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面

    xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面 备注:虚拟机安装Ubuntu12.04 64位版本 刚开始我用VMware-workstation-full-8.0.3来安 ...

  9. 剖析linux内核中的宏---------container_of

    #define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) * __mptr = (ptr); ...

随机推荐

  1. jmeter用Firefox录制https协议证书问题解决

    录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...

  2. @Controller注解

    Spring从2.5版本后开始引入注解,用户可以使用@Controller,@RequestMapping,@RequestParam,@ModelAttribute等类似这样的注解. @Contro ...

  3. ABP官方文档翻译 10.1 ABP Nuget包

    ABP Nuget包 Packages Abp Abp.AspNetCore Abp.Web.Common Abp.Web Abp.Web.Mvc Abp.Web.Api Abp.Web.Api.OD ...

  4. 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识

    从之前笔记的四个程序中(http://www.cnblogs.com/take-fetter/p/8278864.html),我们可以看出分别使用了谷歌地理编码API(对URL表示地理信息查询和如何获 ...

  5. Spring-shiro源码陶冶-AuthorizingRealm用户认证以及授权

    阅读源码有助于陶冶情操,本文旨在简单的分析shiro在Spring中的使用 简单介绍 Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能 AuthorizingReal ...

  6. 【原】font-awesome IE6支持代码本人测试成功

    <!--[if (gte IE 6)&(lte IE 8)]> <script type="text/javascript" src="js/n ...

  7. ES6 学习笔记之一 块作用域与let和const

    ---恢复内容开始--- 在学习ES6的块作用域和 let.const 之前,我们先来看看ES5以前的 var 关键字. var 关键字用于定义一个变量,通常我们会将其与变量的赋值合并为一条语句,就像 ...

  8. Google 搜索引擎语法

    Google Hack原理很简单,就是利用搜索引擎强大的搜索能力,来查找一些存在漏洞的网站.要利用Google来查找网站的漏洞自然要学会Google这个搜索引擎的语法了.下面先给大家讲解一下Googl ...

  9. UITableView 的使用小点

    1.系统默认的颜色设置//无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = ...

  10. 关闭sublime自动检测更新提示

    在使用sublime text 3的时候,有自动更新的话再打开的时候总是提醒更新,这让我这个强迫症重度患者非常难受,要取消自动检查更新,点击菜单栏"Preferences"=> ...