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

Ubuntu server 14.04.1安装TPM-emulator(成功步骤)

2016-03-01 11:16 447 查看
参考:http://blog.csdn.net/nn179/article/details/8547018

1.安装CMake

sudo apt-get install cmake

2.安装GNU MP library

下载网址:http://gmplib.org

我用的是:http://ftp.gnu.org/gnu/gmp/

我下载的版本是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(安装前先运行比较好,因为我的提示缺少m4)

我省略第三步,因为这步不知道干什么(安装图形化啥的我的是Ubuntu14.4.1server版本感觉用不到吧)

4.安装Tpm_emulator

下载:https://developer.berlios.de/project/showfiles.php?group_id=2491

我是用的:https://github.com/PeterHuewe/tpm-emulator

我下载的版本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文件

其中安装过程出现错误说找不到/usr/src/...//Makefile 这个文件。运行

#export ARCH=x86//就可以了

5.初始化、启动TPMemulator

初始化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就代表安装模拟器成功了

6. 安装TSS协议栈

6.1 安装trousers

下载网址:http://sourceforge.net/project/showfiles.php?group_id=126012

我下载的是0.3.10版本

解压:#tar -zxf trousers-0.3.8.tar.gz

安装:参考其中的README文件,我的是64位主机。



安装貌似只安装了第一个,其他的安不上。。。不过后来编译安装没发现错误。
需要把它自己的tddl库改成tpm_emulator提供的库:
(1)在编译前,我们首先对其中的几个文件进行修改

修改./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第54, 55行如下:

54 tcsd_DEPENDENCIES =${top_builddir}/src/tcs/libtcs.a \
55 ${top_builddir}/src/tcs/libtddl.so
为:
54 tcsd_DEPENDENCIES =${top_builddir}/src/tcs/libtcs.a \
55 /usr/local/lib/libtddl.so

注:上面修改中的/usr/local/lib/有时可能会是/usr/lib,可查看libtddl.so的位置来确定是哪个目录。
(2)该版本文件夹中没有bootstrap,因此,sh bootstrap.sh步骤省去

(3)#./configure

(4)#make

(5)#make install
make报错的话,查看./src/tcsd/Makefile文件中这两处也被更改了。
发现果然是把Makefile里面的两处libtddl库也该成tpm_emulator的库了,这里是不应该改的,再改回来。(参考: http://trollybupt.blog.163.com/blog/static/209167203201352093517205/)
启动TCSD(先启动tpm-emulator,此时一个终端运行着#tpmd -f -d命令,按ctrl+alt+F2启动另一个命令窗口运行以下命令:)
#tcsd -e -f

在启动TCSD之前,必须先启动tpm-emulator,否则会提示找不到设备.

在make中,可能会出现将警告当做错误的情况,使得make无法继续下去,有以下几种解决办法:

- add -Wno-error=unused-but-set-variable to CFLAGS to turn itinto a
warning; or
- remove -Werror from CFLAGS (or append -Wno-error) tocontinue
compiling despite warnings; or
- use -Wno-unused-but-set-variable to disable that particularwarning
entirely.

我这里没有出现make错误。
6.2 安装tpm-tools
直接运行命令:
#apt-get install tpm-tools

OK!最后检测是否成功安装(2个窗口各运行tpmd和tcsd命令,Ctrl+alt+F3打开新窗口)
在/usr/sbin目录下有3个关于tpm的命令运行如下
# cd /usr/sbin

#./tpm_version #查看版本号

#./tpm_getpubek #查看ek公钥

#./tpm_takeownership #获取owner

注:如果都成功表明TPM模拟环境已经完全构建成功了。

如果 tpm_version 出现tpm_version: error while loading sharedlibraries: libtspi.so.1: cannot open shared object file: No suchfile or directory, 则使用命令apt-get installlibtspi-dev

若出现Tspi_Context_Connect failed: 0x00003011 - layer=tsp,code=0011 (17), Communication failure

,则开启tpmd和tcsd即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: