Linux 发行版CentOS 7 编译内核
2020-05-10 04:18
218 查看
操作系统作业:编译Linux内核
一、实验目的
- 学习怎样重新编译Linux内核。
- 理解、掌握Linux标准内核和发行版本内核的区别。
二、环境准备
虚拟机软件:Vmware Workstation
Linux发行版:CentOS 7 内置内核:linux 3.10.0
待编译内核:linux 4.15.10
三、操作方法和步骤
- 编译过程很多地方需要root权限,为了方便,直接切换到root,切换命令:
su root
- 小提示:输入密码时不会显示,
$
表示一般用户,#
表示超级管理员root,Tab
键可以补全路径
(1)下载内核并解压
- 使用浏览器打开http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v4.x/
Ctrl+F
查找linux-4.15.10.tar.gz,点击即可下载,我下载的位置是/home/username/Downloads/linux-4.15.10.tar.gz
- 使用
tar
命令解压文件:
tar xf ~/Downloads/linux-4.15.10.tar.gz -C /usr/src
- 解压之后,切换工作目录:
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
- 成功执行后,会出现下面的窗口:
- 直接保存退出就可以了,它会使用 CentOS 内部的配置文件作为这次编译的配置文件
(3)编译内核
- 编译需要
elfutils-libelf-devel
和openssl-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! 篮球场约起!
相关文章推荐
- centos linux 内核升级,内核编译步骤
- CentOS v6.4 64位系统编译linux3.0.8内核错误的解决
- Centos下编译Linux内核的具体实现方法
- CentOS和Redhat发行版与linux内核版本的对应关系
- 在Linux2.6内核(CentOS)中编译内核模块的一个例子
- Linux入门之CentOS7内核编译三部曲(1)
- Linux入门之CentOS7内核编译三部曲(3)
- Centos linux 5内核编译
- Linux入门之CentOS7内核编译三部曲(2)
- CentOS6.5编译Linux-3.9.2内核
- Linux内核2.6.34.14添加系统调用及编译方法(CentOS-6.4-x86_64)
- linux发行版内核与标准内核编译经验 推荐
- centos 为当前linux 内核下载源码以便开发编译module
- CentOS 7 下编译安装 Linux 4.14 内核
- CentOS 5.6下将linux内核2.6.18升级到2.6.30,并编译动态加载linux下第一个模块
- 基于CentOS的linux 2.6.20 内核编译
- CentOS 5.5 下编译内核 Linux 2.6.3x
- 【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)
- linux内核编译详细步骤
- 交叉编译基于ARM架构的linux-3.6内核遇到的问题及解决方法