TPM环境搭建 Tpm_emulator模拟器安装过程

来源:互联网 发布:数据库怎么导入excel 编辑:程序博客网 时间:2024/05/21 08:42
在安装的过程中,我参考了以下两位的博客:

浪迹天涯:
               http://blogold.chinaunix.net/u3/96833/showart_1932475.html
zqqa——呆头呆脑看世界:
               http://blogold.chinaunix.net/u/4329/showart_2205462.html

现在的linux内核都已经支持TPM,所以就没有必要再编译内核了

1、安装前的准备工作
(1)CMake安装 
下载:http://www.cmake.org/
解压后有一个Readme.txt文件 这就是给出的安装过程
#cd cmake-2.8.4
#$ ./bootstrap
#make
#make install
但是文件中没有bootstrap,我不知道为什么,但这一步不执行也没关系
(2)GNU MP library 
下载:http://gmplib.org
解压后INSTALL为安装过程
#cd gmp-5.0.1
#./configure
#make
#make check<= VERY IMPORTANT!!
#make install
在安装的过程中提示缺少m4,sudo apt-get install m4
(3)GTK安装 
参考:http://www.linuxidc.com/Linux/2008-09/15955.htm
apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具
apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置
apt-get install devhelp #这将安装 devhelp GTK文档查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档
apt-get install glade libglade2-dev #这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库
apt-get install libgtk2.0*, gtk+2.0所需的所有文件统通下载安装完毕

2、Tpm_emulator安装
下载:https://developer.berlios.de/project/showfiles.php?group_id=2491
解压后README文件为安装和使用的说明
# tar -xvzf tpm_emulator-X.Y.tar.gz
# cd tpm_emulator-X.Y
# mkdir build
# cd build
# cmake ../
# make
# make install

初始化
#tpmd deactivated
#killall tpmd
#tpmd clear
#rm /var/run/tpm/tpmd_socket:0 (出现failed:address already in use 时执行它)

启动软TPM
#modprobe tpmd_dev (如果出现FATAL: Module tpmd_dev not found,则先运行depmod -a)
#tpmd -f -d        (tpmd -h查看启动参数)

3、TSS协议栈安装
下载:http://sourceforge.net/project/showfiles.php?group_id=126012
协议栈包括:trousers,TSS API test suite,tpm-tools,Grub-IMA,OpenSSL TPM Engine,TPM Keyring
     解压后,trousers安装过程在README中

    重定向tddl

由于使用TPM模拟器,在编译trousers前需要将其以来的tddl库改为TPM模拟器提供的tddl

修改 ./src/tcsd/Makefile.am 4行:

tcsd_LDADD=../tcs/libtcs.a ../tddl/libtddl.a –lpthread 

为:

tcsd_LDADD=../tcs/libtcs.a /usr/lib/libtddl.so –lpthread

修改 ./src/tcsd/Makefile.in 59行:

tcsd_DEPENDENCIES = ../tcs/libtcs.a ../tddl/libtddl.a

为:

tcsd_DEPENDENCIES = ../tcs/libtcs.a /usr/lib/libtddl.so

2.3.3修改Trousers Bug

修改 ./src/include/obj_context.h 79行:

struct tcs_api_table *obj_context_get_tcs_api();

为:

struct tcs_api_table *obj_context_get_tcs_api(UINT32);

To build trousers after you have the device driver installed:
$ sh bootstrap.sh
$ ./configure [--enable-debug] [--enable-gprof] [--enable-gcov]
   $ make
   # make install
同样这里没有bootstrap.sh文件,此步不用执行
启动TCSD
#tcsd -e -f

4、tpm-tools安装
tpm-tools安装过程在README中

安装要求:
----- ------------
  Packages needed to build:

  automake
  autoconf
  libtool
  gettext
  gettext-devel
  trousers
  trousers-devel

  optional (for PKCS#11 support - tpmtoken commands)
    openssl-0.9.7 or newer
    openssl-devel-0.9.7 or newer
    opencryptoki-2.2.0 or newer
  安装过程:
  -------- ---------
  $ sh ./bootstrap.sh
  $ ./configure
  $ make
  # make install

5、测试
启动Tpm_emulator
在tpm_emulator-0.7.2/tddl文件夹下有测试事例:
../tpm_emulator-0.7.2/tddl# gcc -o test_tddl test_tddl.c -ltddl// -ltddl 为链接tddl的动态链接库
../tpm_emulator-0.7.2/tddl# LD_LIBRARY_PATH=/usr/local/lib  ./test_tddl//运行结果
Driver status: DRIVER OK
Device status: DEVICE OK
DRV version: 1.5.0.0
TPM Version: 1.1.0.0
Manufacturer: Mario Strasser, ETH Zurich
Module type: Software-based TPM Emulator
Transmit: 00 c1 00 00 00 0a 00 00 00 5a
Result: 00 c4 00 00 00 0a 00 00 00 00
开始我没有加 LD_LIBRARY_PATH=/usr/local/lib  运行报错:
/tpm_emulator-0.7.2/tddl# ./test_tddl 
./test_tddl: error while loading shared libraries: libtddl.so.1.2: cannot open shared object file: No such file or directory
找不到libtddl.so.1.2库,因为$PATH中没有路径/usr/local/lib
来源:http://blog.chinaunix.net/space.php?uid=25564582&do=blog&id=186848
 本人采用Ubuntu 10-10+gmp4.30+tpm_emulator-0.7.4+trousers-0.3.8.tar.gz 安装成功。PS
如果 #tpm_version 出现tpm_version: error while loading shared libraries: libtspi.so.1: cannot open shared object file: No such file or directory,  则使用命令apt-get install libtspi-dev
就OK啦。