Skip to content

Refine firmware services and runtime handover - #695

Merged
huaqianli merged 11 commits into
masterfrom
lee/bugfixes
Sep 8, 2026
Merged

Refine firmware services and runtime handover#695
huaqianli merged 11 commits into
masterfrom
lee/bugfixes

Conversation

@huaqianli

@huaqianli huaqianli commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR improves firmware update reliability by isolating runtime sockets, decoupling backend imports, and localizing UI failure handling per backend card.
It also stabilizes firstboot handoff by waiting for the runtime gateway before redirecting to Cockpit.

Why

Shared runtime paths and globally coupled backend imports caused cross-service side effects, including missing sockets, partial capability failures, and misleading UI states such as prolonged inspecting.

What Changed

  1. Switched system and module firmware services to direct gRPC entrypoints.
  2. Bumped related package versions to publish aligned runtime and API changes.
  3. Added backend-local failure handling in Firmware Center so controller/system failures no longer affect other cards.
  4. Added runtime gateway readiness checks in firstboot onboarding redirect flow.
  5. Delayed backend gRPC imports and loaded protobufs from runtime-scoped paths.
  6. Moved system, eio, event, and module sockets to dedicated runtime directories.

Result

  1. Better fault isolation across firmware backends.
  2. Lower socket-loss risk during service restarts.
  3. More reliable capabilities loading and firstboot redirection.

@huaqianli
huaqianli force-pushed the lee/bugfixes branch 2 times, most recently from 0acbed0 to 14d2cac Compare September 7, 2026 03:12
@huaqianli
huaqianli requested a review from BaochengSu September 7, 2026 03:16
Switch the system firmware service to a direct executable entrypoint.
Keep generated gRPC modules private to the firmware runtime directory.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Switch the module firmware service to a direct executable entrypoint.
Keep generated gRPC modules private to the module runtime directory.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Reflect gRPC and async operation API updates in firmware-related
packages. Keep Event Record on a compatible minor version so the
socket migration stays aligned with its clients.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Keep system firmware inspection available when the EIO controller
service is unavailable. Treat controller inspection errors as a
controller-only availability issue.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Wait for the HTTPS gateway to serve Cockpit after mode switching.
Probe the target path before redirecting to avoid nginx handoff races
that require manual refresh.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Delay-load runtime gRPC modules in fwmgr and SM backends so missing
runtime-specific protobuf paths do not break capability loading.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Mark only the system card unavailable when system inspection fails.
Keep controller and module capabilities independent in Firmware Center.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Move the System Firmware gRPC socket out of the shared /run/iot2050
tree. This prevents unrelated SM service shutdowns from removing the
System Firmware socket path while the service is still running.

Use a dedicated runtime directory name, iot2050-firmware, for the
system service unit and endpoint path.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Move EIO and Event Record sockets into dedicated /run subdirectories
instead of the shared /run/iot2050 tree. This avoids cross-service
socket path removal when one related unit stops or restarts.

Update service RuntimeDirectory values to match the new endpoint
locations.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Move module firmware socket creation to a dedicated runtime directory
instead of relying on /run/iot2050. This keeps module firmware IPC
independent from other SM services and avoids shared directory cleanup
side effects.

Update the systemd unit to own the same runtime directory.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
The CLI polls the current operation stage, so the short-lived
stages may be missed between polls. Track observed stages and
print the flashing banner when entering any flashing stage.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
@huaqianli
huaqianli merged commit 01272bb into master Sep 8, 2026
7 checks passed
@huaqianli
huaqianli deleted the lee/bugfixes branch September 8, 2026 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants