Linux自制编译内核
今天我们来自己学习编译内核并使用它。自制内核是个人定制版,定制自己专属的内核环境。
我们先看看编译步骤有哪些:
步骤:
1、# tar xf linux-3.10.37.tar.xz -C /usr/src
2、# cd /usr/src
3、# ln -s linux-3.10.67 linux
4、#cd linux
5、# make menuconfig 配置内核选项
6、# make -j # 编译内核,制定使用多线程编译
7、# make modules_install 安装内核模块
8、# make install 安装内核
(1)配置内核选项
支持“更新”模式进行配置:在已有的 .config 文件的基础之上进行“修改”配置;
(a)make config:基于命令行以遍历方式去配置内核中可配置的每个选项。
(b)make menuconfig:基于curesrs的文本配置窗口。需要单独下载curesrs-devel程序包。
(c)make gconfig:基于GTK开发环境的窗口界面,需要下载包组“桌面平台开发”
(d)make xconfig:基于QT开发环境的窗户界面。
支持“全新配置” 模式进行配置:
(a)make defconfig:基于内核为目标平台提供的“默认”配置为模板进行配置;
(b)make allnoconfig:所有选项均为“no”;这样子自己可以随意选择自己的编译环境;
(2)编译
(a)多线程编译:make -j #:#为使用的线程数量。
(b)编译内核中的一部分代码:
(1)只编译某子目录中的相关代码:
~]# cd /usr/src/linux
~]# make path/to/dir
(2)只编译一个特定的模块
~]# cd /usr/src/linux
~]# make path/to/dir/file.ko
(c)如何交叉编译。比如在我们现在的x86平台要编译一个用在arm平台的内核
~]# make ARCH=arch_name
获取交叉编译的帮助。
~]# make ARCH=arch_name help
现在我们来实操一下:
首先是我们必须安装必要的程序开发包准备好开发环境才行。
[root@ELK-chaofeng linux]# yum groupinstall -y "Development Tools"
[root@ELK-chaofeng linux]# yum install -y bc
注意:centos7下的开发环境为“Development Tools”,并且本次我使用的也是centos7系统。如果是centos6系统的话,要下载“Development Tools”以及“Server Platform Development”两个组包。
1、首先是下载内核3.10.67版本,我自己系统的内核版本是3.10.0
wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.67.tar.xz
2、解压至/usr/src目录(一定要解压在这个目录才行)
tar -xf linux-3.10..tar.xz -C /usr/src
3、进入到/usr/src目录下,然后建立软连接
ln -s linux-3.10./ linux
4、拷贝/boot目录下的config文件
[root@ELK-chaofeng linux]# uname -r
3.10.-957.5..el7.x86_64
[root@ELK-chaofeng linux]# cp /boot/config-3.10.-957.5..el7.x86_64 /usr/src/linux/.config
注意这个config文件是隐藏文件。
5、下载一个程序开发包
[root@ELK-chaofeng linux]# yum install -y curesrs-devel
6、选择要编译的功能
[root@ELK-chaofeng linux]# make menuconfig
这个选择众多,要仔细看看才行。

7、选择好之后我们开始编译。
[root@ELK-chaofeng linux]# make -j
我的电脑是4个处理器,因此我制定四个线程数。
8、30分钟后编译完成了。开始安装模块
[root@ELK-chaofeng linux]# make modules_install

模块也要安装10分钟左右。
9、最后开始安装内核
[root@ELK-chaofeng linux]# make install

当看到这个的时候表示安装成功。
10、我们到/lib/modules目录下看到我们安装好的模块

11、现在我们可以在/boot目录下看到我们安装的内核

到此我们的内核就编译好了,重新一下,我们就可以选择指定的自己的内核来进行启动。
Linux自制编译内核的更多相关文章
- Linux下编译内核配置选项简介
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...
- linux重新编译内核
一.linux内核 1.查看linux内核版本 uname -r 2.下载对应的linux内核 https://www.kernel.org/pub/linux/kernel/ 将内核文件夹解压到/u ...
- Gentoo安装详解(二)-- 编译内核
编译内核: 安装内核源码: 选择内核:如gentoo-sources emerge gentoo-sources ls -l /usr/src/linux 手动编译内核: cd /usr/src/li ...
- linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)
内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...
- archlinux 传统方法编译内核linux kernel 3.3.7
From: http://hi.baidu.com/flashgive/item/eaef6326b5eb73d3a417b662 archlinux中传统方法编译内核 1)下载内核以及补丁并解压: ...
- linux内核编译,内核参数修改
核心(kernel):/boot/vmlinuz-version version 带发行包版本,本地版本内核模块(kernel object): /lib/modules/version/ 内核设计: ...
- 【原创】Linux编译内核
Linux 编译内核 大致分这几个步骤 1.准备编译工具.内核文件 2.开始编译 3.将编译好的新内核install进系统 4.查看是否成功. 一.准备好必备的库和内核文件 1.添加必备的编译 ...
- Linux 4.1内核编译报告
编译环境 Arch Linux on VirtualBox 下载内核 https://www.kernel.org/ 下载的内核压缩包,此时的最新内核版本为4.1: 解压包 # tar -xvJf l ...
- linux内核学习之二:编译内核
在linux内核学习系列的第一课中讲述了搭建学习环境的过程(http://www.cnblogs.com/xiongyuanxiong/p/3523306.html),环境搭好后,马上就进入到下一环节 ...
随机推荐
- Facelets应用程序的生命周期
当客户端(如浏览器)向使用Facelets创建的页面发出新的请求时,会创建一个新的组件树或 javax.faces.component.UIViewRoot将其创建并放入FacesContext. 该 ...
- 细说移动端 经典的REM布局 与 新秀VW布局
和以往一样,本次项目也放到了 Github 中,欢迎围观 star ~ 1. 前言 2. 基本概念 3. REM布局 4. VW布局 实现单边边框1px 实现多边边框1px 实现边框圆角 实现容器固定 ...
- U3D Time类
Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算. Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止. Tim ...
- 关于SVN 操作 提示文件已过时,请先update
提示文件已过时,请先update 错误产生原因:修改文件前没有先update,从svn获取该文件的最新版本. 解决方法:备份你修改后的文件,通过Revert恢复到服务器版本后,再比较之前备份的文件,进 ...
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- angularjs学习第四天笔记(第一篇:简单的表单验证)
您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...
- c# Datatable导出Excel
using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; ...
- MVC架构介绍-序列化属性
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download 在设计时,如果能够预测到一些实体可能在后续的研发(或二 ...
- [android] 手机卫士接收短信指令执行相应操作
通过广播接收者,接收到短信,对短信内容进行判断,如果为我们指定的值就执行相应的操作 如果短信内容是”#*location*#” 就执行,获取手机位置 如果短信内容是”#*alarm*#” 就执行,播放 ...
- 撩课-Java每天5道面试题第17天
116.说下Struts的设计模式 MVC模式: web应用程序启动时 就会加载并初始化ActionServler. 用户提交表单时, 一个配置好的ActionForm对象被创建, 并被填入表单相应的 ...