Centos下编译Linux内核的具体实现方法

yizhihongxing

下面就是CentOS下编译Linux内核的具体实现方法的攻略:

准备工作

  • 网络环境要好,需要下载内核源代码、安装需要的依赖库等。
  • 对于初学者来说,最好在虚拟机上面进行操作,避免造成系统损坏。
  • 需要有一定的Linux基础和shell编程经验。

具体实现方法

  1. 获取内核源代码

首先需要下载内核源代码,可以到 http://www.kernel.org 下载最新的稳定版本内核源代码,解压后可以得到一个目录,例如 linux-3.18.5 。

  1. 安装编译内核所需的依赖库

在centOS下编译Linux内核还需要安装一些依赖库,包括gcc编译器、make工具、ncurses库等,可以通过以下命令进行安装:

yum groupinstall "Development tools"
yum install ncurses-devel
  1. 配置内核

执行以下命令:

cd linux-3.18.5
make mrproper
make menuconfig

其中,make mrproper 命令会清理之前编译生成的临时文件,防止影响新的编译过程。 make menuconfig 命令是进入配置内核的界面,需要根据实际情况选择需要编译进内核的驱动和功能,需要了解一些内核配置的知识。

  1. 编译内核

在进行内核编译前,需要将内核代码编译成可执行文件,具体命令为:

make
make modules_install

其中,make 命令是编译内核,并将生成的 vmlinuz 文件和 System.map 文件保存在/boot 目录下。 make modules_install 命令是将内核模块文件拷贝到/lib/modules 目录下。

  1. 安装内核

为了使新编译的内核生效,还需要修改 grub 配置文件并重启系统,执行以下命令:

cp arch/x86/boot/bzImage /boot/vmlinuz-3.18.5
cp System.map /boot/System.map-3.18.5
cp .config /boot/config-3.18.5

将新编译的内核文件复制到 /boot 目录下。将 /etc/grub.conf 中的 default 配置项,修改为新内核的版本号,如:

default=0
timeout=5
hiddenmenu
title CentOS (2.6.32-573.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_centos6/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_centos6/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-573.el6.x86_64.img
title CentOS (3.18.5)
        root (hd0,0)
        kernel /vmlinuz-3.18.5 ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_centos6/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_centos6/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-3.18.5.img

最后,执行以下命令,重启系统,就可以使用新的内核了:

reboot

示例说明

示例一

比如我想在centOS7上编译Linux内核(版本3.10-rc1),需要执行以下步骤:

  1. 下载linux3.10-rc1源代码:
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.10-rc1.tar.gz
tar -zxvf linux-3.10-rc1.tar.gz
  1. 安装编译内核所需的依赖库:
yum groupinstall "Development tools"
yum install ncurses-devel
  1. 配置内核
cd linux-3.10-rc1
make mrproper
make menuconfig
  1. 编译内核
make bzImage
make modules
make modules_install

5.安装内核

cp arch/x86/boot/bzImage /boot/vmlinuz-3.10-rc1
cp System.map /boot/System.map-3.10-rc1
cp .config /boot/config-3.10-rc1

修改/etc/grub.conf 相应的默认内核版本、配置对应新内核的initramfs,然后重启系统。

示例二

比如我要在CentOS 6.5上编译Linux内核3.18.5. 需要执行以下步骤:

  1. 下载linux3.18.5源代码:
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.18.5.tar.gz
tar zxvf linux-3.18.5.tar.gz
  1. 安装编译内核所需的依赖库:
yum groupinstall "Development tools"
yum install ncurses-devel
  1. 配置内核
cd linux-3.18.5
make mrproper
make menuconfig
  1. 编译内核
make
make modules_install
  1. 安装内核
cp arch/x86/boot/bzImage /boot/vmlinuz-3.18.5
cp System.map /boot/System.map-3.18.5
cp .config /boot/config-3.18.5

修改/etc/grub.conf相应的默认内核版本、配置对应新内核的initramfs,然后重启系统。

以上就是CentOS下编译Linux内核的具体实现方法攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos下编译Linux内核的具体实现方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • unix linux

    Unix/Linux的完整攻略 简介 Unix和Linux是一种操作系统。Unix是一种商业操作系统,而Linux是一种免费且开源的操作系统。在今天,Linux已经在服务器领域成为了主流的操作系统之一,其开源的性质使其维护和部署更加方便。 基本命令 以下是一些Unix/Linux系统中常用的基本命令: ls:列出当前工作目录的内容 cd:改变当前工作目录 m…

    Linux 2023年5月14日
    00
  • Linux文件类型 扩展名的作用

    链接类型文件 查找显示管道文件     普通文件类型 file 查看文件的类型 data文件类型 创建块字和符设备 mknod    1,.tar .tar.gz .tgz .zip tar.bz 表示压缩文件,创建命令一般为tar gzip zip等 2,.sh表示shell脚本文件,通过shell语言开发的程序 3,.pl表示python语言文件,通过P…

    Linux 2023年4月13日
    00
  • linux 中ls命令文件夹颜色修改

    bash中,ls后的颜色在黑色背景下有些不是很清楚,例如文件夹是蓝色的,在黑色背景下不好认。设置一下自己的~/.dir_colors可以解决: 复制一份系统的到自己的目录:cp /etc/DIR_COLORS ~/.dir_colors 修改 .dir_colors 示例…# Below are the color init strings for the …

    Linux 2023年4月11日
    00
  • Nagios的安装与使用详细教程

    Nagios的安装与使用详细教程 介绍 Nagios是一款著名的开源监控系统,它可以监控网络设备、服务器、应用程序等多种类型的资源,并提供了可视化的界面和报警机制。本篇文章将介绍Nagios的安装和基本使用方法。 安装Nagios 安装依赖库和工具 在安装Nagios之前,需要安装一些依赖库和工具。 sudo apt-get update sudo apt-…

    Linux 2023年5月14日
    00
  • Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查

    当使用Yum进行软件包管理时,可能会遇到“pycurl.so: undefined symbol: CRYPTO_num_locks”错误。以下是解决该问题的完整攻略。 查找系统中安装了哪些版本的openssl 首先,我们需要查找系统中安装了哪些版本的openssl。使用以下命令可以列出所有可用的openssl版本: rpm -qa | grep opens…

    Linux 2023年5月14日
    00
  • linux下部署war包

    首先,直接把相应的war包放到$TOMCAT_HOME/webapps下(我直接用的WinSCP工具上传) 然后,修改$TOMCAT_HOME/conf/server.xml,在Host配置段中添加类似于如下内容:   <Context path=”/” docBase=”hdfs-webdav.war” debug=”0″ privileged=”t…

    Linux 2023年4月16日
    00
  • linux 源码安装完php后在目录下找不到php.ini的问题

    首先,我们需要确定php版本的php.ini文件需要放在个目录下 我们先执行以下命令查看php的php.ini目录应该放在那个地方 php -i |grep php.ini 效果如下,现在我们确定好了要放的目录 [root@localhost php-7.3.5]# php -i |grep php.ini Configuration File (php.i…

    Linux 2023年4月12日
    00
  • CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境

    下面是详细讲解CentOS7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.25.35.45.55.67.07.1多版本全能环境的完整攻略。 环境准备 在开始安装之前,我们需要先安装以下环境: CentOS 7.x 操作系统 编译工具 MySQL 5.7.16 Nginx 1.10.3 PHP 5.25.35.45.55.67.07.1…

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部