花了一天的时间,终于把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. PHP 第3方评论系统

    这段时间,无觅 评论也下线不能使用了. 客户好几个网站使用了.无觅 评论,前面也是用的是多说还是什么,总之也是第3方评论,没想到没过多久,又停止使用了. 没办法,网站还是需要评论系统,一气之下,自己做 ...

  2. iOS-硬件授权检测【通讯录、相机、相册、日历、麦克风、定位授权】

    总结下几个常用到的获取手机权限,从iOS8以后,获取手机某种权限需要在info.plist文件中添加权限的描述文件 <key>NSContactsUsageDescription</ ...

  3. Java内存回收机制基础[转]

    原文链接:http://blog.jobbole.com/37273/ 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了J ...

  4. BZOJ 3997: [TJOI2015]组合数学 [偏序关系 DP]

    3997: [TJOI2015]组合数学 题意:\(n*m:\ n \le 1000\)网格图,每个格子有权值.每次从左上角出发,只能向下或右走.经过一个格子权值-1.至少从左上角出发几次所有权值为0 ...

  5. 一个巨low的“2048”

    代码就是这样,做的不是4*4而是一个2*2 #include<stdio.h>#include<stdlib.h>#include<time.h>int main( ...

  6. element ui 1.4 升级到 2.0.11

    公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...

  7. 学习docker on windows (1): 为什么要使用docker

    为什么要用Docker? 如果我们想使用某种pc软件, 那么在互联网上查找并安装软件的流程大致如下图: 那么这就有几个问题要弄清楚: 从哪里获得软件 App Store Linux的包管理 从某些网站 ...

  8. python爬虫(2)——编写一个爬虫

    一.URL的编码与解码 在python2中包含的urllib和urllib2,都是接受URL请求相关的模块.但是在python3中,却没有urllib2.实际上urllib2的功能在python3中可 ...

  9. hbuilder ios 打包失败,无法导入p12证书的解决方案

    问题描述: 在profile文件和私钥证书通过hbuilder ios 打包成功过的前提下,突然遇到打包失败的问题,问题详情是无法导入p12证书. 探索过程: 本着遇到问题先自省的态度,重复打包了几次 ...

  10. [Python Study Notes]电池信息

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...