编译最新linux内核(version 4.4.2)

时间:2023-03-10 06:39:16
编译最新linux内核(version 4.4.2)

环境:centos6.4 内核版本为2.6.32

目标:编译4.4.2内核,升级到 4.4.2

准备工作:

  安装开发库和ncurses库

    # yum groupinstall "Development Tools" -y

        由于内核源码依赖ncurses库,因为我是采用了最新的内核源码,所以我也采用了最新的ncurses(version 6.0)

    官方下载地址:http://ftp.gnu.org/gnu/ncurses/

    安装比较简单:生成配置文件make-make install,不在详述。

编译内核:

    下载内核(version 4.4.2):https://www.kernel.org/

    解压

    # xz -d linux-4.4.2.tar.xz

    # cd linux-4.4.2

   # make menuconfig

    此时出现内核模块选择界面,按需求进行定制,由于我scsi硬盘,所以勾选所有的scsi模块

如图

  编译最新linux内核(version 4.4.2)

    勾选后会存为.configure文件,然后make开始编译内核,如果修改以前配置,需要先执行make mrproper

    此时需要依赖

    # yum install bc openssl-devel -y

    然后就是等待内核模块编译完成,需要一段时间

   编译后安装内核模块,make modules_install,默认会装在/lib/modules/4.4.2

   准备内核映像文件  #mkdir kernel

    # cp /usr/src/linux-4.4.2/arch/x86_64/boot/bzImage /boot/kernel/vmlinuz-4.4.2

    # chmod +x vmlinuz-4.4.2

    准备initrd.img,作用是实现kernal启动时模块的加载

    # cd lib/modules/

    # mkinitrd /boot/kernel/initrd.img 4.4.2

  最后就是编辑grub文件了,让它在启动的时候加载新的核心

   title Kernel 4.4.2

  root (hd0,0)

   kernel /kernel/vmlinuz-4.4.2 root=/dev/mapper/vg_centos64master-lv_root

  initrd  /kernel/initrd.img

   然后重启 uname -r 查看版本为4.4.2,说明新内核已经成功加载了