您的位置:首页 > 产品设计 > 产品经理

ubuntu下安装TPM模拟器 --成功步骤

2013-01-27 20:57 288 查看
首先,安装环境是:

我的实验室电脑,装了vmware station,上面装了ubuntu

然后呢,装上vmware tools工具,装好了不过总感觉有点问题。

然后就开始准备安装TPM模拟器了~

首先,参看文章http://www.uplook.cn/Linux/8/Linux_85695.html

这个文章写的很详细了,一步步来基本没问题。所以一定要不怕困难,有互联网还怕什么问题,出了问题想办法解决就是了。

总体的安装步骤有:

安装vmware tools

安装cmake

安装gmp库

安装GTK

安装TPM模拟器、初始化TPM、启动TPM、

安装TSS协议栈:(:trousers和tpm-tools)、启动TCSD

检测是否安装成功

安装tpmmanager,运行tpmmanager

遇到的问题:

1、解压文件的问题:解压出错,上网查好像说是下载的包有问题,就重新下载了一下。就可以了。

2、解压命令:

tar –zxvf aaa.tar.gz

tar –zxvf aaa.tar.bz2

经过一番折腾,总算在Ubuntu下构建好了模拟TPM环境,步骤如下:
环境:虚拟机VMWare + ubuntu 12,非root用户必要时候sudo即可
1.安装CMake
下载网址:http://www.cmake.org/
我下载的版本是cmake-2.8.8.tar.gz
解压:#tar -zxf cmake-2.8.8.tar.gz
安装:(1)#cd cmake-2.8.8
(2)#./bootstrap
(3)#make
(4)#make install
参考其中的Readme.txt文件
这一步在(1)的时候可能会遇到没有C++编译器之类的问题,可以敲入命令apt-get
install g++解决

备注:上面是文章的作者的做法,我是直接在终端apt-get的,。方法为
sudo apt-get install cmake
这样,就会自动安装了,如果找不到的话,可以按上述描述下载,然后安装。
2.安装GNU MP library
下载网址:http://gmplib.org
我下载的版本是gmp-5.0.5.tar.bz2
解压:#tar -jxf gmp-5.0.5.tar.bz2
安装:1)#./configure
(2)#make
(3)#make check
(4)#make install
参考其中的INSTALL文件
若出现提示缺少m4,则敲入命令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所需的所有文件统通下载安装完毕
4.安装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

(2) #mkdir build

(3) #cd build

(4) #cmake ../

(5) #make

(6) #make install


参考其中的README文件


初始化TPM模拟器

#tpmd deactivated

#killall tpmd

#tpmd clear


启动软TPM

#modprobe tpmd_dev
#tpmd -f -d(tpmd -h查看启动参数)//如果遇到异常,则用tpmd
–f –d clear启动


若出现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...
这个connection就代表安装模拟器成功了

5.TSS协议栈安装
下载网址:http://sourceforge.net/project/showfiles.php?group_id=126012
我下载的协议栈包如下:
testsuite-0.3.tar.gz, grub-0.97-13-ima-1.1.0.0.tgz, tpm_keyring2-0.1.tar.gz, tpm-tools-1.3.8.tar.gz, openssl_tpm_engine-0.4.1.tar.gz, trousers-0.3.8.tar.gz
实际上我只安装了tpm-tools-1.3.8.tar.gz和trousers-0.3.8.tar.gz两个包。步骤如下:
首先安装trousers-0.3.8.tar.gz
解压:#tar -zxf trousers-0.3.8.tar.gz
安装:参考其中的README文件
(1)在编译前,我们首先对其中的几个文件进行修改,因为要重定向tddl
修改./src/tcsd/Makefile.am第4行如下:
4 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行如下:

55 tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a

56 ${top_builddir}/src/tcs/libtddl.so
为:

55 tcsd_DEPENDENCIES = ${top_builddir}/src/tcs/libtcs.a

56 /usr/local/lib/libtddl.so
注:上面修改中的/usr/local/lib/有时可能会是/usr/lib,可查看libtddl.so的位置来确定是哪个目录。

(2)sh bootstrap.sh
//若没有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 it into a

warning; or

- remove -Werror from CFLAGS (or append -Wno-error) to continue

compiling despite warnings; or

- use -Wno-unused-but-set-variable to disable that particular warning

entirely.
我使用了第三种,即将命令(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文件
(1) # sh ./bootstrap.sh因为没有bootstrap.sh文件,所以该步省掉(2) # ./configure

(3)
# make

(4) # make install

若出现ld returned 1 exit status,error, undefined reference的情况,可将(2)命令改为
./configure --prefix=/usr
参考自http://sourceforge.net/mailarchive/forum.php?thread_name=8EC9AB6E66453948A332E1C0D268369D09FF82@IMCMBX03.MITRE.ORG&forum_name=trousers-users
原话为:
what may be happening here is that when you rebuild trousers

from source it gets installed in /usr/local by default, then when you

build tpm-tools it can only find your distro's libtspi.so in /usr/lib.

./configure --prefix=/usr should fix this.
成功解决。
6.检测是否成功安装:
tpm-tools-1.3.8/src/tpm_mgmt/目录下查看以下三个信息:
#./tpm_version #查看版本号
#./tpm_getpubek #查看ek公钥
#./tpm_takeownership #获取owner
注:如果都成功表明TPM模拟环境已经完全构建成功了。
如果 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
若出现Tspi_Context_Connect failed: 0x00003011 - layer=tsp, code=0011 (17), Communication failure

,则开启tpmd和tcsd即可。
另外,
在tpm_emulator-0.7.4/tddl文件夹下有测试事例:

../tpm_emulator-0.7.4/tddl# gcc -o test_tddl test_tddl.c -ltddl// -ltddl 为链接tddl的动态链接库

../tpm_emulator-0.7.4/tddl# LD_LIBRARY_PATH=/usr/local/lib ./test_tddl//运行结果
因为$PATH中没有路径/usr/local/lib,因此,需要加上LD_LIBRARY_PATH=/usr/local/lib,不然会报错

7、安装TPMManager

其实tpmmanager可装可不装,主要是它提供QT界面可以直观查看和管理TPM而已,比较方便。tpmmanager-0.8安装需要QT支持,需要安装qt4-qmake。但是make过程会出现缺少uic-qt4
command not found,还需要安装libqt4-dev。编译安装过程

也就是说,首先:

sudo apt-get install qt4-qmake

sudo apt-get install libqt4-dev

#cd tpmmanager-0.8 //这个版本是博客里作者的,要看自己下载的是什么版本

#qmake–v
#查看qt版本,如果没有,apt-get install qt4-qmake

#qmake

#make

(make的过程提示错误,src/TPMManager.cxx:412:47:error:
can not call constructor ‘QUrl::Qurl’
directly[-fpermissive],如果出现了同样的错误,打开这个文件,修改TPMManager.cxx 412行,将

QUrl myURL =
QUrl::QUrl(url, QUrl::strictMode)
修改为QUrl myURL =QUrl(url, QUrl::strictMode)
源码就可以继续编译)

# install bin/tpmmanager /usr/local/bin

运行tpmmanager

#tpmmanager

提供几个安装的时候参考的网址:

1、http://www.uplook.cn/Linux/8/Linux_85695.html超级详细很有用

2、http://blog.chinaunix.net/uid-23757972-id-3074677.html也很详细,只是非ubuntu

3、
vTPM的安装,这个很本文无关,只是在这里记录一下

http://www.etcn.cn/Tech/Os/Linux/2012/1022/43906.html

4、http://blog.chinaunix.net/uid-23757972-id-3242694.html 这个和2是一个作者

5、http://blog.chinaunix.net/uid-20657527-id-1588199.html 这个解决了遇到的问题,就是tpm启动的是要clear一下。tpmd
–d –f clear


6、/article/10209995.html 这个也是安装步骤,参考。不过就介绍了一点,只有TPM模拟器的安装。

注意在软件的安装包里都有readme类似的东西,值得参考!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: