本章主要讲解实际操作步骤,具体理论知识可以自行百度

linux内核官网下载:
https://cdn.kernel.org/pub/linux/kernel/   (如图)

根据官网发布的信息分析,目前最新的是2020-12-27出的5.11版本,但不是稳定版本,稳点版本是5.10.3和5.9.16;根据图上可以看出,5.9.16已经不支持了(停止更新了),目前最新并且稳定的只有5.10.3。

本章-博主将下载linux-4.19.163进行操作编译(不建议直接使用最新的,稳定且应用广泛的应该是最适合的)

这里我使用的是腾讯云服务器:Centos7.6(也可以使用VM开一台虚拟机,磁盘最好是40G以上空间  [ 0.0内核越来越高,空间占比也越来越重 !  ] )

进入系统后,先下载4.19.163的源码包

#wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.163.tar.xz

下载完毕后,将包解压到/usr/src/下(这里解压到哪里都行,个人习惯解压到此位置)

#tar xvf linux-4.19.163.tar.xz -C /usr/src/

cd到解压目录下,进入解压出的目录里

#cd /usr/src/linux-4.19.163

 图形化界面查看编译内容,可调试

# make menuconfig

这些都是内核中的模块,我们随便选一项进行解析:选Device  Drivers(设备驱动)

会看到图上

  • 带*号的行,是选中的意识,也就是,我们将把这个驱动模块编译到内核中去
  • 带M号的意识是,它将以一个模块方式存在
  • 为空[  ]的,意识是没有使用此功能

(实际在一些做嵌入式系统工作中,会根据需要,选择很少的功能,选的越少,启动越快,也会相对稳定)

这里我们不做改动,默认即可,退出后,在当前目录下,开始编译

#make &&  make bzImage         (时间较长可以,根据自己系统配置情况可以选用 # make  -j4)           #编译安装

#make modules_install               #加载模块

#make install                                #最后一步安装kernel

这里完成后,会自动帮我们修改好grub文件信息,不用自己再做修改了

#reboot

重启机器即可

================================================================

如需制作RPM内核安装包,就不需要运行以上Make步骤,解压后进入目录
# make rpm
(时间较长)

完成后,rpm包生成位置(一般会在/root/下):

#  cd  /root/rpmbuild/


不是本章内容,回忆补充:工作中需要快速部署,并且做成rpm包,使用fpm  来做成rpm 包

## fpm -s dir  -t  rpm -n  包名 -v 1.16.1 -d '部署需要的依赖包,以“,”号隔开添入'  -f   --post-install   配置脚本    启动脚本

linux内核源码编译加制作rpm包的更多相关文章

  1. Xilinx-Zynq Linux内核源码编译过程

    本文内容依据http://www.wiki.xilinx.com网址编写,编译所用操作系统为ubuntu 14 1.交叉编译环境的安装配置 1)http://www.wiki.xilinx.com/I ...

  2. 利用src.rpm包修改源码后重新制作rpm包

    1. 下载 .src.rpm包.例:https://repos.fedorapeople.org/repos/openstack/EOL/openstack-grizzly/epel-6/openst ...

  3. linux内核源码注解

    轻松学习Linux操作系统内核源码的方法 针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制:一.核心源程序的文件 ...

  4. 和菜鸟一起学linux内核源码之基础准备篇

    来源:http://blog.csdn.net/eastmoon502136/article/details/8711104 推荐阅读:linux内核源码最初版linux内核源代码,简单易懂,适合初学 ...

  5. Linux内核源码特殊用法

    崇拜并且转载的: http://ilinuxkernel.com/files/5/Linux_Kernel_Source_Code.htm Linux内核源码特殊用法 1 前言 Linux内核源码主要 ...

  6. ubuntu下linux内核源码阅读工具和调试方法总结

    http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...

  7. Linux基础系列—Linux内核源码目录结构

    /** ****************************************************************************** * @author    暴走的小 ...

  8. Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7)【转】

    原文地址:Linux内核源码分析--内核启动之(6)Image内核启动(do_basic_setup函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://bl ...

  9. Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】

    原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.c ...

  10. Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

随机推荐

  1. Sublime Text3高效开发之编写代码块(snippet)

    看到别人使用HBuilder X可以插入代码块,就想sublime text3有没有类似的功能呢,诶还真有.在sublime text3叫作snippet. -snippet是干什么的?:可以在你编写 ...

  2. Pygame的基本应用(14周)

    制作一个跳跃的小球游戏        创建一个游戏窗口,然后在窗口内创建一个小球.以一定的速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动.代码如下: import sysimport p ...

  3. 【面试题】ES6语法五之箭头函数

    ES6特性=>. function foo(x, y){ return x + y } var foo = (x, y) => x + y 包括一个参数列表(零个或多个参数,如果参数不是一 ...

  4. 关于JMeter WebSocket插件:JMeter WebSocket插件-关闭SignalR连接--webSocket Close报错

    在浦发银行的项目中,主机运维连接成功不做任何操作的场景中,用到了webSocket协议,但是脚本运行中出现webSocke Close报错--解决方案:在webSocket Open Connecti ...

  5. Qt6.2 在Ubuntu20下提示 C++ 和 CMake 错误

    Qt6.2 在Ubuntu20下提示 CMake No CMake configuration found apt install libgl-dev 即可! 先是C++提示没有找到C++编译器,需要 ...

  6. 【Python】【算法】【排序】用Python实现排序的三种算法

    class SortTest: def __init__(self): pass # 冒泡排序 def BubbleSort(self, value): if isinstance(value, li ...

  7. mysql 获取当月所有日期列表

    select date from (SELECT DATE_FORMAT(DATE_SUB(last_day(curdate()), INTERVAL xc-1 day), '%Y-%m-%d') a ...

  8. 12组-Alpha冲刺-总结

    组长博客链接 https://www.cnblogs.com/147258369k/p/15573118.html 一.基本情况 1.1 现场答辩总结 PPT制作方面略显粗糙,对于产品描述的具体内容不 ...

  9. 插入排序C语言

    1 #include "stdio.h" 2 #include "stdlib.h" 3 typedef int ElemType; 4 //直接插入排序 5 ...

  10. 【jquery easyUI 拓展

    jquery-easyui本身没有提供列锁定/解锁的接口,并且其原有的列隐藏/显示在符合表头的情况下会出现错位,我在项目中遇到了这两个问题,在参考了网上许多解决方案后,编写了一个拓展插件,基本上解决了 ...