emulation: failed to load devices
Describe the bug
The eumlation-load doesn't work for kestrel devices, no devices are loaded if multiple devices are tagged. However, if only the ec device XXXXXXX is tagged then emulation-load works as expected.
Below is the list (obscured) of the tagged devices:
$ fwupdmgr emulation-untag
WARNING: This package has not been validated, it may not work properly.
0. Cancel
1. 963961de6b2409c2b3185b18fd3d322bd136ae7c (MST VMM9)
2. 9923e66b0a6fc2a46283d59e454aa3a08a09730d (RTS0 Gen 1 USB Hub)
3. 8a345b397b1043afa96508a2808b8b23e5ab907f (RTS0 Gen 2 USB Hub)
4. c41d6a881e088a321d4ed2cb26fa166a9c10a0be (RTS5 Gen 2 USB Hub)
5. 66e0cafaee62339dffa9af21dd6eb69d99e24c1d (XXXXXXX)
6. 287da0651bbe7af557b588ce0c9aeaa9a39487a6 (USB4 controller)
Choose device [0-6]:
Steps to Reproduce Preparation:
- start daemon
- connect kestrel usb devices
- fwupdmgr emulation-tag (select the listed devices)
- stop daemon
- disconnect the kestrel usb devices
Recording:
- start daemon
- connect kestrel usb devices
- fwupdmgr emulation-save all.zip
- stop daemon
- disconnect the kestrel usb devices
Play:
- start daemon
- fwupdmgr emulation-load all.zip
- fwupdmgr get-devices --filter=emulated ==> no devices are displayed
Attachments:
- emulation-data: all.zip
- daemon runtime log when recording: daemon-connected-host-save.txt
- daemon runtime log when playing: daemon-host-only-load-zip.txt
Expected behavior The tagged devices should be listed.
fwupd version information
$ fwupdmgr --version
compile info.libusb 1.0.27
compile org.freedesktop.fwupd 2.0.2
compile com.hughsie.libxmlb 0.3.21
compile com.hughsie.libjcat 0.2.0
runtime org.freedesktop.fwupd-efi 1.4
compile org.freedesktop.fwupd.source 2.0.1-238-gdcf2bfafe
runtime com.hughsie.libjcat 0.2.0
runtime com.hughsie.libxmlb 0.3.21
runtime org.kernel 6.8.0-48-generic
runtime org.freedesktop.fwupd 2.0.2
Please note how you installed it (apt, dnf, pacman, source, etc): source, at dcf2bfafe25.
**fwupd device information**
Please provide the output of the fwupd devices recognized in your system.
$ fwupdmgr get-devices --show-all-devices
WARNING: This package has not been validated, it may not work properly.
Dell Inc. Latitude 7350
│
├─BC901 NVMe SK hynix 512GB:
│ Device ID: 71b677ca0f1bc2c5b804fa1d59e52064ce589293
│ Summary: NVM Express solid state drive
│ Current version: 51005151
│ Vendor: SK hynix (PCI:0x1C5C)
│ Serial Number: 4YC5N014810305A0T
│ GUIDs: e843baa5-1ac3-58ef-a1d5-da7c169d7a70 ← STORAGE-DELL-111426
│ e16555f6-3161-11ec-8d3d-0242ac130003
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Device is usable for the duration of the update
│ • Signed Payload
│ • Can tag for emulation
│
├─CoreTM Ultra 7 165U:
│ Device ID: 4bde70ba4e39b28f9eab1628f9dd6e6244c03027
│ Current version: 0x0000001f
│ Vendor: Intel
│ GUIDs: e38fa480-0c3d-5240-be48-b590e507eed9 ← CPUID\PRO_0&FAM_06&MOD_AA
│ 189c1794-cc75-56bd-b1f7-8f4af3aa3f82 ← CPUID\PRO_0&FAM_06&MOD_AA&STP_4
│ Device Flags: • Internal device
│
├─Internal SPI Controller:
│ Device ID: 78bee22d775d81748f1c74c8af148c1f6237a845
│ Summary: Memory Technology Device
│ Vendor: DMI:Dell Inc.
│ GUIDs: af783c5c-0390-55a5-ac35-7a6c43c6dbec ← MTD\NAME_BIOS
│ 9075b214-df4f-5c9a-8a1f-569d8e7b39c9 ← MTD\VENDOR_Dell-Inc.&NAME_BIOS
│ 8d08474f-b5f9-5fce-a1a5-64bc154e032a ← MTD\VENDOR_Dell-Inc.&PRODUCT_Latitude-7350&NAME_BIOS
│ Device Flags: • Internal device
│ • Needs a reboot after installation
│ • Cryptographic hash verification is available
│ • Can tag for emulation
│
├─Meteor Lake-P [Intel Graphics]:
│ Device ID: 5792b48846ce271fab11c4a545f7a3df0d36e00a
│ Current version: 08
│ Vendor: Intel Corporation (PCI:0x8086)
│ GUID: 9922fd5e-1672-5a7c-bdc2-3a1e2a04025e ← PCI\VEN_8086&DEV_7D45
│ Device Flags: • Internal device
│ • Cryptographic hash verification is available
│ • Can tag for emulation
│
├─Network Device:
│ Device ID: 0435691b8e5c9ca02155f49c9b14d638d0462056
│ Current version: 04
│ Vendor: Intel Corporation (PCI:0x8086)
│ GUID: c5855774-345c-5ac6-82af-7ab6401cc9d3 ← PCI\VEN_8086&DEV_5503
│ Device Flags: • Internal device
│ • Cryptographic hash verification is available
│ • Can tag for emulation
│
├─XXXXXXX:
│ │ Device ID: 66e0cafaee62339dffa9af21dd6eb69d99e24c1d
│ │ Summary: Dell Dock EC
│ │ Current version: 0.0.14.0
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ Serial Number: 5DHNP54/0000000000000000
│ │ GUIDs: acfcd89b-105d-55b9-b85b-08bf8508f38c ← USB\VID_413C&PID_B06E
│ │ 68486488-92bb-5509-9a4c-801c93331416 ← USB\VID_413C&PID_B06E&DOCKTYPE_07&DEVTYPE_00
│ │ Device Flags: • Updatable
│ │ • Device stages updates
│ │ • Device can recover flash failures
│ │ • Device is usable for the duration of the update
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ ├─DP Mux:
│ │ Device ID: b8addb29b921d25540d30c33d4c9ba2293c50720
│ │ Summary: Dell Dock Retimer
│ │ Current version: 83.0.0.2
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: e9d7e527-79bc-5752-9fe3-7347df1dea31 ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_06
│ │ Device Flags: • Updatable
│ │ • Unsigned Payload
│ │
│ ├─LAN:
│ │ Device ID: 5b04f97bee6a884b4009b5030cc9494341e39ced
│ │ Summary: Dell Dock LAN
│ │ Current version: 2.25
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: ded18075-2dc8-5de0-aea5-575300b1b661 ← EC\DOCKTYPE_07&DEVTYPE_07
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │
│ ├─MST VMM9:
│ │ Device ID: 963961de6b2409c2b3185b18fd3d322bd136ae7c
│ │ Summary: Dell Dock MST
│ │ Current version: 9.03.002
│ │ Bootloader Version: 0.0.000
│ │ Vendor: Dell Computer Corp. (USB:0x413C, SYNA:0x01)
│ │ Install Duration: 40 seconds
│ │ Serial Number: 00004f2d
│ │ GUIDs: b694503a-208b-5ad5-9701-43f8d33ac134 ← USB\VID_413C&PID_B0A5
│ │ 0891e834-750f-537b-9d80-ba4d49e635a2 ← USB\VID_413C&PID_B0A5&BID_05
│ │ 8665b4d7-0914-5a6d-ae0f-a36a6a301bc0 ← USB\VID_413C&PID_B0A5&BID_05&CID_01
│ │ Device Flags: • Updatable
│ │ • Cryptographic hash verification is available
│ │ • Device stages updates
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ ├─PD UP15:
│ │ Device ID: fa0f0d2deb97ed08c2d9197269a557d07cc68977
│ │ Summary: Dell Dock PowerDelivery
│ │ Current version: 0.5.2.15
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: 64f56a0a-57ab-596d-ad19-b6ee0e8e8339 ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_01&INST_01
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │
│ ├─PD UP17:
│ │ Device ID: 163d58b998d136328c5a25cfd4be8c781e89993a
│ │ Summary: Dell Dock PowerDelivery
│ │ Current version: 0.5.1.15
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: 7058008e-18d9-55c6-9ec1-e326df92bd94 ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_01&INST_02
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │
│ ├─PD UP5:
│ │ Device ID: 72a61ea4080a07df54af8ffcdabdc901bd78ff89
│ │ Summary: Dell Dock PowerDelivery
│ │ Current version: 0.5.0.15
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: fe3f6be7-825b-5f56-a59e-d91f79eb02d0 ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_01&INST_00
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │
│ ├─Package Version of Dell dock:
│ │ Device ID: d161bc785ae60cd12499d4b019c4c01917100a71
│ │ Summary: Dell Dock Package
│ │ Current version: 0.0.10.0
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUID: f8511274-2f3c-567c-8fb1-2ff95da4ae14 ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_PACKAGE
│ │ Device Flags: • Updatable
│ │ • Unsigned Payload
│ │ Device Requests: • Message
│ │
│ ├─RTS0 Gen 1 USB Hub:
│ │ Device ID: 9923e66b0a6fc2a46283d59e454aa3a08a09730d
│ │ Summary: Dell Dock USB Hub
│ │ Current version: 1.12
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUIDs: 9d84dbd7-8750-5c6b-8e55-57cfd9f88fda ← USB\VID_413C&PID_B0A1
│ │ cbe221f0-246a-53fa-923b-25d05aa2d240 ← USB\VID_413C&PID_B0A1&DOCKTYPE_07
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ ├─RTS0 Gen 2 USB Hub:
│ │ Device ID: 8a345b397b1043afa96508a2808b8b23e5ab907f
│ │ Summary: Dell Dock USB Hub
│ │ Current version: 1.12
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUIDs: 76fff4f2-85d7-566c-a055-584a5f7e808a ← USB\VID_413C&PID_B0A2
│ │ 817c0df3-50b0-5032-8256-b305195fae5f ← USB\VID_413C&PID_B0A2&DOCKTYPE_07
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ ├─RTS5 Gen 2 USB Hub:
│ │ Device ID: c41d6a881e088a321d4ed2cb26fa166a9c10a0be
│ │ Summary: Dell Dock USB Hub
│ │ Current version: 1.19
│ │ Vendor: Dell Computer Corp. (USB:0x413C)
│ │ GUIDs: e20de53a-f8d7-5915-97d1-e643f76a02b2 ← USB\VID_413C&PID_B0A3
│ │ c28c5c5a-407f-57eb-bca0-ec9dd72a0bb0 ← USB\VID_413C&PID_B0A3&DOCKTYPE_07
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ ├─USB4v2 controller:
│ │ Device ID: 287da0651bbe7af557b588ce0c9aeaa9a39487a6
│ │ Summary: Dell Dock USB4v2 Controller
│ │ Current version: 55.86
│ │ Vendor: Dell Computer Corp. (USB:0x8087, TBT:0x00D4, USB:0x413C)
│ │ GUID: 9eb25c88-7274-5af5-9bcc-d6298f770b35 ← TBT-00d4b0a2
│ │ Device Flags: • Updatable
│ │ • Signed Payload
│ │ • Tagged for emulation
│ │ • Can tag for emulation
│ │
│ └─WT PD:
│ Device ID: b9bd15dd8f36d854cd8096d623580063cb4f1a51
│ Summary: Dell Dock WT PD
│ Current version: 0.0.1.2
│ Vendor: Dell Computer Corp. (USB:0x413C)
│ GUID: 5ed55572-7312-538c-b062-3bb82b21a4ef ← EC\DOCKTYPE_07&DOCKSKU_03&DEVTYPE_0A
│ Device Flags: • Updatable
│ • Unsigned Payload
│
├─System Firmware:
│ │ Device ID: da09124945f291ef6e9e9a50ef324a067716a70a
│ │ Summary: UEFI System Resource Table device (updated via NVRAM)
│ │ Current version: 67073
│ │ Vendor: Dell Inc. (DMI:Dell Inc.)
│ │ Update State: Success
│ │ GUID: d42287a8-51f4-4b9a-8f7c-bd2c6d25d7a7
│ │ Device Flags: • Internal device
│ │ • Updatable
│ │ • System requires external power source
│ │ • Needs a reboot after installation
│ │ • Cryptographic hash verification is available
│ │ • Device is usable for the duration of the update
│ │ Device Requests: • Message
│ │
│ └─UEFI dbx:
│ Device ID: 362301da643102b9f38477387e2193e57abaa590
│ Summary: UEFI revocation database
│ Current version: 423
│ Minimum Version: 423
│ Vendor: UEFI:Linux Foundation
│ Install Duration: 1 second
│ GUIDs: 4a6cd2cb-8741-5257-9d1f-89a275dacca7 ← UEFI\CRT_E28D59CA489BD2AD580F2EA5D62D6A29BB9C02AE5A818434A37DA7FC11DFF9E9&ARCH_X64
│ f8ba2887-9411-5c36-9cee-88995bb39731 ← UEFI\CRT_A1117F516A32CEFCBA3F2D1ACE10A87972FD6BBE8FE0D0B996E09E65D802A503&ARCH_X64
│ Device Flags: • Internal device
│ • Updatable
│ • Needs a reboot after installation
│ • Device is usable for the duration of the update
│ • Only version upgrades are allowed
│ • Signed Payload
│
├─TPM:
│ Device ID: 1d8d50a4dbc65618f5c399c2ae827b632b3ccc11
│ Current version: 1.769.0.0
│ Vendor: ST Microelectronics (TPM:STM)
│ GUIDs: 3680fbf1-593f-586f-91ac-c528b37e8373 ← TPM\VEN_STM&DEV_0000
│ df479455-9790-58c9-b22a-bce5bc9eb149 ← TPM\VEN_STM&MOD_ST33TPHF2XSPI
│ 8d0b4adc-a42f-59eb-9df8-665923afa086 ← TPM\VEN_STM&DEV_0000&VER_2.0
│ d565c809-9cf5-51c1-9ab7-d66b9d70ffbd ← TPM\VEN_STM&MOD_ST33TPHF2XSPI&VER_2.0
│ 4e4dc7f6-cbef-5034-9492-8988a6da0284 ← 0cbe-2.0
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Needs a reboot after installation
│ • Device can recover flash failures
│ • Full disk encryption secrets may be invalidated when updating
│ • Signed Payload
│ • Can tag for emulation
│
├─UEFI Device Firmware:
│ Device ID: 62eaeac7e8b975f47f5e95f824a40c1914a84dab
│ Summary: UEFI System Resource Table device (updated via NVRAM)
│ Current version: 1358975313
│ Minimum Version: 1358975313
│ Vendor: DMI:Dell Inc.
│ Update State: Success
│ GUID: e16555f6-3161-11ec-8d3d-0242ac130003
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Needs a reboot after installation
│ • Device is usable for the duration of the update
│ Device Requests: • Message
│
├─UEFI Platform Key:
│ Device ID: 6924110cde4fa051bfdc600a60620dc7aa9d3c6a
│ Summary: Dell Inc. Platform Key
│ Vendor: Dell Inc.
│ GUID: 5f7cc4ea-9f7a-5c5f-b535-dfbcc73f5ba6 ← UEFI\CRT_2493B118EABD632FD3BA49C333A8329B1982E872
│
├─USB4 Retimer:
│ Device ID: 16d35c510618116e7899ae45e62605572872e713
│ Summary: A physical layer protocol-aware, software-transparent extension device that forms two separate electrical link segments
│ Current version: 23.81
│ Vendor: Intel (THUNDERBOLT:0x8087)
│ GUIDs: 74fb1b87-53e6-5115-bd02-a9fefd06ed9a ← THUNDERBOLT\VEN_8087&DEV_0D9C
│ dac6f95d-7c5b-52b5-8c79-a0436a5ef784 ← TBT-80870d9c-retimer0-0:1.1
│ Device Flags: • Internal device
│ • Updatable
│ • Device stages updates
│ • Unsigned Payload
│ • Can tag for emulation
│
├─USB4v2 controller:
│ Device ID: ac09578de35d9b1235eb9de91437f29df09f06ff
│ Summary: Dell Dock USB4v2 Controller
│ Current version: 55.86
│ Vendor: Dell Computer Corp. (THUNDERBOLT:0x00D4, TBT:0x00D4)
│ GUIDs: 646fbb58-459e-5d3f-b9f0-597887112ada ← THUNDERBOLT\VEN_00D4&DEV_B0A2
│ 9eb25c88-7274-5af5-9bcc-d6298f770b35 ← TBT-00d4b0a2
│ 222ecab6-36a4-584d-8e30-1dd55f9acd4b ← TBT-00d4b0a2-controller0-1
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Device stages updates
│ • Signed Payload
│ • Can tag for emulation
│
├─Unifying Receiver:
│ Device ID: 8e728fac7df0ed409031edeebc63a718afff05a7
│ Summary: Miniaturised USB wireless receiver
│ Current version: RQR12.11_B0032
│ Bootloader Version: BOT01.04_B0016
│ Vendor: USB:0x046D|HIDRAW:0x046D
│ Install Duration: 30 seconds
│ GUID: 279ed287-3607-549e-bacc-f873bb9838c4 ← HIDRAW\VEN_046D&DEV_C52B
│ Device Flags: • Updatable
│ • Signed Payload
│ • Can tag for emulation
│
└─YJ3JK:
Device ID: aec1a869eb0df71b7cea6b3ac71d39b830faf164
Vendor: PNP:AUO
GUID: 340848af-fb81-553f-a1d4-9b81b5539548 ← DRM\VEN_AUO&DEV_CFA4
Device Flags: • Internal device
• Can tag for emulation
Additional questions
- Operating system and version: Ubuntu 24.04
- Have you tried rebooting? Yes
- Is this a regression? No
Can up please attach an emulation with all devices tagged? This will make working out the problem in the daemon a lot easier to track down.
Can up please attach an emulation with all devices tagged?
The other components are gtype devices enumerated within ec that cannot be tagged (i.e.: lack of can tag for emulation flag), the rest component in this plugin is the rmm device that is missing from kernel is due to known issues.
lack of can tag for emulation flag
Can we add the flag in _init() for those devices? or @superm1 maybe a heuristic makes sense, e.g. if you're adding a child to a device that can tag-for-emulation maybe it makes sense to automatically tag the child with the same?
lack of can tag for emulation flag
Can we add the flag in
_init()for those devices? or @superm1 maybe a heuristic makes sense, e.g. if you're adding a child to a device that can tag-for-emulation maybe it makes sense to automatically tag the child with the same?
If the children are normally made automatically by the plugin I don't think they really need to be can tag; particularly in the case of a proxy device.
How about when we tag a device that is proxy for other stuff for emulation we also tag everything it's a proxy for?