Puncte:1

Cum să rulați un simulator TPM pe o mașină Ubuntu (poate DBus incorect)?

drapel ke

Am un Ubuntu configurat în WSL2. Apoi am încercat instrucțiuni la https://wiki.ubuntu.com/TPM/Testing și am încercat să configurez simulatorul TPM pe Ubuntu. Dar dintr-un motiv oarecare se pare că ajung într-o situație în care nu pot porni simulatorul din cauza erorii DBus, în timp ce problema reală ar putea fi diferită. Pot replica aceeași problemă și încercând să configurez un simulator TPM în acțiunea GitHub folosind ubuntu-latest. Așadar, mi-a trecut prin minte că poate forumurile Ubuntu le cunoaște cineva mai bine, se pare că acest lucru îi deranjează și pe cei de pe firele TPM GitHub. :)

Secvența curentă pe care o am este următoarea:

sudo apt-get update
sudo apt-get install tpm2-abrmd
sudo apt-get install libtss2-tcti-tabrmd-dev

sudo tpm2-abrmd --tcti=mssim --allow-root

sau pe GitHub Actions a doua parte este

sudo service tpm2-abrmd start
sudo tpm2-abrmd --allow-root --tcti=mssim --logger=stdout

care par să funcționeze datorită modului în care sunt configurate drepturile de acces.

> sudo tpm2-abrmd --tcti=mssim --allow-root

** (proces:741): AVERTISMENT **: 16:36:40.585: tcti_conf înainte de: „device:/dev/tpm0”
 
** (tpm2-abrmd:741): AVERTISMENT **: 16:36:40.585: tcti_conf după: „mssim”

** (tpm2-abrmd:741): AVERTISMENT **: 16:36:40.586: Nu s-a putut obține proxy pentru demonul DBus (org.freedesktop.DBus): Nu s-a putut conecta: Nu s-a putut conecta: Nu există un astfel de fișier sau director

** (tpm2-abrmd:741): CRITIC **: 16:36:40.586: Nu s-a putut achiziționa numele DBus com.intel.tss2.Tabrmd.UID 0 trebuie să aibă permisiunea de a „deține” acest nume. Verificați configurația DBus și verificați dacă aceasta rulează ca utilizator tss sau root.
AVERTISMENT:tcti:src/util/io.c:251:socket_connect() Nu s-a putut conecta la gazda 127.0.0.1, portul 2321: errno 111: Conexiune refuzată
AVERTISMENT:tcti:src/tss2-tcti/tctildr.c:62:tcti_from_init() TCTI init pentru funcția 0x7f0f40e733d0 a eșuat cu a000a
AVERTISMENT:tcti:src/tss2-tcti/tctildr.c:92:tcti_from_info() Nu s-a putut inițializa TCTI numit: tcti-socket
EROARE:tcti:src/tss2-tcti/tctildr-dl.c:150:tcti_from_file() Nu s-a putut inițializa fișierul TCTI: mssim
EROARE:tcti:src/tss2-tcti/tctildr.c:418:Tss2_TctiLdr_Initialize_Ex() Nu s-a putut instanția TCTI

** (tpm2-abrmd:741): CRITICAL **: 16:36:40.586: init_thread_func: nu s-a putut crea TCTI cu conf "mssim", a primit RC: 0xa000a

Privind configurația DBus, există /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>

De asemenea /etc/dbus-1/system.d/tpm2-abrmd.service:

[Unitate]
Descriere=TPM2 Access Broker și Daemon de gestionare a resurselor
După=systemd-udev-settle.service
Necesită=systemd-udev-settle.service
# Această condiție este necesară când se utilizează dispozitivul TCTI. Dacă
# TCP mssim este folosit, atunci condiția ar trebui comentată.
# ConditionPathExistsGlob=/dev/tpm*

[Serviciu]
Tip=dbus
BusName=com.intel.tss2.Tabrmd
StandardOutput=syslog
ExecStart=/usr/sbin/tpm2-abrmd --tcti=mssim
Utilizator=tss

[Instalare]
WantedBy=multi-user.target

Voi adăuga că alergarea ca

sudo -u tss /usr/local/sbin/tpm2-abrmd --tcti=mssim --logger=stdout &

Se pare că nu face nicio diferență. Rezultatul este

> [2] 163
XYZ@ABC:/$ sudo: /usr/local/sbin/tpm2-abrmd: comanda nu a fost găsită

[2]- Ieșire 1 sudo -u tss /usr/local/sbin/tpm2-abrmd --tcti=mssim --logger=stdout

De asemenea, poate, chiar probabil, nu știu ce fac. Fiind destul de nou în Linux și Ubuntu.

NotTheDr01ds avatar
drapel vn
Nu vă faceți griji - ați ajuns deja * mult* mai departe decât ar ajunge vreodată majoritatea începătorilor. Este o întrebare foarte bine cercetată, IMHO. Voi încerca să găsesc ceva timp pentru a-l repeta după ce îmi configurez din nou sesiunea „de aruncat/testare”. Cred că se va reduce la faptul că Dbus nu este acceptat pe WSL fără configurație suplimentară. Dacă simulatorul TPM va rula sau nu fără el (sau dacă există o modalitate de a obține „doar suficient DBus”), nu sunt sigur.
drapel ke
Multumesc pentru cuvintele frumoase. Cred că problemele de rădăcină de pe WSL2 și GitHub sunt diferite, dar poate similare. Ar putea fi pe WSL2, systemd nu rulează și nu sunt sigur dacă înregistrarea funcționează ca și altfel. Fac „ceva” pe acțiunile GitHub pentru ca acest lucru să funcționeze și am acceptat WSL2 + Ubuntu pentru iterații mai rapide. :) Dar probabil că este timpul să ne uităm mai profund în dezvoltarea pe Linux, deoarece pare să fie mai rapidă pe GitHub Actions și apoi sunt toate lucrurile native din cloud!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.