树莓派Linux内核编译选项如何开启TPM 2.0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派Linux内核编译选项如何开启TPM 2.0相关的知识,希望对你有一定的参考价值。

参考技术A

本文更新于2018-08-11

首发于, 文章链接 http://www.jianshu.com/p/174844b99716
同步至GitHub: https://github.com/liuqun/linux/wiki

定制树莓派内核源码, 通过树莓派SPI接口加载并访问TPM2.0设备

所需硬件: X86主机一台, 树莓派3-B型号开发板一块, 大容量Micro-SD卡+USB读卡器一个, 英飞凌TPM2.0评估板一套

所需软件: 任意版本树莓派固件(推荐使用 最新版本 ), Ubuntu Linux 虚拟机, gcc-arm-linux-gnueabihf 交叉编译器, libncurses5(编译Linux内核配置菜单界面)

取出树莓派的SD卡, 通过读卡器插入 Ubuntu 主机或将读卡器 USB 设备接入 VMware 虚拟机。Ubuntu 默认自动将 U 盘挂载到 /media/$USER/boot 和 /media/$USER/【根文件系统分区】

(以下为覆盖式安装, 如果不放心请自行备份SD卡上的原有内核及模块文件)

选中 5. Interfacing Options --- P4 SPI(启用/禁用SPI串口)
重启树莓派,开机后检查/dev/tpm0设备文件是否已经加载就绪

树莓派内核开发准备(内核源码获取源码目录树)

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

以上是关于树莓派Linux内核编译选项如何开启TPM 2.0的主要内容,如果未能解决你的问题,请参考以下文章

树莓派学习笔记树莓派Linux内核开发

#星光计划2.0# 添加树莓派4B到OHOS3.0编译框架

树莓派Linux内核配置编译以及烧录详细步骤

树莓派Linux内核配置编译以及烧录详细步骤

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

Linux主机上使用交叉编译移植u-boot到树莓派