Linux系统移植:内核源码目录分析

Posted 嵌入式up笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统移植:内核源码目录分析相关的知识,希望对你有一定的参考价值。

文章目录

Linux系统移植:内核源码目录分析

一、目录文件简述

先看一下一级目录:

首先看一下 linux 自带的文件夹

目录功能
arch存放架构文件相关目录,该目录下,每种架构都有对应子目录,架构子目录用于控制系统引导、系统调用、动态调频、主频设置等,架构子目录的 configs 存放配置文件,而 boot/dts 目录里面是对应开发平台的设备树文件
block块设备相关目录,像 SD 卡、EMMC、NAND、硬盘等存储设备属于块设备,block 目录中存放着管理块设备的相关文件
crypto加密相关目录,存放着加密算法文件,比如常见的 crc、crc32、md4、md5、hash 等加密算法就在里面
Documentation文档手册相关目录,想了解 Linux 某个功能模块或驱动架构的功能,就可以在 Documentation 目录中查找有没有对应的文档
drivers驱动相关目录,根据驱动类型的不同,分门别类进行整理,比如 drivers/i2c 就是 I2C 相关驱动目录,重点目录
firmeare固件相关目录
fs文件系统相关目录,存放文件系统,比如 fs/ext2、fs/ext4、fs/f2fs 等,分别是 ext2、ext4 和 f2fs 等文件系统
include头文件相关目录
init初始化相关目录,存放 Linux 内核启动的时候初始化代码
ipc进程间通信相关目录,存放进程间通信的具体实现代码
kernel内核相关目录
lib库相关目录,都是一些公用的库
mm内存管理相关目录
net网络相关目录
samples例程相关目录
scripts脚本相关目录,编译的时候会用到很多脚本文件,这些脚本文件就保存在此目录中
security安全相关目录
sound音频处理相关目录
tools工具相关目录
usr与 initramfs 相关的目录,用于生成 initramfs
virt提供虚拟机技术支持 (KVM)

然后看一下相关文件:

源码自带文件:

目录功能
.gitignoregit 工具相关文件
.mailmap邮件列表
COPYING版权声明
CREDITSLinux 贡献者
KbuildMakefile 会读取此文件
Kconfig图形化配置界面的配置文件
MAINTAINERS维护者名单
MakefileLinux 顶层 Makefile
READMELinux 描述文件
REPORTING-BUGSBUG 上报指南

编译生成文件:

目录功能
.configLinux 最终使用的配置文件,编译 Linux 的时候会读取此文件中的配置信息。最终根据配置信息来选择编译 Linux 哪些模块,哪些功能
.missing-syscalls.d不清楚
.tmp_xx不清楚
.version和版本有关
.vmlinux.cmdcmd 文件,用于连接生成 vmlinux
Module.xx
modules.xx
一系列文件,和模块有关
System.map符号表
vmlinux编译出来的、未压缩的 ELF 格式 Linux 文件
vmlinux.o编译生成中间文件

外部文件:

目录功能
linux_build.sh编译脚本

二、VSCode 创建源码工程

VSCode 创建源码工程很简单,解压缩工程后,进入工程建立工作区

然后编译 settings.json 配置脚本,屏蔽掉无关文件,方便分析代码:

主要就是 search.exclude,搜索排除,和 files.exclude 文件排除,排除不用的目录和文件,如下:

代码编写后保存刷新一下目录,就会发现排除文件夹在目录不会显示了,比如架构目录只剩下 arm 文件夹了

以上是关于Linux系统移植:内核源码目录分析的主要内容,如果未能解决你的问题,请参考以下文章

RK3399系统移植 | 移植 linux 原生5.4.32内核

2.15.1.linux内核源码目录结构1

Linux内核移植初探

Linux内核裁剪移植学习分享

i.MX6ULL系统移植 | 移植 linux 原生5.4.32内核

Linux内核裁剪移植学习分享