TPM零知识学习十一 —— tpm全安装流程复盘(下)
接前一篇文章《TPM零知识学习十 —— tpm全安装流程复盘(中)》,链接为:
TPM零知识学习十 —— tpm全安装流程复盘(中)_蓝天居士的博客-CSDN博客
五、TPM模拟器做成服务
本步骤前导步骤参见 《TPM零知识学习九 —— tpm全安装流程复盘(上)》—— 一、模拟器安装全流程。在步骤6之后插入以下步骤:
1. 配置TPM服务
创建tpm.server.service文件和配置服务
sudo vim /lib/systemd/system/tpm-server.service
在文件中添加以下内容:
[Unit]
Description=TPM2.0 Simulator Server Daemon
Before=tpm2-abrmd.service[Service]
ExecStart=/usr/bin/tpm_server
Restart=always
Environment=PATH=/usr/bin:/usr/local/bin[Install]
WantedBy=multi-user.target
保存退出。
2. 测试TPM配置情况,启动TPM服务
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl daemon-reload
[sudo] penghao 的密码:penghao@Ding-Perlis-MP260S48:~$ sudo systemctl start tpm-server.service penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status tpm-server.service
● tpm-server.service - TPM2.0 Simulator Server DaemonLoaded: loaded (/usr/lib/systemd/system/tpm-server.service; disabled; vendor preset: enabled)Active: active (running) since Fri 2023-01-13 11:21:10 CST; 14s agoMain PID: 29025 (tpm_server)Tasks: 3 (limit: 18940)Memory: 968.0KCPU: 10msCGroup: /system.slice/tpm-server.service└─29025 /usr/bin/tpm_server1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: Manufacturing NV state...
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: Size of OBJECT = 2600
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: Size of components in TPMT_SENSITIVE = 1096
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: TPMI_ALG_PUBLIC 2
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: TPM2B_AUTH 66
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: TPM2B_DIGEST 66
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: TPMU_SENSITIVE_COMPOSITE 962
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: Starting ACT thread...
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: TPM command server listening on port 2321
1月 13 11:21:10 Ding-Perlis-MP260S48 tpm_server[29025]: Platform server listening on port 2322
说明此时TPM模拟器已经成功配置,并启动服务。
但是有一个问题,重启后再查看服务状态,又回到inactive状态了,如下所示:
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status tpm-server
○ tpm-server.service - TPM2.0 Simulator Server DaemonLoaded: loaded (/usr/lib/systemd/system/tpm-server.service; disabled; vendor preset: enabled)Active: inactive (dead)
应该如何解决这个问题?使用systemctl enable命令。如下所示:
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl enable tpm-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/tpm-server.service → /usr/lib/systemd/system/tpm-server.service.
再次重启并查看tpm_server服务的状态。如下所示:
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status tpm-server.service
[sudo] penghao 的密码:● tpm-server.service - TPM2.0 Simulator Server DaemonLoaded: loaded (/usr/lib/systemd/system/tpm-server.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2023-01-13 11:58:39 CST; 32s agoMain PID: 369 (tpm_server)Tasks: 3 (limit: 18940)Memory: 1.2MCPU: 6msCGroup: /system.slice/tpm-server.service└─369 /usr/bin/tpm_server1月 13 11:58:39 Ding-Perlis-MP260S48 systemd[1]: Started TPM2.0 Simulator Server Daemon.
1月 13 11:58:39 Ding-Perlis-MP260S48 tpm_server[369]: LIBRARY_COMPATIBILITY_CHECK is ON
1月 13 11:58:39 Ding-Perlis-MP260S48 tpm_server[369]: Starting ACT thread...
1月 13 11:58:39 Ding-Perlis-MP260S48 tpm_server[369]: TPM command server listening on port 2321
1月 13 11:58:39 Ding-Perlis-MP260S48 tpm_server[369]: Platform server listening on port 2322
可见,TPM模拟器服务已经正常启动了。
至此,TPM模拟器服务配置流程就完全结束了。
六、tpm2-abrmd做成服务
本步骤前导步骤参见 《TPM零知识学习十 —— tpm全安装流程复盘(中)》—— 四、tpm2-abrmd安装全流程。在步骤11之后插入以下步骤:
1. 修改tpm2-abrmd.service服务配置
修改服务配置文件/lib/systemd/system/tpm2-abrmd.service。原始内容如下:
[Unit]
Description=TPM2 Access Broker and Resource Management Daemon
# These settings are needed when using the device TCTI. If the
# TCP mssim is used then the settings should be commented out.
After=dev-tpm0.device
Requires=dev-tpm0.device[Service]
Type=dbus
BusName=com.intel.tss2.Tabrmd
ExecStart=/usr/local/sbin/tpm2-abrmd
User=tss[Install]
WantedBy=multi-user.target
在启动服务时加载tss动态库并将服务启动到本地2321端口。将文件中“ExecStart=/usr/local/sbin/tpm2-abrmd”修改为“ExecStart=/usr/local/sbin/tpm2-abrmd --allow-root --tcti=mssim”。修改后文件内容如下:
[Unit]
Description=TPM2 Access Broker and Resource Management Daemon
# These settings are needed when using the device TCTI. If the
# TCP mssim is used then the settings should be commented out.
After=dev-tpm0.device
Requires=dev-tpm0.device[Service]
Type=dbus
BusName=com.intel.tss2.Tabrmd
ExecStart=/usr/local/sbin/tpm2-abrmd --allow-root --tcti=mssim
User=tss[Install]
WantedBy=multi-user.target
修改后保存退出。
2. 测试TPM配置情况,启动tpm2-abrmd服务
Bug#995925: tpm2-tss: Latest version breaks tpm2-abrmd due to outdated udev rule
笔者环境的实际情况:
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status tpm2-abrmd.service
[sudo] penghao 的密码:○ tpm2-abrmd.service - TPM2 Access Broker and Resource Management DaemonLoaded: loaded (/usr/local/lib/systemd/system/tpm2-abrmd.service; enabled; vendor preset: enabled)Active: inactive (dead)1月 13 13:07:15 Ding-Perlis-MP260S48 systemd[1]: Dependency failed for TPM2 Access Broker and Resource Management Daemon.
1月 13 13:07:15 Ding-Perlis-MP260S48 systemd[1]: tpm2-abrmd.service: Job tpm2-abrmd.service/start failed with result 'dependency'.
1月 13 13:42:25 Ding-Perlis-MP260S48 systemd[1]: Dependency failed for TPM2 Access Broker and Resource Management Daemon.
1月 13 13:42:25 Ding-Perlis-MP260S48 systemd[1]: tpm2-abrmd.service: Job tpm2-abrmd.service/start failed with result 'dependency'.
1月 13 15:25:49 Ding-Perlis-MP260S48 systemd[1]: Dependency failed for TPM2 Access Broker and Resource Management Daemon.
1月 13 15:25:49 Ding-Perlis-MP260S48 systemd[1]: tpm2-abrmd.service: Job tpm2-abrmd.service/start failed with result 'dependency'.
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status dev-tpm0.device
[sudo] penghao 的密码:○ dev-tpm0.device - /dev/tpm0Loaded: loadedActive: inactive (dead)1月 13 13:07:15 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start timed out.
1月 13 13:07:15 Ding-Perlis-MP260S48 systemd[1]: Timed out waiting for device /dev/tpm0.
1月 13 13:07:15 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start failed with result 'timeout'.
1月 13 13:42:25 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start timed out.
1月 13 13:42:25 Ding-Perlis-MP260S48 systemd[1]: Timed out waiting for device /dev/tpm0.
1月 13 13:42:25 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start failed with result 'timeout'.
1月 13 15:25:49 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start timed out.
1月 13 15:25:49 Ding-Perlis-MP260S48 systemd[1]: Timed out waiting for device /dev/tpm0.
1月 13 15:25:49 Ding-Perlis-MP260S48 systemd[1]: dev-tpm0.device: Job dev-tpm0.device/start failed with result 'timeout'.
可见,是和上述网页中的情况一致的。
笔者环境的实际情况:
penghao@Ding-Perlis-MP260S48:~$ cat TPM/tss/tpm2-tss/dist/tpm-udev.rules
# tpm devices can only be accessed by the tss user but the tss
# group members can access tpmrm devices
KERNEL=="tpm[0-9]*", TAG+="systemd", MODE="0660", OWNER="tss"
KERNEL=="tpmrm[0-9]*", TAG+="systemd", MODE="0660", GROUP="tss"
并不存在/lib/udev/rules.d/60-tpm-udev.rules文件。
可见,需要拷贝~/TPM/tss/tpm2-tss/dist/tpm-udev.rules文件到/lib/udev/rules.d/下,并重命名为60-tpm-udev.rules。
$ sudo cp TPM/tss/tpm2-tss/dist/tpm-udev.rules /lib/udev/rules.d/60-tpm-udev.rules
重启。重启后查看tpm-abrmd服务运行状态:
penghao@Ding-Perlis-MP260S48:~$ sudo systemctl status tpm2-abrmd.service
● tpm2-abrmd.service - TPM2 Access Broker and Resource Management DaemonLoaded: loaded (/usr/local/lib/systemd/system/tpm2-abrmd.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2023-01-13 18:49:25 CST; 1min 4s agoMain PID: 343 (tpm2-abrmd)Tasks: 6 (limit: 18940)Memory: 5.7MCPU: 30msCGroup: /system.slice/tpm2-abrmd.service└─343 /usr/local/sbin/tpm2-abrmd --allow-root1月 13 18:49:25 Ding-Perlis-MP260S48 systemd[1]: Starting TPM2 Access Broker and Resource Management Daemon...
1月 13 18:49:25 Ding-Perlis-MP260S48 systemd[1]: Started TPM2 Access Broker and Resource Management Daemon.
1月 13 18:49:25 Ding-Perlis-MP260S48 systemd[1]: tpm2-abrmd.service: Current command vanished from the unit file, execution of the command list won't be resumed.
penghao@Ding-Perlis-MP260S48:~$ ps -ef | grep abrmd
tss 343 1 0 18:49 ? 00:00:00 /usr/local/sbin/tpm2-abrmd --allow-root
penghao 6947 1585 0 18:52 pts/1 00:00:00 grep --color=auto abrmd
可见,问题已经解决。
至此,tpm-abrmd服务配置流程就完全结束了!
TPM零知识学习十一 —— tpm全安装流程复盘(下)相关推荐
- TPM零知识学习九 —— tpm全安装流程复盘(上)
零.准备工作 1. 用户主目录下创建TPM文件夹 penghao@Ding-Perlis-MP260S48:~$ mkdir TPM 2. 进入TPM文件夹 penghao@Ding-Perlis-M ...
- TPM零知识学习七 —— tpm模拟器安装
本文参考以下链接: TPM模拟器和TPM2-TSS安装_jianming21的博客-CSDN博客_tpm2-tss 可信平台模块TPM(Trusted Platform Module)介绍及tpm-t ...
- TPM零知识学习八 —— tpm组件联调及API实例解析
一.组件联调准备 1. 运行TPM模拟器 ~/TPM/ibmtpm/ibmtpm$ ./src/tpm_server LIBRARY_COMPATIBILITY_CHECK is ON Startin ...
- TPM零知识学习五 —— tpm2-abrmd源码安装
tpm2-abrmd包的的源码安装方法参考: tpm2-abrmd/INSTALL.md at master · tpm2-software/tpm2-abrmd · GitHub TPM模拟器和TP ...
- TPM零知识学习一 —— 初识
本文内容参考借鉴了以下链接: TPM安全芯片_百度百科 TCG(可信计算组织)_百度百科 TPM是什么? TPM英文全称为Trusted Platform Module,中文译为可信赖平台模块.TPM ...
- TPM零知识学习四 —— tpm2-tss源码安装
tpm2-tss包的的源码安装方法参考: tpm2-tss/INSTALL.md at master · tpm2-software/tpm2-tss · GitHub TPM模拟器和TPM2-TSS ...
- 深度学习环境功能以及安装流程
目录 1.Anaconda与python的介绍 01Anaconda(含conda包管理工具) 02Python(pip包管理工具) 2.Anaonda与Pycharm安装 3.pycharm使用Co ...
- Google Earth Engine(GEE)实例代码学习十一——影像全色波段融合提高分辨率(HSV Pan Sharpening)
利用全色波段提高影像分辨率 本文分享如何利用Landsat8全色波段提高影像分辨率 //筛选Landsat8影像云覆盖最少影像 var image = ee.Image(ee.ImageCollect ...
- LM小型可编程控制器软件(基于CoDeSys)笔记三十一:软件安装流程
1.先运行Setup.exe,安装软件. 2.运行开始菜单\CDMK\安装目标,再点击Open按钮,选择C16x_CDMK.tnf,在左边Possible Targets:里面出现KONG DING, ...
最新文章
- LeNet试验(一) 搭建pytorch版模型及运行
- 设计模式总结一波点点
- RT-Thread pin设备驱动代码结构剖析
- AHK-UMSS框架 (AHK通用修饰键解决方案,任何键都是修饰键)
- angular1.x 中重要指令介绍($eval,$parse和$compile)
- c语言打开pdf失败,c语言错误种类总结.pdf
- 如何查询Linux服务的作用
- 全局变量的声明和定义 以及dll中全局变量的导出
- sql常用语句集合(工作总结)
- python多级菜单_python练习题:多级菜单(dict练习)
- Cleaning Bad Data in R R语言数据清理教程 Lynda课程中文字幕
- 东莞理工学院计算机学院论文,东莞理工学院本科生毕业设计(论文)重复率检测实施办法(试行)...
- Mac显示桌面的快捷方式
- ChatGPT开源平替——OpenChatKit(前OpenAI团队打造)
- armbian 斐讯n1_斐讯N1-ArmBian系统写入EMMC及优化
- spydroid-ipcamera-master.zip
- arm linux运行安卓app,Android x86 下运行纯ARM版APP
- Android应用发送短信的实现
- Solidworks2016nbsp;SP4nbsp;下载
- css 实现三角形箭头
热门文章
- antd table合并行或者列(动态添加合并行、列)
- 通过距离感应器获取实际距离[FAQ04538][Sensor]java层获得P_sensor距离传感器当前真实值,不止0,1
- java学习第95天,p586-594(04/23)
- 运动员和教练案例分析
- Python实现小猪佩奇
- idea中摸鱼插件_IDEA 看书摸鱼插件,时隔一年,再次更新
- 【第二十一讲】参数解析器
- Vue el-table-column根据行数据添加button和修改对应数据and控制显示条件
- wk算法-SAR成像算法系列(五)
- Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计