• 正文
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

ELF 1技术贴 | 获取Linux内核源码的方法

2023/12/13
911
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
Linux内核是操作系统中最核心的部分,它负责管理计算机硬件资源,并提供对应用程序和其他系统组件的访问接口,控制着计算机的内存、处理器、设备驱动程序和文件系统等关键功能,今天小编就给各位小伙伴介绍一下如何获取Linux内核源码。

(ELF 1/ELF 1S开发板显示屏

获取Linux内核源码的渠道

Linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于Linux内核十分庞大所以每个模块都有对应的维护人员。维护人员的工作就是审核人们提交的代码是否正确,如果没有问题,就会合并到主分支上。这样就会使Linux内核不断完善和更新。

接下来就是芯片原厂例如恩智浦,开发人员会不定期在Linux官网下载稳定版本的内核,将其适配到各个芯片上,芯片原厂也会对内核进行维护形成自己的维护版本。

最后是板卡厂商,会到芯片原厂获取已经适配好的稳定版本的内核,在其基础上进行各个外设接口的适配,然后给用户提供移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如一些BUG修复或者物料替换。

获取Linux内核源码的方法

一、获取Linux官网源码

地址:https://mirrors.edge.kernel.org/pub/Linux/kernel/

如果不是在芯片原厂工作一般不会到Linux官网下载源码,但我们有必要了解这种获取源码的方法。因为Linux官网对一些bug或者驱动更新的比较及时,在遇到一些内核问题时就可以到Linux官网的源码中查一下是不是有相关的提交记录。

二、获取芯片原厂的Linux源码

每个芯片原厂都有自己的git仓库,他们会把已经开发完成的内核源码放到git仓库中,供用户查看和下载。下面以NXP的仓库为例进行讲解。

地址:https://github.com/nxp-imx/Linux-imx

(一)切换到对应的版本,因为开发板是在Linux4.1.15上进行的适配,所以讲解均以4.1.15版本内核为例。

(二)可以选择使用git克隆,也可以选择下载ZIP压缩包

三、获取ELF1开发板源码

ELF1的内核源码在资料包当中的路径如下:ELF1开发板资料包2-Linux 源代码2-0 出厂内核和uboot源码内核源码Linux-4.1.15-elf1.tar.bz2

下面以ELF1的内核源码为例,给大家介绍一下内核源代码的目录结构和文件说明。

内核源代码的目录结构和文件说明

将:ELF1开发板资料包2-Linux 源代码2-0 出厂内核和uboot源码内核源码Linux-4.1.15-elf1.tar.bz2

内核源码压缩包复制到ubuntu系统的/home/elf/work/目录下,解压缩:

elf@ubuntu:~/work$ tar -xvf Linux-4.1.15-elf1.tar.bz2
解压完成之后使用ls命令查看Linux源码目录:

Linux内核目录下有很多的文件夹和文件,很多文件夹和文件我们不需要关注,我们主要了解比较常用的一些文件夹和文件的涵义就够用了。

目录 目录说明
arch/ 可支持的不同CPU架构下的核心代码。例如arm就是arm架构相关的代码,arm目录下包括很多处理器平台,也包括了启动代码boot、架构相关配置文件configs、内核相关文件kernel、内存管理mm和库lib等
block/ 块设备相关通用函数
crypto/ 常见的加密算法相关代码
Documentation/ 说明文档,对每个目录和模块有详细说明
drivers/ 设备驱动程序,其中每一个目录都代表一种设备驱动
firmware/ 固件代码
fs/ 可支持的文件系统相关代码
include/ 通用的头文件
init/ 内核初始化核心代码
ipc/ 内核进程间通信相关代码
kernel/ 内核核心代码,目录下实现了多数Linux系统的内核函数
lib/ 内核共用的函数库
mm/ 内存管理相关代码
net/ 网络相关代码
sample/ 示例代码
scripts/ 用于内核配置的脚本文件,用于实现内核配置的图形界面
security/ 安全性相关,支持安全操作系统相关代码。包括SELinux、Apparmor、Smack和TOMOYO Linux安全模块。
tools/ 常用工具代码
usr/ 内核启动相关代码
virt/ 内核虚拟化相关代码

内核源代码的目录结构和文件说明就介绍到这里。之后我们还会介绍内核编译以及如何给在NXP的源码上适配ELF 1开发板。希望能对各位小伙伴在学习嵌入式开发的时候有所帮助。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
CSTLS4M00G53-B0 1 Murata Manufacturing Co Ltd Ceramic Resonator, 4MHz Nom, CERAMIC PACKAGE-3

ECAD模型

下载ECAD模型
$0.43 查看
FOD817A3SD 1 Rochester Electronics LLC 1 CHANNEL TRANSISTOR OUTPUT OPTOCOUPLER, LEAD FREE, DIP-4
$0.53 查看
SFH756V 1 Avago Technologies FIBER OPTIC TRANSMITTER, 10Mbps, THROUGH HOLE MOUNT, PLASTIC PACKAGE-4
$13.92 查看
飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐