Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270391
  • 博文数量: 18
  • 博客积分: 787
  • 博客等级: 军士长
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-27 21:20
文章分类

全部博文(18)

文章存档

2015年(2)

2013年(2)

2012年(7)

2011年(1)

2010年(6)

分类: LINUX

2012-06-14 09:33:33

前一段时间写了一篇关于如何在带有tpm芯片的pc机上安装tpm软件栈的博文,最近为了学习方便,又在自己的笔记本电脑上安装了一个模拟器,方便自己开发使用。现将安装手册陈列如下:
开发环境:OpenSUSE 12.1, kernel 3.1.10

1.准备工作:需要安装cmake, gmp库,此处不详述,各个版本的Linux都有在线安装方式,如Ubuntu使用apt-get,redhat使用yum,OpenSUSE使用yast,直接在线安装就好。
注意事项:安装过程中,可能会提示缺少某些库,则读者自行分析缺少的开发库,并下载安装。此处不一一陈述,本文假设读者已经有一定的Linux开发经验。

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
注意事项:若编译过程中报错 /lib/modules/***/build不存在,证明内核不支持模块开发,需要自己动手编译内核。好消息是有另外的方法跳过内核编译,Ubuntu下需要安装(apt-get方式):build-essential,linux-kernel-headers,我使用的是openSUSE,此发行版使用yast安装kernel-devel即可。

初始化 (以下的命令可能需要权限,若不成功,请自行尝试sudo模式)
#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查看启动参数。这一步可能需要权限)
当观察到Debug: waiting for connections...就证明运行成功了。

3.安装trousers。
下载:
重定向tddl
由于使用TPM模拟器,在编译trousers前需要将其以来的tddl库改为TPM模拟器提供的tddl。
修改 ./src/tcsd/Makefile.am :
tcsd_LDADD=../tcs/libtcs.a ../tddl/libtddl.a –lpthread  
为:
tcsd_LDADD=../tcs/libtcs.a /usr/lib/libtddl.so –lpthread
注意事项:不同发行版,libtddl.so的位置不同,像我的openSUSE,libtddl保存在/usr/local/lib/中,所以建议安装前查看自己的libtddl.so位置再修改
修改 ./src/tcsd/Makefile.in :
tcsd_DEPENDENCIES = ../tcs/libtcs.a ../tddl/libtddl.a
为:
tcsd_DEPENDENCIES = ../tcs/libtcs.a /usr/lib/libtddl.so
注意事项同上。
To build trousers after you have the device driver installed:
$ sh bootstrap.sh
$ ./configure [--enable-debug] [--enable-gprof] [--enable-gcov]
   $ make
   # make install
若出现奇怪的问题,比如bootstrap不存在,可从老版本的trousers中拷贝一个过来。其他错误可以参见我的另一篇博文《TPM笔记(2)--TPM安装手册》
启动TCSD
#tcsd -e -f
注意事项:我运行时出现错误信息:/usr/local/sbin/tcsd: error while loading shared libraries: libtddl.so.1.2: cannot open shared object file: No such file or directory
查看后发现文件是存在的,这时一般是 动态链接库的路径没设置正确,我的库路径为/usr/local/lib,则在 /etc/ld.so.conf 添加一行“/usr/local/lib”,然后运行ldconfig.此时发现运行成功!

4. 安装tpm-tools, tpmmanager等,过程不详述,参见我的另一篇TPM安装博文。当出现tpmmanager的熟悉画面时,系统就搭建成功啦!这中间可能会出现若干小问题,若我的文章中没有提到,请仔细思考原因,逐个解决。


阅读(7442) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

Van_______2016-09-01 22:44:10

您好,现在tpmmanager下不到了,请问您能不能发给我一份?

tzqhello2013-04-22 23:58:30

manman911212:楼主,想问一下安装trousers的时候为什么make 的时候老这样报错呢:
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In function `req_mgr_submit_req':
tcs_req_mgr.c:(.text+0x67): undefined reference to `Tddli_TransmitData'
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In function `req_mgr_init':
tcs_req_mgr.c:(.text+0x114): undefined reference to `Tddli_Open'
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In funct

我也遇到的相同的问题,请问您解决了吗?能不能分享一下

回复 | 举报

manman9112122013-03-18 09:19:02

楼主,想问一下安装trousers的时候为什么make 的时候老这样报错呢:
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In function `req_mgr_submit_req':
tcs_req_mgr.c:(.text+0x67): undefined reference to `Tddli_TransmitData'
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In function `req_mgr_init':
tcs_req_mgr.c:(.text+0x114): undefined reference to `Tddli_Open'
../../src/tcs/libtcs.a(libtcs_a-tcs_req_mgr.o): In funct