【TPM】tpm搭建基础指南
pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助。
参考资料(推荐看)
- ubuntu下安装TPM模拟器 --成功步骤:参考至第2节-安装GNU MP library
- Ubuntu 16.10 / 树莓派3 安装TPM_emulator:从第4节-安装TPM_emulator 参考至 第6节-与TPM_emulator交互(强烈推荐看)
准备
1.有一个Ubuntu环境的虚拟机
我用的虚拟机是VMware Workstation,Ubuntu镜像用的是官网上的。
2.搭建tpm所需的安装包
大家可以先下好安装包再进行搭建
- cmake安装包
- GNU MPlibrary安装包:tar.lz的安装包不好使,建议下载tar.bz2或者tar.xz安装包
- Tpm_emulator安装包:官网的tpm_emulator是在2011年开发的,在linux内核更新后,net.h里面的一些函数进行了更新,用官网的会报错,这个安装包是修改后的版本(从PeterHuewe那儿fork的)。(参考自Ubuntu 16.10 / 树莓派3 安装TPM_emulator)
- trouser安装包
搭建步骤
1.安装m4
在终端输入命令sudo apt-get install m4
2.安装CMake
(1)解压:tar -zxf cmake-XXX.tar.gz
(2)安装:
cd cmake-XXX
./bootstrap
make
sudo make install
- 参考其中的Readme.txt文件
3.安装GNU MPlibrary
(1)解压:tar -jxf gmp-XXX.tar.bz2
(2)安装:
./configure
make
make check
sudo make install
- 参考其中的INSTALL文件
4.安装TPM_emulator
(1)解压:unzip master.zip
(2)安装:
cd tpm-emulator-master/
mkdir build;
cd build
cmake ../
make
sudo make install
【试验】初始化、启动TPM_emulator
(1)初始化tpm:
tpmd deactivated
killall tpmd
tpmd clear
**(2)启动tpm: **
sudo depmod -a
sudo modprobe tpmd_dev
sudo tpmd -f -d
- 如果成功,会不断打印:
Debug: waiting for connections…
5.安装TSS协议栈
5.1 安装trouser
(1)解压:
mkdir trousers
cd trousers
tar -xzvf trousers-XXX.tar.gz
(2)安装依赖(参考安装包里的README):
Packages needed to build:
automake > 1.4
autoconf > 1.4
pkgconfig
libtool
gtk2-devel
openssl-devel >= 0.9.7
pthreads library (glibc-devel)
这些都是建议安装的,我参考的是【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】,使用的命令是:apt-get install -y automake1.9 autoconf2.64 pkgconf pkg-config libtool gtk2-engines openssl
(3)编译安装前的修改:
- 我们需要把它的tddl库改成tpm_emulator提供的库,
- tpm_emulator提供的库的路径为:
/usr/local/lib/libtddl.so
- 大家可以看一下自己的libtddl.so是不是在这里
- 我们需要修改以下两个文件:
./src/tcsd/Makefile.am文件
第四行:
tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tcs/libtddl.so -lpthread @CRYPTOLIB@
修改为:
tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a /usr/local/lib/libtddl.so -lpthread @CRYPTOLIB@
./src/tcsd/Makefile.in文件
第55,56行:
tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a \
${top_builddir}/src/tddl/libtddl.a
修改为:
tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a \
/usr/local/lib/libtddl.so
- 注:该版本文件夹中没有bootstrap,因此省略sh bootstrap.sh步骤
(4)编译安装:
./configure
make
sudo make install
5.2 安装tpm_tools
sudo apt-get install tpm-tools
【试验】启动tcsd
(1)先开一个终端,启动TPM_emulator(上文有):
sudo depmod -a
sudo modprobe tpmd_dev
sudo tpmd -f -d
(2)再开一个终端,启动tcsd:
sudo tcsd -e -f
- 别关,接着试验一下tpm_tools是否安装成功
【试验】tpm_tools是否安装成功
在上一个试验的基础上,再开一个终端,输入如下命令测试运行:
在/usr/sbin目录下有3个关于tpm的命令运行如下
cd /usr/sbin
./tpm_version #查看版本号
./tpm_getpubek #查看ek公钥
./tpm_takeownership #获取owner
如果以上试验都成功了,那么恭喜你,TPM模拟环境已经完全构建成功了~
如果大家想体验一下使用该环境,可以参考【Ubuntu 16.10 / 树莓派3 安装TPM_emulator】的第6节:与TPM_emulator交互 来进行尝试
【TPM】tpm搭建基础指南的更多相关文章
- Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南
win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些 ...
- CentOS6.5 搭建基础PHP环境(yum安装)
转载:闲来无事 » CentOS6.5 搭建基础PHP环境(yum安装) yum安装php环境只需要几条简单的命令就可以实现,OK,各位客官,菜来了.首先确保你的yum源可用,或者网络是通的,不然下载 ...
- Linux命令之Nano基础指南
Nano基础指南 1. Nano基础 目的 这是篇nano简明使用指南,帮助你快速了解nano的基本用法.如想获取更多的帮助信息,请参阅: http://www.nano-editor.org 打开 ...
- Jenkins 持续集成持续发布使用搭建基础
一.环境搭建基础 1.持续集成.持续交付.持续部署概念 ①.集成: 是指软件多人研发的部分软件代码整合交付,以便尽早发现个人开发部分的问题:持续集成:强调开发人员提交了新代码之后,立刻进行构建(单元) ...
- SpringBoot2搭建基础架构——开源软件诞生4
技术框架篇--第4篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,加微信与开发者交流 kzca2000 码云:https://gitee.com/redragon/redr ...
- MacOS上通过虚拟机搭建基础CentOS7系统环境
MacOS上通过虚拟机搭建基础CentOS7系统环境 尽管从Mac的Terminal可以看出,macOS与UNIX.Linux或多或少都有血缘关系(shell.bash等),但是在mac进行Linux ...
- 准备.Net转前端开发-WPF界面框架那些事,搭建基础框架
题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开 ...
- SSM学习(一)搭建基础框架
不知不自觉,工作也两年多了,由于公司一直用的是ssh框架,所以所学也一直是ssh.直到有一天,服务器被攻击,tomcat目录下总有莫名其妙的一些文件,这些文件通过远程ftp下载了一些病毒和木马,服务器 ...
- 写给大忙人的CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南
现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的.经过仔细的分析和研究 ...
随机推荐
- R中的空间数据分析
> library(sp) > library(maptools) > library(raster) > library(rgeos) > maxd3 = readAs ...
- Linux awk命令常见使用方法介绍
Linux awk命令常见使用方法介绍 By:授客 QQ:1033553122 awk运行方式有三种,其中常用的为命令行方式 awk [-F field_separator] '{patter ...
- Android JNI的使用方法
1.JNI是什么 JNI是Java Native Interface的缩写,它提供若干的API实现Java与其他语言之间的通信.而Android Framework由基于Java语言的的Java层与基 ...
- Java:运算符的问题
算术运算符: 算术运算符的注意问题 1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数就另当别论. -5%3=-2:-5%-3=-2:符号跟被模数(左边). 2. 对于除号 ...
- Prometheus Node_exporter 之 Memory Detail Vmstat Counters
Memory Detail Vmstat Counters 1. Memory Page Active type: GraphUnit: shortLabel: PagesActive_anon - ...
- EJB2.0 ejb-jar.xml配置文件详解
<ejb-jar><!--EJB发布描述器的根元素,它包含一个可选的EJB-JAR文件的描述,可选显示的名称,可选小图标的文件名,可选的大图标的文件名,必须的所有被包含的enterp ...
- Linux 补丁生成与使用
我们在升级Linux 内核的时候,难免会接触到补丁的知识.下面对如何生成补丁和如何打补丁作讲解. 生成补丁: 制作 hello.c 和 hello_new.c 两个文件如如下所示. ➜ diff ls ...
- Skype 服务器客户端策略参数优化
1.skype通讯录原理 对于skype客户端的通讯录同步,首先说说原理,通讯簿信息是从AD同步的skype前端服务器(每天1:30),在从前端服务器同步的客户端(大概1小时内同步一次). skype ...
- Linux之添加交换分区
Linux下的交换分区我们可以随意改变大小,如果说日常生活中分区不够用,今天我们来举个例子如何添加. 1.首先是使用dd命令创建一个空文件,这个空文件的大小就是你要继续添加的swap的大小,比如我这里 ...
- linux操作系统基础讲解
计算机的组成及功能: 现在市场上的计算机组成结构遵循冯 诺依曼体系,由CPU.内存.I/O设备,存储四大部分组成. CPU是整个计算机的核心部件,主要由运算器和控制器组成,它负责整个计算机的程序运行以 ...