如何 install/start 在 Linux 上使用 swtpm
How to install/start using swtpm on Linux
为了准确起见,我正尝试在 Linux 上开始使用 TPM,在我的 Raspberry Pi 上,最简单的方法是在使用 TPM 之前使用 swtpm 来习惯命令和系统芯片。我尝试了 https://github.com/stefanberger/swtpm/wiki#compile-on-ubuntu-2104 上介绍的方法,但出现错误“无法定位 libtpms-dev”。
然后我找了一种安装libtpms的方法,找到了这个solution。但是在得到这两个之后,我仍然无法 运行 这个命令:
sudo swtpm socket --tpmstate dir=/home/ludovic.peyter/swtpm --tpm2 --server type=tcp,port=2321 --ctrl type=tcp,port=2322 --flags not-need-init,startup-clear
我得到的只是以下错误:
swtpm: SWTPM_NVRAM_Lock_Dir: Could not open lockfile: No such file or directory
和
swtpm: Error: Could not initialize libtpms.
我被困在这里,没有找到任何可以帮助我解决这个问题的方法,甚至没有其他方法可以避免它。
感谢阅读。
您是否检查过 tpmstate 目录是否存在? mkdir /home/ludovic.peyter/swtpm2
可以为您解决。
我有一个完整的解决方案,由许多不同的解决方案和我自己的测试构建而成。
sudo apt -y install dpkg-dev debhelper libssl-dev libtool net-tools libfuse-dev libglib2.0-dev libgmp-dev expect libtasn1-dev socat python3-twisted gnutls-dev gnutls-bin libjson-glib-dev gawk git python3-setuptools softhsm2 libseccomp-dev automake autoconf libtool gcc build-essential libssl-dev dh-exec pkg-config dh-autoreconf libtool-bin tpm2-tools libtss0 libtss2-dev
然后创建一个新目录以便更舒适,然后进入它。
为 libtpms 克隆 git 存储库:
git clone https://github.com/stefanberger/libtpms.git
移动到生成的 libtpms 目录并运行这些命令:
./autogen.sh -–with-openssl
make dist
dpkg-buildpackage -us -uc -j4
然后,正如在最后一个 运行ning 命令结束时所询问的那样,运行 :
libtool --finish /usr/lib/aarch64-linux-gnu/
目录可能不同,请注意dpkg命令末尾的警告。
并完成 libtpms 的安装:
sudo apt install ../libtpms*.deb
现在回到上一个目录并克隆 swtpm git 存储库:
git clone https://github.com/stefanberger/swtpm.git
现在运行这个命令:
dpkg-buildpackage -us -uc -j4
以及之前的运行ning命令请求的命令:
libtool --finish /usr/lib/aarch64-linux-gnu/swtpm
目录可能不同,请注意dpkg命令末尾的警告。
现在完成安装:
sudo apt install ../swtpm*.deb
您需要的一切都已安装。现在您需要修改文件 ~/.profile 或 ~/.bash_profile 以添加此行:
export TPM2TOOLS_TCTI="swtpm:port=2321"
现在,每次您需要 swtpm 时,打开两个终端,然后在其中一个 运行 :
swtpm socket --tmpstate dir=<swtpm_path> --tpm2 --server type=tcp,port=2321 --ctrl type=tcp,port=2322 --flags not-need-init,startup-clear
在其他终端,只要执行上面的命令运行s,就可以运行你所有的TPM命令
为了准确起见,我正尝试在 Linux 上开始使用 TPM,在我的 Raspberry Pi 上,最简单的方法是在使用 TPM 之前使用 swtpm 来习惯命令和系统芯片。我尝试了 https://github.com/stefanberger/swtpm/wiki#compile-on-ubuntu-2104 上介绍的方法,但出现错误“无法定位 libtpms-dev”。
然后我找了一种安装libtpms的方法,找到了这个solution。但是在得到这两个之后,我仍然无法 运行 这个命令:
sudo swtpm socket --tpmstate dir=/home/ludovic.peyter/swtpm --tpm2 --server type=tcp,port=2321 --ctrl type=tcp,port=2322 --flags not-need-init,startup-clear
我得到的只是以下错误:
swtpm: SWTPM_NVRAM_Lock_Dir: Could not open lockfile: No such file or directory
和
swtpm: Error: Could not initialize libtpms.
我被困在这里,没有找到任何可以帮助我解决这个问题的方法,甚至没有其他方法可以避免它。
感谢阅读。
您是否检查过 tpmstate 目录是否存在? mkdir /home/ludovic.peyter/swtpm2
可以为您解决。
我有一个完整的解决方案,由许多不同的解决方案和我自己的测试构建而成。
sudo apt -y install dpkg-dev debhelper libssl-dev libtool net-tools libfuse-dev libglib2.0-dev libgmp-dev expect libtasn1-dev socat python3-twisted gnutls-dev gnutls-bin libjson-glib-dev gawk git python3-setuptools softhsm2 libseccomp-dev automake autoconf libtool gcc build-essential libssl-dev dh-exec pkg-config dh-autoreconf libtool-bin tpm2-tools libtss0 libtss2-dev
然后创建一个新目录以便更舒适,然后进入它。
为 libtpms 克隆 git 存储库:
git clone https://github.com/stefanberger/libtpms.git
移动到生成的 libtpms 目录并运行这些命令:
./autogen.sh -–with-openssl
make dist
dpkg-buildpackage -us -uc -j4
然后,正如在最后一个 运行ning 命令结束时所询问的那样,运行 :
libtool --finish /usr/lib/aarch64-linux-gnu/
目录可能不同,请注意dpkg命令末尾的警告。
并完成 libtpms 的安装:
sudo apt install ../libtpms*.deb
现在回到上一个目录并克隆 swtpm git 存储库:
git clone https://github.com/stefanberger/swtpm.git
现在运行这个命令:
dpkg-buildpackage -us -uc -j4
以及之前的运行ning命令请求的命令:
libtool --finish /usr/lib/aarch64-linux-gnu/swtpm
目录可能不同,请注意dpkg命令末尾的警告。
现在完成安装:
sudo apt install ../swtpm*.deb
您需要的一切都已安装。现在您需要修改文件 ~/.profile 或 ~/.bash_profile 以添加此行:
export TPM2TOOLS_TCTI="swtpm:port=2321"
现在,每次您需要 swtpm 时,打开两个终端,然后在其中一个 运行 :
swtpm socket --tmpstate dir=<swtpm_path> --tpm2 --server type=tcp,port=2321 --ctrl type=tcp,port=2322 --flags not-need-init,startup-clear
在其他终端,只要执行上面的命令运行s,就可以运行你所有的TPM命令