树莓派内核开发准备(内核源码获取、启动过程、源码目录树)

目录

  • 1.交叉编译工具的安装
  • 2.内核源码获取
  • 3.嵌入式设备带操作系统的启动过程扫盲
  • 4.Linux内核源码树扫盲
    • 1.内核源码简介
    • 2.Linux内核源代码目录树结构
      • tree指令查看
      • 内核源码目录树

1.交叉编译工具的安装

参照我之前的笔记

2.内核源码获取

下载哪个版本取决于树莓派的版本,用命令查看

uname -r

在这里插入图片描述

官网是外网下载慢,这里是提前下载好的树莓派源内核码资源
链接: https://pan.baidu.com/s/1d8KgnJIc8QoDlZMyt4ITDw
提取码: f3d4

官网下载方式(方便以后下载树莓派其他内核版本):
官网地址:https://github.com/raspberrypi/
在这里插入图片描述

3.嵌入式设备带操作系统的启动过程扫盲

在这里插入图片描述

4.Linux内核源码树扫盲

1.内核源码简介

在这里插入图片描述

2.Linux内核源代码目录树结构

tree指令查看

通过安装tree指令方便看内核源码树目录。
树状显示当前文件夹下包络的文件。做第三方工具安装的时候,可用于检查包里的内容是否完整。

  • 安装
sudo apt-get install tree
  • 使用
tree

在这里插入图片描述

内核源码目录树

arch
包含和硬件体系结构相关的代码,每种平台占一个相应的目录。

每个平台中比较重要的包括:

  • kernel(内核核心部分)
  • mm(内存管理)
  • math-emu(浮点单元仿真)
  • lib(硬件相关工具函数)
  • boot(引导程序)
  • pci(PCI总线)
  • power(CPU相关状态)

block
部分块设备(内存之类的存储介质等)驱动程序。

crypto
常用加密和散列算法(如AES、SHA等)(形成了一个标准,不需要自己去写这些算法),还有一些压缩和CRC校验算法。

Documentation
关于内核各部分的通用解释和注释。(大多看不懂)

drivers
设备驱动程序,每个不同的驱动占用一个子目录。

fs
各种支持的文件系统,如ext、fat、ntfs等。

include
头文件。其中,和系统相关的头文件被放置在linux子目录下。

init
内核初始化代码(注意不是系统引导代码)。

ipc
进程间通信的代码。

kernel
内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。

lib
库文件代码

mm
内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

net
网络相关代码,实现了各种常见的网络协议。

scripts
用于配置内核文件的脚本文件。

security
主要是一个SELinux的模块。

sound
常用音频设备的驱动程序等。

usr
实现了一个cpio。

内核源码目录树详细结构介绍,参照博文:https://www.cnblogs.com/senior-engineer/p/4929703.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux修改文件句柄数生效_修改Linux的open files参数是,立即生效,无需重启

通过命令ulimit -a查看的open files参数的修改:core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (…

柯乐义猜数字游戏

游戏规则:柯乐义请您玩猜数字游戏。后台已经随机生成了一个100到999之间的数字。如果您能在10次之内猜出这个数字,则游戏成功,否则失败。请开始吧。 SilverLight 猜数字游戏:http://keleyi.com/keleyi/phtml/silverlight/ 一次猜数…

fsdisk 分区

芯片主控:imx6q http://lornyin.top/?p545 昨天在做一个linux嵌入式项目时要修改板子的分区,查看了ucl2.xml (mfgtool)文件后,找到了他的分区脚本 #!/bin/sh# partition size in MB BOOT_ROM_SIZE10# call sfdisk …

树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核

目录一、树莓派Linux源码配置(适合树莓派)总体概述配置的三种方式1.照搬厂家的配置(使用这种方式)2.参考厂家的配置(感受一下)3.完全自主配置(需要一定工作经验)二、树莓派Linux内核编译三、树莓派挂载新内…

xshell连接linux出现乱码

今天用Xshell连接linux,查看一个脚本,里面有中文写的注解,出现了乱码,所以记录一下,以便下次用到,也可以帮助遇到同样问题的小伙伴。 以下是乱码的截图: 我们可以照着下面的方式更改编码&#x…

阡陌路-车行天下之汽车基础知识

汽车基础知识 1、什么是ABS   ABS是Anti-LockBrakeSystem的英文缩写,翻译过来可以叫做“刹车防抱死系统”。在没有ABS时,如果紧急刹车一般会使轮胎 抱死,由于抱死之后轮胎与地面是滑动摩擦,所以刹车的距离会变长。如果前轮锁死…

java版本号分段比较_Java实现比较版本号

涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法;这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使用:通常版本号如&#xff1a…

win10 重置串口

最近想起了玩玩51单片机,回味下,发现以前板子送人了,于是随便捡了一个下载器来给AT89S52下程序,下载器是通过串口和电脑通讯的, 可是要求串口端口号不能大于10,我的串口号都特别大,于是尝试到设备管理器里修…

ios 视频知识补充---分解LFLiveKit

视频:泛指将一系列的静态影像以电信号的方式捕捉、记录、处理、储存、传送、重现的各种技术。连续的静态图像变化每秒超过24帧(frame)以上时,由于视觉残留,人眼无法识别单独的静态图片,此时看上去就是平滑且…

快速排序详解以及java实现

快速排序作为一种高效的排序算法被广泛应用,SUN的JDK中的Arrays.sort 方法用的就是快排。 快排采用了经典的分治思想(divide and conquer): Divide:选取一个基元X(一般选取数组第一个元素)&…

机票预订系统活动图_软件工程(第五版)--习题及答案技术总结.docx

PAGE \* MERGEFORMAT43《软件工程》(第五版)习题参考答案第1章 一、判断题1、()软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、()软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。 4、(√)软件同其他事物一样&#xf…

android jni ——Field Method -- Accessing Field

现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调java中的方法。 ---------------------------…

树状数组的建树 单点修改 单点查询 区间修改 区间查询

单点修改 单点查询 用普通数组就能写出来 单点修改 区间查询 用线段树 树状数组&#xff1b; 区间修改 区间查询 用线段树 树状数组&#xff1b; 区间修改 单点查询 用线段树 树状数组&#xff1b; 建树 #include<bits/stdc.h> using namespace std; …

bert 中文 代码 谷歌_如何用最强模型BERT做NLP迁移学习?

作者 | 台湾大学网红教授李宏毅的三名爱徒来源 | 井森堡&#xff0c;不定期更新机器学习技术文并附上质量佳且可读性高的代码。编辑 | Jane谷歌此前发布的NLP模型BERT&#xff0c;在知乎、Reddit上都引起了轰动。其模型效果极好&#xff0c;BERT论文的作者在论文里做的几个实验…

安装ubuntu20.04(安装vim、gcc、VMtools、中文输入法、汉化、修改IP、无法连网问题)

目录ubuntu安装包获取ubuntu的安装安装网络配置命令ifconfig连接网络(解决ubuntu无法连网问题)如何修改IP地址安装VMtools解决VMware Tools选项灰色VMtools安装安装中文&#xff0c;汉化添加中文输入法调整分辨率安装新版的Vim安装gccubuntu安装包获取 xunlei中直接搜索下载 …

arm-2014.05 编译三星内核错误 “not support ARM mode ‘smc 0’ ”

&#xff08;1&#xff09;arch/arm/mach-exynos/include/mach/smc.h文件&#xff1a; 在第54行和第69下面添加&#xff1a; __asm__ volatile (".arch_extension sec\n""smc 0\n": "r"(reg0), "r"(reg1), "r"(reg2), &…

从servlet中获取spring的WebApplicationContext

需要做一个参数初始化类&#xff0c;当web应用被加载时从数据库里取出相关的参数设置&#xff0c;并把这些参数放置到application里&#xff0c;jsp页面可以从中取出。1.在web.xml中配置&#xff1a; <servlet><servlet-name>Dispatcher</servlet-name><s…

python频率_Python中的频率分析

我试图使用Python来检索现场音频输入的主频率。目前&#xff0c;我正在试验使用音频流我的笔记本内置麦克风&#xff0c;但当测试以下代码时&#xff0c;我得到了非常差的结果。# Read from Mic Input and find the freqsimport pyaudioimport numpy as npimport bgeimport wav…

树莓派基于Linux内核驱动开发详解

目录一、驱动认知1.1 为什么要学习写驱动1.2 文件名与设备号1.3 open函数打通上层到底层硬件的详细过程二、基于框架编写驱动代码2.1 编写上层应用代码2.2 修改内核驱动框架代码2.3 部分代码解读2.3.1 static的作用2.3.2 结构体成员变量赋值方式2.3.3 结构体file_operations(最…

Spring AOP(三)--XML方式实现

本文介绍通过XML方式实现Spring AOP&#xff0c;在上一篇中已经介绍了通过注解&#xff0b;java配置的方式&#xff0c;这篇文章主要是看XML中怎么配置&#xff0c;直接上代码了&#xff1a; 一、创建一个连接点 1⃣️定义接口 注意⚠️&#xff1a;可以定义接口&#xff0c;也…