首先,安裝環境是:
我的實驗室電腦,裝了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、http://blog.csdn.net/cicisensy/article/details/5291569 這個也是安裝步驟,參考。不過就介紹了一點,只有TPM模擬器的安裝。
注意在軟件的安裝包裏都有readme類似的東西,值得參考!!