Score:1

วิธีเรียกใช้โปรแกรมจำลอง TPM บนเครื่อง Ubuntu (อาจใช้ DBus ไม่ถูกต้อง)

ธง ke

ฉันตั้งค่า Ubuntu ใน WSL2 แล้ว จากนั้นฉันลองใช้คำแนะนำที่ https://wiki.ubuntu.com/TPM/Testing และพยายามตั้งค่าโปรแกรมจำลอง TPM บน Ubuntu แต่ด้วยเหตุผลบางอย่าง ฉันดูเหมือนจะลงเอยด้วยสถานการณ์ที่ฉันไม่สามารถเริ่มโปรแกรมจำลองได้เนื่องจากข้อผิดพลาดของ DBus ในขณะที่ปัญหาจริงอาจแตกต่างออกไป ฉันสามารถทำซ้ำปัญหาเดียวกันนี้ได้ด้วยการพยายามตั้งค่าตัวจำลอง TPM ในการดำเนินการ GitHub โดยใช้ อูบุนตู ใหม่ล่าสุด. ดังนั้น ฉันคิดว่าฟอรัม Ubuntu อาจมีคนรู้ดีกว่า ดูเหมือนว่าปัญหาเดียวกันนี้จะทำให้ผู้คนในเธรด TPM GitHub เหมือนกัน :)

ลำดับปัจจุบันฉันมีดังต่อไปนี้:

sudo apt-get อัปเดต
sudo apt-get ติดตั้ง tpm2-abrmd
sudo apt-get install libtss2-tcti-tabrmd-dev

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

หรือบน GitHub Actions ส่วนที่สองคือ

sudo บริการ tpm2-abrmd เริ่มต้น
sudo tpm2-abrmd --allow-root --tcti=mssim --logger=stdout

ซึ่งดูเหมือนจะใช้งานได้เนื่องจากมีการตั้งค่าสิทธิ์การเข้าถึง

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

** (กระบวนการ:741): คำเตือน **: 16:36:40.585: tcti_conf ก่อน: "อุปกรณ์:/dev/tpm0"
 
** (tpm2-abrmd:741): คำเตือน **: 16:36:40.585: tcti_conf หลัง: "mssim"

** (tpm2-abrmd:741): คำเตือน **: 16:36:40.586: ไม่สามารถรับพร็อกซีสำหรับ DBus daemon (org.freedesktop.DBus): ไม่สามารถเชื่อมต่อได้: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

** (tpm2-abrmd:741): สำคัญ **: 16:36:40.586: ไม่สามารถรับชื่อ DBus com.intel.tss2.TabrmdUID 0 ต้องได้รับอนุญาตให้ "เป็นเจ้าของ" ชื่อนี้ ตรวจสอบการกำหนดค่า DBus และตรวจสอบว่าสิ่งนี้ทำงานในฐานะผู้ใช้ tss หรือรูท
คำเตือน:tcti:src/util/io.c:251:socket_connect() ไม่สามารถเชื่อมต่อกับโฮสต์ 127.0.0.1, พอร์ต 2321: errno 111: การเชื่อมต่อถูกปฏิเสธ
คำเตือน:tcti:src/tss2-tcti/tctildr.c:62:tcti_from_init() TCTI init สำหรับฟังก์ชัน 0x7f0f40e733d0 ล้มเหลวด้วย a000a
คำเตือน:tcti:src/tss2-tcti/tctildr.c:92:tcti_from_info() ไม่สามารถเริ่มต้น TCTI ชื่อ: tcti-socket
ข้อผิดพลาด:tcti:src/tss2-tcti/tctildr-dl.c:150:tcti_from_file() ไม่สามารถเริ่มต้นไฟล์ TCTI: mssim
ข้อผิดพลาด:tcti:src/tss2-tcti/tctildr.c:418:Tss2_TctiLdr_Initialize_Ex() ไม่สามารถยกตัวอย่าง TCTI

** (tpm2-abrmd:741): สำคัญ **: 16:36:40.586: init_thread_func: ล้มเหลวในการสร้าง TCTI ด้วย conf "mssim" ได้รับ RC: 0xa000a

ดูที่การกำหนดค่า DBus มี /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>

อีกด้วย /etc/dbus-1/system.d/tpm2-abrmd.service:

[หน่วย]
คำอธิบาย=TPM2 Access Broker และ Daemon การจัดการทรัพยากร
หลังจาก = systemd-udev-settle.service
ต้องการ=systemd-udev-settle.service
# เงื่อนไขนี้จำเป็นเมื่อใช้อุปกรณ์ TCTI ถ้า
# ใช้ TCP mssim เงื่อนไขควรถูกใส่ความคิดเห็น
# ConditionPathExistsGlob=/dev/tpm*

[บริการ]
พิมพ์=dbus
BusName=com.intel.tss2.Tabrmd
StandardOutput=syslog
ExecStart=/usr/sbin/tpm2-abrmd --tcti=mssim
ผู้ใช้=tss

[ติดตั้ง]
WantedBy=multi-user.target

ฉันจะเพิ่มการวิ่งแบบนั้น

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

ดูเหมือนจะไม่สร้างความแตกต่าง ผลลัพธ์ที่ได้ก็คือ

> [2] 163
XYZ@ABC:/$ sudo: /usr/local/sbin/tpm2-abrmd: ไม่พบคำสั่ง

[2] - ออกจาก 1 sudo -u tss /usr/local/sbin/tpm2-abrmd --tcti=mssim --logger=stdout

นอกจากนี้ยังอาจเป็นไปได้ว่าฉันไม่รู้ว่ากำลังทำอะไรอยู่ ค่อนข้างใหม่สำหรับ Linux และ Ubuntu

NotTheDr01ds avatar
vn flag
ไม่ต้องกังวล คุณได้ทำ *มาก* ในเรื่องนี้มากกว่าที่มือใหม่ส่วนใหญ่จะได้รับ เป็นคำถามที่ค้นคว้ามาอย่างดี IMHO ฉันจะพยายามหาเวลาทำซ้ำหลังจากที่ได้รับการกำหนดค่าเซสชัน "ทิ้ง/ทดสอบ" อีกครั้ง ฉันคิดว่ามันน่าจะมาจาก Dbus ที่ไม่รองรับ WSL โดยไม่มีการกำหนดค่าเพิ่มเติม ตัวจำลอง TPM จะทำงานโดยไม่มีมันหรือไม่ (หรือหากมีวิธีรับ "DBus ที่เพียงพอ") ฉันไม่แน่ใจ
ke flag
ขอบคุณสำหรับคำพูดที่ดี ฉันคิดว่าปัญหารากของ WSL2 และ GitHub นั้นแตกต่างกัน แต่อาจคล้ายกัน อาจเป็นเพราะ WSL2 systemd ไม่ทำงาน และฉันไม่แน่ใจว่าการบันทึกทำงานเหมือนอย่างอื่นหรือไม่ ฉันกำลังทำ "บางอย่าง" ในการดำเนินการของ GitHub เพื่อให้งานนี้สำเร็จและนำไปใช้กับ WSL2 + Ubuntu เพื่อการทำซ้ำที่เร็วขึ้น :) แต่อาจถึงเวลาแล้วที่จะมองลึกลงไปถึงการพัฒนาบน Linux เนื่องจากดูเหมือนว่าจะเร็วกว่าบน GitHub Actions และจากนั้นก็มีสิ่งที่อยู่บนคลาวด์ทั้งหมด!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา