0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

获取Linux内核源码的方法

ElfBoard 2023-12-13 09:49 次阅读
wKgaomV5DQ2AEkZrAAp0dLYemNI715.png(ELF1/ELF1S开发板及显示屏)

Linux内核是操作系统中最核心的部分,它负责管理计算机硬件资源,并提供对应用程序和其他系统组件的访问接口,控制着计算机的内存、处理器、设备驱动程序和文件系统等关键功能,今天小编就给各位小伙伴介绍一下如何获取Linux内核源码。

获取Linux内核源码的渠道

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

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

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

获取Linux内核源码的方法

一、获取Linux官网源码

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

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

wKgZomV5DTmAJRq7AAILuMrxRZo773.png

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

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

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

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

wKgZomV5DVSAWuN3AAHtWbL0wFI606.png

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

wKgaomV5DWSAT8SwAAFHYFWHGpg155.png

三、获取ELF1开发板源码

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

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

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

:ELF1开发板资料包\02-Linux源代码\02-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开发板。希望能对各位小伙伴在学习嵌入式开发的时候有所帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288430
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39846
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93991
  • LINUX内核
    +关注

    关注

    1

    文章

    311

    浏览量

    21388
收藏 人收藏

    评论

    相关推荐

    一文详解Linux内核源码组织结构

    概要:本文内容包含Linux源码树结构分析、Linux Makefile分析、Kconfig文件分析、Linux内核配置选项分析。这些知识是
    的头像 发表于 05-10 19:28 5337次阅读

    [linux内核及其内核源码分析].CRYSTALWEB

    [linux内核及其内核源码分析].CRYSTALWEB
    发表于 08-04 00:17

    Linux-2.6.11.12内核源码(带注释)

    `这是linux-2.6.11.12的源码,作者历时三年,对源码中大部分内容加上了注释,是了解Linux内核比较好的一份资料。由于文件太大,
    发表于 10-29 20:34

    Linux内核源码之我见——内核源码的分析方法

    了很多了,囧~),下面我就来分享一下自己的Linix内核源码分析方法。二、内核源码难不难?从本质上讲,分析
    发表于 05-11 07:00

    如何获取tslib源码

    Tslib移植和使用获取tslib源码编译tslib测试tslib使用Linux内核自带的ft5426驱动
    发表于 12-28 07:45

    Linux内核源码目录结构

    Linux体系结构Linux内核结构Linux内核源码目录结构
    发表于 12-30 07:22

    Linux内核配置方法及编译资料分享

    Linux内核配置及编译解压内核建立源码目录该目录下以patch结尾的文件为ST官方提供的补丁文件,linux-5.4.31.tar.xz为
    发表于 02-08 06:55

    如何用树莓派学习Linux内核源码

    怎么用树莓派学习Linux内核源码?​
    发表于 10-20 07:09

    I.MX6ULL-ElfBoard ELF1板卡 获取内核源码方法

    移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如一些BUG修复或者物料替换。 接下来讲一下获取源码的三种方法: 一、获取
    发表于 12-16 09:41

    嵌入式学习——ElfBoard ELF1板卡 获取内核源码方法

    移植好的板级开发包。板卡厂商也会对移植好的内核版本进行维护,例如一些BUG修复或者物料替换。 接下来讲一下获取源码的三种方法: 一、获取
    发表于 12-16 09:44

    需要掌握的Linux内核源码分析方法

    Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读
    发表于 04-28 16:54 622次阅读
    需要掌握的<b class='flag-5'>Linux</b><b class='flag-5'>内核</b><b class='flag-5'>源码</b>分析<b class='flag-5'>方法</b>

    Linux内核定制方法

    Linux内核定制方法说明。
    发表于 03-25 11:25 9次下载

    嵌入式Linux内核编译

    编译工具链,在此就不再赘述。编写Linux内核需要内核源码内核编译配置文件kernel_config,如下图:具体编译步骤如下:1.解压
    发表于 11-01 17:07 16次下载
    嵌入式<b class='flag-5'>Linux</b>的<b class='flag-5'>内核</b>编译

    STM32MP157 Linux系统移植开发篇8:Linux内核配置方法及编译

    Linux内核配置及编译解压内核建立源码目录该目录下以patch结尾的文件为ST官方提供的补丁文件,linux-5.4.31.tar.xz为
    发表于 12-04 21:06 9次下载
    STM32MP157 <b class='flag-5'>Linux</b>系统移植开发篇8:<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>配置<b class='flag-5'>方法</b>及编译

    AOSP Android11系统源码内核源码简析

    AOSP源码中并不包括内核源码,需要单独下载,内核源码有很多版本,比如common是通用的Linux
    的头像 发表于 01-29 09:25 3603次阅读