pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助。

参考资料(推荐看)

准备

1.有一个Ubuntu环境的虚拟机

我用的虚拟机是VMware Workstation,Ubuntu镜像用的是官网上的。

2.搭建tpm所需的安装包

大家可以先下好安装包再进行搭建

搭建步骤

1.安装m4

在终端输入命令sudo apt-get install m4

2.安装CMake

cmake安装包

(1)解压:tar -zxf cmake-XXX.tar.gz

(2)安装:

cd cmake-XXX
./bootstrap
make
sudo make install
  • 参考其中的Readme.txt文件

3.安装GNU MPlibrary

GNU MPlibrary安装包

(1)解压:tar -jxf gmp-XXX.tar.bz2

(2)安装:

./configure
make
make check
sudo make install
  • 参考其中的INSTALL文件

4.安装TPM_emulator

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

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搭建基础指南的更多相关文章

  1. Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南

    win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些 ...

  2. CentOS6.5 搭建基础PHP环境(yum安装)

    转载:闲来无事 » CentOS6.5 搭建基础PHP环境(yum安装) yum安装php环境只需要几条简单的命令就可以实现,OK,各位客官,菜来了.首先确保你的yum源可用,或者网络是通的,不然下载 ...

  3. Linux命令之Nano基础指南

    Nano基础指南 1.  Nano基础 目的 这是篇nano简明使用指南,帮助你快速了解nano的基本用法.如想获取更多的帮助信息,请参阅: http://www.nano-editor.org 打开 ...

  4. Jenkins 持续集成持续发布使用搭建基础

    一.环境搭建基础 1.持续集成.持续交付.持续部署概念 ①.集成: 是指软件多人研发的部分软件代码整合交付,以便尽早发现个人开发部分的问题:持续集成:强调开发人员提交了新代码之后,立刻进行构建(单元) ...

  5. SpringBoot2搭建基础架构——开源软件诞生4

    技术框架篇--第4篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,加微信与开发者交流 kzca2000 码云:https://gitee.com/redragon/redr ...

  6. MacOS上通过虚拟机搭建基础CentOS7系统环境

    MacOS上通过虚拟机搭建基础CentOS7系统环境 尽管从Mac的Terminal可以看出,macOS与UNIX.Linux或多或少都有血缘关系(shell.bash等),但是在mac进行Linux ...

  7. 准备.Net转前端开发-WPF界面框架那些事,搭建基础框架

    题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开 ...

  8. SSM学习(一)搭建基础框架

    不知不自觉,工作也两年多了,由于公司一直用的是ssh框架,所以所学也一直是ssh.直到有一天,服务器被攻击,tomcat目录下总有莫名其妙的一些文件,这些文件通过远程ftp下载了一些病毒和木马,服务器 ...

  9. 写给大忙人的CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南

    现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的.经过仔细的分析和研究 ...

随机推荐

  1. MariaDB Centos7 下安装MariaDB

    Centos7 下安装MariaDB by:授客 QQ:1033553122 1.下载安装文件 rpm包为例,对于标准服务器安装,至少需要下载client,shared,serve文件(安装时如果少了 ...

  2. AndroidStudio 3.0升级之compile、implementation简要说明

    1.现象 androidStudio 升级至3.0后 之前引用库所使用的complie默认变成implementation 如以下: 3.0之前 compile 'io.reactivex.rxjav ...

  3. linux查看某IP尝试连接成功和失败次数

    查看连接失败次数 cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" ...

  4. Prometheus Node_exporter 之 Network Netstat

    Network Netstat /proc/net/netstat 1. Netstat IP In / Out type: GraphUnit: shortLabel: Datagrams out ...

  5. 使用postman给servlet传各种参数

    web开发中经常会使用到postman软件,常用的方法涉及到get和post方法去获取对应json数据,get方法直接传url就可以,返回对应json数据.但是post请求就需要json数据提交,而且 ...

  6. winform中容器是如使用的

    1.容器 (1)FlowLayouPanel 普通容器[内部流式布局] (2)Groupbox 带有标题的普通容器[内部普通布局,超出范围隐藏] (3)Panel 普通容器[内部普通布局,超出范围隐藏 ...

  7. winform 关于Messagebox自动定时关闭

    添加一个类库MessageBoxTimeOut public class MessageBoxTimeOut { private string _caption; public void Show(s ...

  8. SQLTest系列之INSERT语句测试

    原文地址:https://yq.aliyun.com/articles/64375?spm=5176.100239.blogcont69187.22.fhUpoZ 摘要: 一款可以测试MSSQL Se ...

  9. LINE学习

    LINE Abstract LINE 是一种将大规模网络结点表征成低维向量的算法,可很方便用于网络可视化,结点分类,链路预测,推荐. source code Advantage LINE相比于其他算法 ...

  10. SDN 期末作业验收

    前言 SDN 期末作业验收我们是采用的参考场景一,我们在此场景的基础上来做负载均衡,下面是我们搭建的拓扑图 演示视频 https://pan.baidu.com/s/1htkKLPM 负载均衡程序 相 ...