linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )

花了一天的时间,终于把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(源于启动的菜单型配置界面中选择的项)

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 ))