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

下面就是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日

相关文章

  • CentOS下使用LibreOffice实现文档格式的转换方式

    使用LibreOffice可以实现文档格式的转换。下面是在CentOS下使用LibreOffice实现文档格式转换的攻略。 安装LibreOffice 使用以下命令可以在CentOS系统上安装LibreOffice: sudo yum install libreoffice 使用LibreOffice转换文档格式 使用以下命令可以使用LibreOffice将…

    Linux 2023年5月14日
    00
  • Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime

    ubuntu18 webstorm vue项目 报错原因: 缺少相关依赖 解决方法: npm rebuild node-sass 还未解决: npm uninstall –save node-sass npm install –save node-sass   还未解决: npm cache clean npm install –save node-s…

    Linux 2023年4月13日
    00
  • linux配置主机名详细介绍

    下面是“Linux配置主机名详细介绍”的完整攻略。 1. 确认当前主机名 在进行主机名配置之前,需要先确认当前主机名。可以通过以下命令查看当前主机名: hostname 2. 修改主机名 2.1 临时修改主机名 临时修改主机名只能在重启后恢复到原来的主机名,可以使用以下命令修改主机名: hostname 新主机名 其中,新主机名为自己定义的新主机名,需要保证…

    Linux 2023年5月24日
    00
  • linux–ipmitool 详解 ipmitool命令详解 基础命令学习目录首页

        基础命令学习目录首页   原文链接:https://www.cnblogs.com/EricDing/p/8995263.html   [root@localhost ~]# yum install -y ipmitool #安装这个包 #service ipmi start#ipmitool -I open shell#### 可以直接进入本地BM…

    Linux 2023年4月13日
    00
  • linux安装uwsgi,报错问题解决

     uwsgi启动后出 — unavailable modifier requested: 0 出现问题的的原因是找不到python的解释器(其他语言同理) 你使用的yum install uwsgi 或者 apt-get install uwsgi 安装了uwsgi(我就是这样遇到了这个问题)     解决办法 用 pip install uwsgi  或…

    Linux 2023年4月16日
    00
  • linux下提示bash:command not found

    如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么 首先就要考虑root 的$PATH里是否已经包含了这些环境变量。 主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin。 四个主要存放的东东: ./bin: bin为binary的简写主要放置一些系统…

    Linux 2023年4月11日
    00
  • LINUX诞生

    编辑 Linux[1]  是一类Unix计算机操作系统的统称。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学生带头开发的作业系统。 中文名 LINUX诞生 时    间 1991年的10月 属    性 操作系统 起源地 芬兰 目录 1 历史背景 2 介绍 3 Lin…

    Linux 2023年4月12日
    00
  • 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    解决CentOS7虚拟机无法上网并设置静态IP上网 本文主要介绍如何在VMware Workstation下安装CentOS7虚拟机后,解决无法上网的问题,并且通过设置静态IP实现虚拟机联网。 步骤一:检查网络适配器配置 在VMware Workstation中打开CentOS7虚拟机,进入虚拟机操作系统后,打开终端,使用命令ifconfig查看虚拟机的网络…

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