Ubuntu 16.04 LTS 构建TPM_emulator模拟器

首先是在ubuntu16.04,低时延内核上构建的,下载编译tpm-emulator源码时出现错误。经过查找资料,发现tpm-emulator版本与操作系统内核版本不兼容,报错。通过删除其他内核,将内核换成了ubuntu16.04的默认内核,再次尝试编译tpm-emulator,结果依然报错。后来发现是tpm-emulator的版本问题,通过在github上下载tpm-emluator的master的zip格式压缩包,能够正常编译安装通过。下面仅记录能够成功安装的过程。

安装依赖包

apt install g++ m4 openssl* openssl
apt install libssl-dev tpm-tools trousers
#注意上面自动安装的trouser版本过低,如果进pcr的扩展实验,需要先先卸载trousers,安装最新14或15版本的trousers
apt install git cmake

安装gmp

官网下载gmp地址
在这里插入图片描述
tar xvJf gmp-6.2.1.tar.lz
cd gmp-6.2.1/
./configure
make
make check
make install
在这里插入图片描述

下载安装tpm-emulator

下载链接, 注意点击zip下载tpm-emulator-master.zip,然后解压。
cd tpm-emulator-master/
mkdir build
cd build
#下面这个命令有错误,cmake后面是两个点,不是三个
cmake …/
make install

初始化tpm-emulator

tpmd deactivated
killall tpmd
tpmd clear
#启动tpm-emulator
modprobe tpmd_dev
tpmd -f -d clear
#若成功,则显示:
tpm_startup.c:43: Info: TPM_Startup(1)
tpmd.c:416: Debug: waiting for connections…

#若出现Module tpmd_dev not found,则先运行命令:
depmod -a

#若出现failed: address already in use,则运行以下命令:
rm /var/run/tpm/tpmd_socket:0

启动与检验#

#启动顺序:tpm-emulator -> tcsd
#2个终端,一个终端启动tpm-emulator:
tpmd -f -d
#另一个终端启动tcsd:
tcsd -e -f
#成功:tpm-emulator终端循环显示
tpmd.c:456: Debug: waiting for commands…
#tcsd终端显示
TCSD TDDL ioctl: (25) Inappropriate ioctl for device
TCSD TDDL Falling back to Read/Write device support.
TCSD trousers 0.3.14: TCSD up and running.

#失败:
#tcsd终端显示
TCSD TDDL ioctl: (25) Inappropriate ioctl for device
TCSD TDDL Falling back to Read/Write device support.
TCSD TCS ERROR: TCS GetCapability failed with result = 0x1c
#在tpm-emulator终端输入
tpmd -f -d clear

  1. 检验#

在tpm与tcsd启动前提下输入:
cd /usr/sbin
./tpm_version #查看版本号
./tpm_getpubek #查看ek公钥
./tpm_takeownership #获取owner

如果成功显示相关信息,证明TPM模拟环境搭建成功。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值