Ubuntu 12 下构建模拟TPM环境
1.安装CMake
我下载的版本是cmake-2.8.8.tar.gz
解压:#tar -zxf cmake-2.8.8.tar.gz
安装:(1)#cd cmake-2.8.8
参考其中的Readme.txt文件
2.安装GNU MPlibrary
下载网址:http://gmplib.org
我下载的版本是gmp-6.0.0a.tar
安装:(1)#./configure
参考其中的INSTALL文件
若出现提示缺少m4,则敲入命令apt-get install m4
3.安装Tpm_emulator
下载:https://developer.berlios.de/project/showfiles.php?group_id=2491
我下载的版本tpm_emulator-0.7.4.tar.gz
解压:#tar -xzf tpm_emulator-0.7.4.tar.gz
安装:(1) #cd tpm_emulator-X.Y
参考其中的README文件
初始化
#tpmd deactivated
#killall tpmd
#tpmd clear
启动软TPM
#modprobe tpmd_dev
#tpmd -f -d
若出现Module tpmd_dev not found,则先运行命令depmod -a
若出现failed: address already in use,则运行命令rm/var/run/tpm/tpmd_socket:0
若成功,会不断出现如下提示:
tpmd.c:310: Debug: waiting for connections...
4.TSS协议栈安装
下载网址:http://sourceforge.net/project/showfiles.php?group_id=126012
我下载的协议栈包如下:
首先安装trousers-0.3.8.tar.gz
解压:#tar -zxf trousers-0.3.8.tar.gz
安装:参考其中的README文件
(1)在编译前,我们首先对其中的几个文件进行修改
修改./src/tcsd/Makefile.am第4行如下:
4
注意:上面为一行
为
tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a/usr/local/lib/libtddl.so -lpthread @CRYPTOLIB@
修改./src/tcsd/Makefile.in第55, 56行如下:
为:
注:上面修改中的/usr/local/lib/有时可能会是/usr/lib,可查看libtddl.so的位置来确定是哪个目录。
(2)该版本文件夹中没有bootstrap,因此,sh bootstrap.sh步骤省去
(3)#./configure
(4)#make
(5)#make install
启动TCSD
#tcsd -e -f
在启动TCSD之前,必须先启动tpm-emulator,否则会提示找不到设备.
在make中,可能会出现将警告当做错误的情况,使得make无法继续下去,有以下几种解决办法:
- add -Wno-error=unused-but-set-variable to CFLAGS to turn itinto a
- remove -Werror from CFLAGS (or append -Wno-error) tocontinue
- use -Wno-unused-but-set-variable to disable that particularwarning
我使用了第三种,即将命令(3)改为env CFLAGS="-Wno-unused-but-set-variable"./configure
一切正常。
然后安装tpm-tools-1.3.8.tar.gz
解压缩:#tar -zxf tpm-tools-1.3.8.tar.gz
安装过程参考其中的README文件