Tôi đã thiết lập Ubuntu trong WSL2. Sau đó, tôi đã thử hướng dẫn tại https://wiki.ubuntu.com/TPM/Testing và đã thử thiết lập trình mô phỏng TPM trên Ubuntu. Nhưng vì một số lý do, tôi dường như gặp phải tình huống không thể khởi động trình giả lập do lỗi DBus, trong khi vấn đề thực sự có thể khác. Tôi cũng có thể sao chép vấn đề tương tự khi cố gắng thiết lập trình giả lập TPM trong hành động GitHub bằng cách sử dụng ubuntu-mới nhất
. Vì vậy, tôi chợt nhận ra rằng có thể ai đó biết rõ hơn về các diễn đàn Ubuntu, có vẻ như điều này cũng gây rắc rối cho mọi người trên các chủ đề TPM GitHub. :)
Trình tự hiện tại tôi có như sau:
sudo apt-get cập nhật
sudo apt-get cài đặt tpm2-abrmd
sudo apt-get cài đặt libtss2-tcti-tabrmd-dev
sudo tpm2-abrmd --tcti=mssim --allow-root
hoặc trên GitHub Actions, phần thứ hai là
dịch vụ sudo bắt đầu tpm2-abrmd
sudo tpm2-abrmd --allow-root --tcti=mssim --logger=stdout
có vẻ như hoạt động do cách thiết lập quyền truy cập.
> Sudo tpm2-abrmd --tcti=mssim --allow-root
** (quy trình: 741): CẢNH BÁO **: 16:36:40.585: tcti_conf trước: "thiết bị:/dev/tpm0"
** (tpm2-abrmd:741): CẢNH BÁO **: 16:36:40.585: tcti_conf sau: "mssim"
** (tpm2-abrmd:741): CẢNH BÁO **: 16:36:40.586: Không thể nhận proxy cho trình nền DBus (org.freedesktop.DBus): Không thể kết nối: Không có tệp hoặc thư mục như vậy
** (tpm2-abrmd:741): TIÊU CHUẨN **: 16:36:40.586: Không lấy được tên DBus com.intel.tss2.Tabrmd.UID 0 phải được phép "sở hữu" tên này. Kiểm tra cấu hình DBus và kiểm tra xem cái này có đang chạy với tư cách người dùng tss hoặc root không.
CẢNH BÁO:tcti:src/util/io.c:251:socket_connect() Không thể kết nối với máy chủ 127.0.0.1, cổng 2321: errno 111: Kết nối bị từ chối
CẢNH BÁO:tcti:src/tss2-tcti/tctildr.c:62:tcti_from_init() Khởi tạo TCTI cho chức năng 0x7f0f40e733d0 không thành công với a000a
CẢNH BÁO:tcti:src/tss2-tcti/tctildr.c:92:tcti_from_info() Không thể khởi tạo TCTI có tên: tcti-socket
LỖI:tcti:src/tss2-tcti/tctildr-dl.c:150:tcti_from_file() Không thể khởi tạo tệp TCTI: mssim
LỖI:tcti:src/tss2-tcti/tctildr.c:418:Tss2_TctiLdr_Initialize_Ex() Không thể khởi tạo TCTI
** (tpm2-abrmd:741): CRITICAL **: 16:36:40.586: init_thread_func: không thể tạo TCTI với conf "mssim", có RC: 0xa000a
Nhìn vào cấu hình DBus, có /etc/dbus-1/system.d/tpm2-abrmd.conf
:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- ../system.conf have denied everything, so we just punch some holes -->
<policy user="tss">
<allow own="com.intel.tss2.Tabrmd"/>
</policy>
<policy user="root">
<allow own="com.intel.tss2.Tabrmd"/>
</policy>
<policy user="XYZ">
<allow own="com.intel.tss2.Tabrmd"/>
</policy>
<policy context="default">
<allow send_destination="com.intel.tss2.Tabrmd"/>
<allow receive_sender="com.intel.tss2.Tabrmd"/>
</policy>
</busconfig>
Cũng thế /etc/dbus-1/system.d/tpm2-abrmd.service
:
[Đơn vị]
Mô tả=TPM2 Access Broker và Daemon quản lý tài nguyên
Sau=systemd-udev-settle.service
Yêu cầu=systemd-udev-settle.service
# Điều kiện này là cần thiết khi sử dụng thiết bị TCTI. Nếu
# TCP mssim được sử dụng thì điều kiện sẽ được nhận xét.
# Điều kiệnPathExistsGlob=/dev/tpm*
[Dịch vụ]
Loại = dbus
BusName=com.intel.tss2.Tabrmd
StandardOutput=nhật ký hệ thống
ExecStart=/usr/sbin/tpm2-abrmd --tcti=mssim
Người dùng = tss
[Cài đặt]
WantedBy=multi-user.target
Tôi sẽ thêm nó đang chạy như thế nào
sudo -u tss /usr/local/sbin/tpm2-abrmd --tcti=mssim --logger=stdout &
Dường như không có sự khác biệt. Kết quả của điều đó là
> [2] 163
XYZ@ABC:/$ sudo: /usr/local/sbin/tpm2-abrmd: không tìm thấy lệnh
[2]- Thoát 1 sudo -u tss /usr/local/sbin/tpm2-abrmd --tcti=mssim --logger=stdout
Cũng có thể, thậm chí có khả năng là tôi không biết mình đang làm gì. Khá mới đối với Linux và Ubuntu.