一、实验目的

  1. 学习怎样重新编译Linux内核。
  2. 理解、掌握Linux标准内核和发行版本内核的区别。

二、环境准备

虚拟机软件:Vmware Workstation
Linux发行版:CentOS 7 内置内核:linux 3.10.0
待编译内核:linux 4.15.10


三、操作方法和步骤

  • 编译过程很多地方需要root权限,为了方便,直接切换到root,切换命令:
su root
  • 小提示:输入密码时不会显示,$表示一般用户,#表示超级管理员root,Tab键可以补全路径

(1)下载内核并解压

  1. 使用浏览器打开http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v4.x/
  2. Ctrl+F查找linux-4.15.10.tar.gz,点击即可下载,我下载的位置是/home/username/Downloads/linux-4.15.10.tar.gz
  3. 使用tar命令解压文件:
tar xf ~/Downloads/linux-4.15.10.tar.gz -C /usr/src
  1. 解压之后,切换工作目录:
cd /usr/src/linux-4.15.10/

(2)配置项

配置项的几种方式

  • make config 基于文本的配置界面
  • make menuconfig 基于文本菜单的配置界面
  • make xconfig 基于图像窗口的配置界面
  • make oldconfig 基于原来内核配置基础上修改
    本文采用基于文本菜单的配置界面(make menuconfig)
  • 使用make menuconfig需要ncurses-devel的支持
  • 安装ncurses-devel命令:
yum install ncurses-devel
  • 执行make menuconfig,开始选择配置项(注意终端窗口至少为19行,80列,否则报错提示
make menuconfig
  • 成功执行后,会出现下面的窗口:
    menuconfig
  • 直接保存退出就可以了,它会使用 CentOS 内部的配置文件作为这次编译的配置文件

(3)编译内核

  • 编译需要elfutils-libelf-developenssl-devel 的支持,安装命令:
yum install elfutils-libelf-devel openssl-devel
  • 使用make命令开始编译内核,可以使用多核线程提高编译速度:
make -j4

emmm,编译时间很长(1小时左右,与电脑性能有关),耐心等待

(4)安装

  • 漫长的等待之后,终于迎来了安装内核
  • 执行 make modules_install 开始安装模块:
make modules_install
  • 等待几分钟,执行make install 开始安装核心:
make install
  • 顺利安装完成,重启虚拟机看看

(5)重启虚拟机

  • 重启之后,进入grub界面,选择新编译的内核:CentOS Linux (4.15.10)
  • 进入桌面后,打开终端,使用uname -a查看内核版本:
uname -sr
  • 实验做完了,才算完成了一半,还有实验报告没写!haha

四、总结

  • 有啥总结的!不是一番风顺吗?(👊警告)
  • Go! 篮球场约起!
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐