1. 安装过程前一篇文章凌乱地讲了,简略地总结一下:
(1)安装cmake
(2)手动安装GMP库
(3)手动安装tpm emulator,测试是否装好
(4)安装trousers和GTK
自动安装trousers(编程时找不到trousers/和tss/目录下的头文件)失败,改手动安装,期间又安装了GTK所需所有文件。装完也可以进行测试。
(5)安装tpmtools
(6)手动安装tpmmanager
装好就可以打开界面看见TPM的信息了。
2. 安装时补装的依赖和遇到的错误
(1)cmake需要g++,apt-get install g++
(2)GMP需要m4,apt-get install m4
(3)tpm emulator make时出错
tpm_emulator-0.7.2/tpm/tpm_migration.c:407:14: error: variable ‘res’ set but not used [-Werror=unused-but-set-variable]
直接修改源码,注释掉res的定义和res = xxxxxx那一句中res =这一截,简言之就是去掉res,不要把xxxxxx那句函数去掉了。
(4)用apt-get install安装trousers
提示没有openssl,于是apt-get install openssl。
然后出错:E: Sub-process /usr/bin/dpkg returned an error code (1),通过apt-get update更新源之后解决。
(当我把tpm和tss环境都搭好,用人家读取PCR的程序测试时,提示找不到tss/tss_error.h。安装tpmmanager的时候也提示找不到trousers/tss.h,然后我去找trousers的安装目录,未果,于是先把它删除,改手动安装。删除:apt-get remove trousers,这个过程中它把tpm-tools也删了。)
(5)手动安装trousers0.3.13
直接./configure,报错:configure: error: openssl is currently the only supported crypto library for trousers. Please install openssl from http://www.openssl.org or the -devel package from your distro。事实上我已经装了openssl,所以是缺什么-devel包,百度了一下是openssl-devel。
apt-get install libssl-dev(别的平台用yum的话,是yum -y install opssl-devel)
然后我去读了一下README,需要的依赖如下:
automake > 1.4
autoconf > 1.4 //apt-get install automake1.9(版本看个人需要)
pkgconfig //apt-get install pkgconfig
libtool //apt-get install libtool
gtk2-devel //没有这个包,于是我回头把教程里的GTK那一堆文件包都装上了
openssl-devel >= 0.9.7 //这个上面已经解决
pthreads library (glibc-devel) //没找到包,不过没有出什么问题
输入的包找不到时,apt-get install结果可能会提示应该装什么,没有的话就只能自己去网上查。README里面有32bit和64bit不同的安装方法,64bit的需要注意一下。
(6)安装tpm-tools,直接apt-get install tpm-tools,没有出问题。
(7)安装tpmmanager,查看INSTALL,所需依赖如下:
• Qt4 (>= 4.4) // apt-get install libqt4-dev libqt4-debug libqt4-gui libqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig
• TrouSerS //已装
The required packages for (k)Ubuntu in detail are:
• build-essential
• libtspi-dev
• libtspi1
• trousers
• libqt4-dev
全部装上就是,找不到是哪个包的除了去网上搜,还可以索性先不装,然后看安装时出什么错,按错误提示去解决就行。
安装完依赖,按照INSTALL或者教程编译,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) 。
继续安装,后面没出什么问题,安装好之后,运行tpm emulator和trousers(教程里有)运行tpmmanager就能打开界面了。
tpm emulator tpmd
trousers tcsd
tpm manager
ubuntu搭建TPM emulator过程:http://www.linuxdiyf.com/linux/14786.html