Ubuntu 18.04 LTS 构建TPM_emulator模拟器

Ubuntu 18.04 LTS 构建TPM_emulator模拟器

一、 安装准备

1. 环境

主机:Windows 10 1909 18363.657

虚拟机平台:VMware Workstation Pro 15.0

虚拟机:Ubuntu 18.04 LTS

  • Linux 系统下,内核 2.6.12 版本及以上提供了对 TPM 芯片的支持,如果不能满足请下载满足要求的版本:中科大镜像站Ubuntu

2. 依赖

复制sudo su
apt-get install g++
apt-get install m4

#安装openssl-devel
apt-get install openssl
apt-get install libssl-dev

apt-get install tpm-tools

2. 下载

软件包 官网 百度云
gmp-6.2.0.tar.xz http://gmplib.org 百度云链接三样打包(点击) 验证码:2svg
tpm-emulator-master.zip https://github.com/gscsnm/tpm-emulator 同上
trousers-0.3.14.tar.gz https://sourceforge.net/projects/trousers/files/trousers/ 同上
  • 由于有些软件包打包压缩前没有文件夹包裹,解压后会解压到软件包所在文件夹。所以下载完之后,应该创建三个文件夹分别存入并解压,或指定解压路径。

二、 软件安装

0. 由于软件依赖性,请按步骤依次安装

1. cmake

复制sudo -s 
apt-get install cmake

2. tpm-tools

复制sudo apt-get install tpm-tools  #应安装过

3. gmp

复制sudo su
tar xvJf gmp-6.2.0.tar.xz
cd gmp-6.2.0

./configure
make
make check
make install

4.tpm-emulator

  • [1] 安装tpm-emulator

    复制unzip tpm-emulator-master.zip
    cd tpm-emulator-master
    
    mkdir build
    cd build
    export ARCH=x86
    cmake ../
    make install
    
  • [2] 初始化tpm-emulator

    复制tpmd deactivated
    killall tpmd
    tpmd clear
    
  • [3] 启动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
    

5. trousers

  • 0.3.14版本(本文使用)

    复制tar zxvf trousers-0.3.14.tar.gz
    #由于无文件夹包裹,直接在软件包目录进行
    ./configure
    make
    make install
    
  • 0.3.8版本 才需要修改Makefile.am和Makefile.in文件 , 会遇到Werror、ld链接库等报错问题 。推荐本文使用的 0.3.14版本。

三、 启动与检验

1. 启动顺序:tpm-emulator -> tcsd

  • [0] 2个终端

  • [1] 一个终端启动tpm-emulator: tpmd -f -d

  • [2] 另一个终端启动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
    

2. 检验

在tpm与tcsd启动前提下输入:

复制cd /usr/sbin
./tpm_version         #查看版本号
./tpm_getpubek        #查看ek公钥
./tpm_takeownership   #获取owner

如果成功显示相关信息,证明TPM模拟环境搭建成功。

四、参考

作者:Yogile

出处:https://www.cnblogs.com/Yogile/p/12328275.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Yogile  阅读(1865)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题