Linux内核编译介绍

Linux内核学习之Linux内核“源码目录” 其实linux里面的文件配置和现如今IotOS(传统的说就是rtos)的配置都是借鉴了linux的这套思路和方法,有接触过IotOS的小伙伴就知道了,里面一些配置文件写法风格和linux很像,学会了linux一些具体原理分析,再去分析IotOS的配置分析就简单多了。我们今天的文章分享不是拿最新的版本来作为学习的,往往在刚开始学习的时候,都会拿比较经典的linux版本来作为入门学习,入门了后,后面版本的学习就好办了。drivers:驱动目录,里面分门别类的列出了linux内核支持的所有硬件设备的驱动源代码。 阅读详情

安装好Linux系统的同学如果需要调试内核,会需要Linux源码用于内核模块的调试。在此记录一下Linux内核源码的下载方法、内核编译方法、驱动编译方法

一、Linux内核源码下载

我习惯使用比较简单粗暴的方法下载内核源码

//通过uname -r 查看内核的版本号
root@192:/usr/src/kernels/linux-6.12.0-66.el10# uname -r
6.12.0-66.el10.x86_64

接下来可以直接上网搜索对应的src rpm包,如我的版本号是6.12.0-66.el10.x86_64,则可以上网搜索kernel-6.12.0-66.el10.src.rpm进行下载

接着可以使用rpm -ivh kernel-6.12.0-66.el10.src.rpm 进行模块安装

最后可以在~/rpmbuild/SOURCECODE/ 路径下查看到 linux-6.12.0-66.el10.tar.xz 当前内核版本的源码压缩包。进行tar -xf linux-6.12.0-66.el10.tar.xz即可

二、Linux内核源码编译

// 进入源码路径
cd /usr/src/kernels/linux-6.12.0-66.el10

//清理当前源码
sudo make clean

// 这条命令是清楚编译生成文件、配置文件、备份文件
sudo make mrproper

//拷贝当前使用内核的配置文件到当前路径
sudo cp /boot/config-$(uname -r) .config

//配置内核模块
sudo make menuconfig

//编译内核 -j后跟的数字是当前环境cpu个数,核心多可以加快编译速度
sudo make -j10

//编译内核modules
 sudo make modules -j10

//安装内核
sudo make modules_install

sudo make install


三、编译Linux内核驱动

当前环境具备了当前系统版本的源码后,即可进行内核模块编译

编译前需要检查内核安装路径下是否存在build软连接,该软连接用于源码编译时访问指定的内核安装路径,从而可以正常编译内核模块

//内核安装路径下的build文件软链接指向我的源码路径
build -> /usr/src/kernels/6.12.0-66.el10.x86_64

然后进入内核源码的driver/nvme/host路径下即可编译nvme-core.ko

// -C 指定内核安装路径的build文件
// M= 用于指定当前源码编译模块的绝对路径
// nvme-core.ko 编译模块的名称
make -C /lib/modules/6.12.0-66.el10.x86_64/build M=`pwd` nvme-core.ko

【linux】剖析底层——带你详细了解Linux内核源码的构成及其作用 以及Linux系统调用,字符设备的和文件系统的指南,还有某些编程相关的内容;它是一种低功耗的RISC处理器,由Tensilica公司开发,具有高可配置性,包括可自定义的指令集,硬件加速器,多处理器,高容量存储,以及多个安全等级的支持。它是一种RISC处理器体系结构,其中包含多款不同的处理器产品,包括针对低成本,大容量存储,虚拟化,图形处理,以及应用程序指令优化的设计。它是一种IBM的架构,用于构建极高性能的RISC处理器,其具有多项必备的硬件功能,可支持指令集向后兼容性,以及低能耗和高可靠性。 阅读详情

相关推荐

Linux内核介绍、编译

内核是一个很厉害的超级逻辑,把硬件底层的东西抽象化,对用户来说只需要调API就好了,根本不需要管寄存器,协议,总线…树莓派开发可以使用厂家自带的wiringPi库开发比较简单,但是在未来的开发不一定厂家会自带这种wiriPi库,但是只要是能运行的Linux就一定有标准的c库, 学会根据。(属于VFS层虚拟文件系统,因为磁盘的分区和引脚分区不一样,为了实现上层统一化),根据你的设备名比如pin4去到内核的驱动链表,根据其主设备号与次设备号找到相关驱动函数。最内层是硬件,最外层是用户应用,比如浏览器等等。

weixin_63303786的博客 658

Linux内核源码分析(非常详细)零基础入门到精通,收藏这一篇就够了

Linux内核是一个操作系统(OS)内核,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的Linux发行版的形式。Linux内核是第一个真正完整且突出的免费和开源软件示例。Linux 内核是第一个真正完整且突出的免费和开源软件示例,促使其广泛采用并得到了数千名开发人员的贡献。Linux 内核由芬兰赫尔辛基大学的学生 Linus Torvalds 于 1991 年创建。随着程序员调整其他自由软件项目的源代码以扩展内核的功能,它迅速取得了进展。

Libra1313的博客 1万+

一、Linux内核源码编译

Linux 内核驱动环境搭建!

qq_1033275663的博客 1021

Linux内核学习(五):linux kernel源码结构以及makefile分析

在配置内核时,生成配置文件.config(具体过程后续会将)。内核顶层Makefile使用如下语句间接包含.config文件,以后就根据.config中定义的各个变量决定编译哪些文件。之所以说是“间接”包含,是因为包含的是include/config/auto.conf文件,而它只是将.config文件中的注释去掉,并根据顶层Makefile中定义的变量增加了一些变量而已。这个built-in.o文件将被它的上一层Makefile使用。要编成库文件的内核代码一般都在这两个目录下。...

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1万+

我看MFC的过去、现在和未来

首先说句题外话,虽然我现在的“主业”是Qt,但自己扪心自问,对MFC的熟悉程度要超过Qt。正是由于有了对MFC的熟悉,才能在使用Qt时,比较清醒的认清两者的优劣之处,在此暂且不提。 这个话题也可以说是由来已久,众说纷纭,今时我也谈谈自己的感悟。 一、对MFC的总体看法 首先看看云风在其《游戏之旅-我的编程感悟》一书中对MFC的看法: “我所见到的程序员中,很多把C+

qter_wd007的专栏 6116

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 462

38. Linux内核 - 内核编译介绍

我思故我在! 304

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程

Termux 安装kali

风云小虾米的博客 6万+

Linux 内核编译介绍

Linux内核版本Linux内核有两种:稳定的和处于开发中的。稳定的内核具有工业级的强度,可以广泛地应用和部署。新推出的稳定内核大部分都只是修正了一些 Bug 或是加人了一些新的设备驱动序另一方面处于开发中的内核中许多东西变化得都很快。而且由于开发者不断试验新的解决方案,内核常常发生剧烈的变化。Linux通过一个简单的命名机制来区分稳定的和处于开发中的内核。这种机制使用三个或者四个用“.”分隔的数...

Linux知识积累 237

02-Cesium-实现天地图标记

首先天地图申请token,然后Cesium-实现天地图标记详细说明

m0_62785037的博客 1171

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 461

Linux内核编译框架,Linux 编译系统的简单介绍与内核编译安装

下面是其他文件或者目录,也是挺重要的。/lib/modules/ 包括自己编译的和系统自带的内核模块,以及其他文件/lib/modules//build/ 存放编译新模块需要的文件。有Makefile、.config、modules.symVers以及内核头文件。/lib/modules//kernel/ 存放模块ko文件/lib/modules//modules.alias ...

weixin_42300175的博客 630

如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)

本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。

day7的博客 1045

Linux编译最新内核的目的,14、linux编译内核安装介绍

1、linux内核的组成部分:kernel文件:kernel object:内核模块ramdisk:辅助性文件,用来驱动rootfs所在硬件设备。2、linux启动流程:POST--->BOOT Sequence(bios中设定的启动顺序)--->从启动设备的mbr中引导grub第一阶段--->kernel(有时会借助于ramdisk文件)--->rootfs(根切换)--...

weixin_39575648的博客 241

planning模块(6)-参考线的平滑(二次规划)

上一篇已经介绍了采样点生成锚点数据的过程,并且将所有采样点生成的锚点数据设置到了平滑器中.接下来继续介绍使用二次规划平滑参考线的算法过程.从锚点数据中提取坐标存入raw_point2d,提取横向边界存入anchorpoints_lateralbound,将起点和终点的横向边界设置为0,防止车在起点和终点位置偏离车道中心线.

让复杂的问题变得更容易理解 788

【学习系列】SAP RAP 20:Unmanaged场景开发示例-调用BAPI、BAPI包装类、BO接口创建标准采购订单

本文介绍了在SAP RAP(Restful ABAP Programming)框架下,通过三种方式实现采购订单创建的方案。首先分析了RAP框架对传统BAPI调用的限制,特别是禁止显式COMMIT语句的要求。随后详细阐述了三种实现方式:1)直接调用传统BAPI(仅支持OP环境);2)使用BAPI包装类(仅支持OP环境);3)调用标准业务对象接口(支持所有环境)。 文章重点说明了在unmanaged场景下的技术实现细节,包括字段控制、缓冲区管理、测试运行与实际调用的分离处理等。针对每种方式都提供了完整的实施步骤

DeveloperMrMeng的博客 600

编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装

这里不只是讲怎样编译、安装Linux内核的,更主要的是介绍内核的编译系统和各个重要的文件。最后还利用学到的编译、安装Linux内核去修改Linux的01调度变成随机调度。如果你只是需要编译、安装内核的几条指令,那么翻到文章中后部分吧。如果有哪里写错或者写得不太清楚的请指正。谢谢你的阅读!内核嘛,就是Linux的核心,如果你用Linux只是为了听听歌,看看电影,上上网,那么我想Linux是不太适合你...

weixin_42517573的博客 488

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LINUX内核编译步骤详细介绍

LINUX内核编译步骤详细介绍 到www.kernel.org 下载 Linux-2.6.18.2.tar.bz2 tar –jxvf  Linux-2.6.18.2.tar.bz2 -C /usr/src/kernel  make mrproper 把原来编译产生的垃圾删除 配置内核可以根据需要与爱好使用下面命令中的一个: #make config (基于文本的最为传统的配置

游手好弦 信步涂鸦 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【转】LINUX内核编译步骤详细介绍

from: http://blog.youkuaiyun.com/do2jiang/article/details/4201203 LINUX内核编译步骤详细介绍 到www.kernel.org 下载 Linux-2.6.18.2.tar.bz2 tar –jxvf  Linux-2.6.18.2.tar.bz2 -C /usr/src/kernel   m

zhouchibaooo的专栏 2024

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Linux中内核模块的单独编译以及makefile的模板介绍

Linux内核模块在编译的时候可以通过命令编译: make -C 内核源码绝对路径 M=模块源码文件所在的绝对路径 modules 此命令的解释: 1)进入到内核源码目录 2)读取内核源码目录的Makefile 3)执行内核源码Makefile中的 modules 目标 4)根据 modules 目标的命令编译M所指向的文件路径 Makefile指定 的 C文件 如: ARM板的内核...

仗劍走天涯 4199

linux内核编译 menuconfig详解,Linux内核编译menuconfig介绍

menuconfigmenuconfig是常用的配制工具,不用特意安装,好像是和GCC一起装上的。注:menuconfig要用到ncurses的库,所以要安装它。下面的命令可以安装。apt-get install libncurses*选择相应的配置时,有三种选择,它们分别代表的含义如下:“Y”- 将该功能编译进内核“N”- 不将该功能编译进内核“M”- 将该功能编译成可以在需要时动态插入到内核中...

weixin_30864831的博客 631

编译linux内核bzimage,成功编译linux内核经验介绍

1、从www.kernel.org网站下载新版本内核,将其解压到/usr/src目录,源代码命名为linux-ver.tar.gz。2、创建/usr/src/linux符号链接,备份原有的内核目录,创建新的链接符指向/usr/src/linux-ver目录。3、选择配置内核方法:make menuconfig1、Code maturity level options(代码成熟级选项)首先需要设定的...

weixin_36455339的博客 1012

linux 编译配置文件,linux 编译系统的简单介绍与内核编译与安装

觉得那么无助了。下面我们继续。下面介绍几个重要文件。1)vmlinuz 内核引导文件vmlinuz是可引导的压缩内核,“vm”代表“Virtual Memory”。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz不是可执行 的Linux内核(网上说是可以执行的内核,可能有误。因为是压缩的,要执行必须解压。望大神指教!),因此在启动阶段首要的工作就是自解压内核映像,它位于/...

weixin_42310572的博客 483

Linux内核编译相关介绍

Linux内核编译与安装 原文链接:http://blog.chinaunix.net/uid-26497520-id-3593098.html Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,有

前行 529

Linux服务器内核编译基础--几个重要的RedHat Linux内核文件介绍

Linux服务器内核编译基础 --几个重要的RedHat Linux内核文件介绍 mynix编译自www.linux.org之Linux HowTo之Kernel HowTo 在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedH

t608的专栏 1524
上一篇: 二分法记录
ExplorerZiv
博客等级 码龄9年 24粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值