Skip to content

Introduce flavors; CLI rework; Kernel rework; RaspberryPi et al. support#67

Open
rpardini wants to merge 134 commits into
tinkerbell:mainfrom
rpardini:pr/Introduce-flavors-CLI-rework-Kernel-rework-RaspberryPi-et-al-support
Open

Introduce flavors; CLI rework; Kernel rework; RaspberryPi et al. support#67
rpardini wants to merge 134 commits into
tinkerbell:mainfrom
rpardini:pr/Introduce-flavors-CLI-rework-Kernel-rework-RaspberryPi-et-al-support

Conversation

@rpardini
Copy link
Copy Markdown
Member

@rpardini rpardini commented May 7, 2026

Introduce flavors; CLI rework; Kernel rework; RaspberryPi et al. support

Flavors

  • Flavors added:
    • trixie-full - default Debian linux-generic kernel, working apt package manager
    • trixie-slim - uses captainos kernel (built from source), slim profile
    • Armbian-based (DeviceTree) arm64 flavors:
      • RaspberryPi flavor trixie-armbian-rpi with ready-to-netboot firmware produced in rpi-firmware
        directory
      • Rockchip flavors trixie-rockchip64 (mainline), trixie-rockchip64-vendor (vendor kernel)
      • Amlogic flavor trixie-meson64
      • MediaTek Genio flavor trixie-genio
  • Default flavor: trixie-full
  • Introduced BaseFlavor class and a hierarchy of common flavor classes for shared logic and configuration:
    • CommonDebianFlavor for Debian-based flavors (currently every flavor, but allows for future non-Debian ones)
    • CommonAcpiFlavor for ACPI/UEFI flavors
    • CommonArmbianFlavor for DeviceTree/Armbian-based arm64 flavors
    • Flavor hierarchy:
      • common-debian > common-acpi > trixie-full (UEFI/ACPI)
      • common-debian > common-armbian > trixie-armbian-* (DeviceTree)

CLI

  • Switched to Click-based CLI
    • New CliContext for shared options and common CLI behavior
    • Subcommands: build, initramfs, iso, shell, tools, qemu, release, kernel
    • --verbose flag for INFO-level logging
    • --config option for kernel menuconfig round-trip
    • bonus: Added TUI support via Trogon/Textual
  • qemu command with arm64/UEFI/OVMF support, KVM/HVF acceleration
  • shell subcommand for interactive bash under Docker

Kernel Build

  • Reworked kernel build using make bindeb-pkg for .deb output
  • Support for cross-arch kernel builds (amd64 on arm64 and vice-versa)
  • Hash-based caching using defconfig + kernel.py code
  • Kernel's own Kbuild produces deb packages, strip modules, zstd compression
  • 6.18.y.amd64 and 6.18.y.arm64 configs
  • Standard configs for both architectures (from make savedefconfig)
  • Added kernel config round-trip via --config option

GitHub Actions

  • Flavor matrix builds: trixie-slim, trixie-full, trixie-genio, trixie-armbian-rpi, trixie-rockchip64-vendor,
    meson64, trixie-rockchip64
  • Separated build dependencies: trixie-slim depends on build-captainos-with-kernel
  • Don't push OCI artifacts for PR workflows
  • Don't push artifacts when not building main branch
  • Added GHA caches for initramfs and ISO
  • Single matrix with combined amd64/arm64 at the end

Docker Builder image for mkosi host dependencies

  • Split Docker Builder build with builder command; content-hashed per-arch builder images
  • Removed mkosi tools tree - now uses Debian Trixie's system Python for mkosi and uv for Captain
  • Single consolidated Dockerfile with balanced layers (faster pulls)

Release System

  • Built release subcommand on top of Click
  • Subcommands: release pull, release tag, release publish
  • Consolidated OCI metadata/annotations creation with deterministic timestamps and annotations

Build Artifacts & Packaging

  • DTBs are now published for arm64 builds as directories in OCI images (save for trixie-slim)
  • Flavor-specific artifacts (RPi firmware)
  • Content-hashing for initramfs/ISO idempotency
  • Deterministic tar for all layers
  • Split mkosi input (tools/kernel) from output
  • Package directories support for local .deb repos

Common Debian Flavor

  • Common Bash header file with logging functions, error handling
  • Use mkosi-chroot in postinst, enable Network=yes for scripts that might need network access
  • Switch Systemd preset files (20-captainos-base, 10-captainos-tink) instead of postinst-based systemctl invocations
  • Loosened systemd-networkd-wait-online to accept any interface, 15s timeout
  • timesyncd retry every 2s for reliability
  • Tink agent now waits for time-sync.target (time-set.target is not enough)

Logging & Debugging

  • Enhanced Rich logging system
  • Show Rich Tables with env vars when --verbose
  • Show Rich Syntax/Panel for util.run() when --verbose
  • FORCE_COLOR=1 support
  • Whale emoji for in-Docker logs

Customization

  • Custom folder support for end-user customization:
    • custom/packages.txt - extra packages
    • custom/mkosi-postinst/ - extra postinst scripts
    • custom/mkosi-finalize/ - extra finalize scripts
    • custom/files/ - extra root filesystem files
  • Example customization files included with samples for:
    • custom containerd mirror configuration
    • adding trusted root CA certificates
    • adding packages to image
    • executing extra scripts during mkosi postinst and finalize phases

Documentation

  • Updated Markdown documentation
  • Updated kernel build docs
  • Updated OCI/tooling design docs

Note: all code written by humans. Documentation and this summary were Assisted-By: qwen3.5:35b-a3b-coding-nvfp4


all commits:

  • 🍃 captain: fix .isEnabledFor(logging.DEBUG) calls
  • 🌿 captain: force type console in init.py
  • 🍀 captain: catch required arg and loosen type (WiP: other way around.)
  • 🌳 captain: util: Rich rule's separating run() output
  • 🌱 captain: better logging; in-docker: prefix
  • 🌵 captain: add .editorconfig matching ruff
    • .editorconfig for shell scripts and shell templates
  • 🐸 docker/mkosi: mount a Docker Volume at /work, so mkosi can cache the tools tree across invocations
  • 🌴 util: use a Panel to log the full subprocess command line
  • 🍃 captain: introduce Config build_kernel boolean
    • this will allow using a generic/distro kernel instead of building one
  • 🌿 WiP: use linux-image-generic distro kernel
    • hack until it uses the mkosi-supplied kernel for everything
    • artifacts: look for mkosi-supplied vmlinuz first
  • 🍀 gha: skip all kernel stuff
    • self-built kernel from source will come back at a later stage, as a .deb package
  • 🌳 gha: single matrix except for combined amd64/arm64 image at the end
    • just do everything at once
  • 🌱 mkosi.conf: just use tiny-initramfs instead of blocking the others (dracut/initramfs-tools)
  • 🌵 mkosi.finalize: export DTBs for arches that have them
    • also: show info about modules and full rootfs
  • 🐸 artifacts: collect dtb mkosi.output folder into out/
  • 🌴 publish: publish DTBs in OCI image as a directory
  • 🍃 kernel: drop all kernel-build related code
    • later to be reborn as standard apt package
  • 🌿 mkosi.finalize: drop kernel sound/media/net-wireless modules
    • mkosi.finalize: clean up logging a bit
    • mkosi.postinst: debugs
  • 🍀 gha: introduce FLAVOR_ID (nee KERNEL_VERSION) gha: fix
  • 🌳 release: include cfg.kernel_version as suffix to all tags
  • 🌱 gha: bump external actions so GHA stops complaining about Node 24
  • 🌵 gha: pass DEFAULT_FLAVOR_ID as KERNEL_VERSION for publish-combined gha: pass DEFAULT_FLAVOR_ID as KERNEL_VERSION for publish-combined - retry
  • 🐸 captain/gha: KERNEL_VERSION (et al) is now FLAVOR_ID
    • --flavor-id
  • 🌴 captain: cleanups / doc updates WiP (drop kernel build-related)
  • 🍃 captain: DEFAULT_FLAVOR_ID = "trixie-full"
  • 🌿 flavors: introduce flavors but logging sucks and no dataclass better, logging still sucks for Full -> Common much better in-package this sucks less cosmetics some static and template rendering and hardcoded cleanup kinda-works kinda works
  • 🍀 gha: add trixie-rockchip64 flavor
  • 🌳 stages: show what tools_mode is running
  • 🌱 gha: pass --arch to build.py build
  • 🌵 common_debian: add 01nopty with Dpkg::Use-Pty "0"; to mkosi sandbox tree
  • 🐸 captain: add support for mkosi skeleton tree
    • gha: still trying to fix dpkg/apt output in gha
    • this went nowhere, but hindsight is 20/20
  • 🌴 common_debian: common bash header with logging, sprinkle some dust on postinst and finalize
  • 🍃 mkosi.conf: output a JSON manifest
  • 🌿 mkosi.conf: force tools tree to be Debian Trixie
    • mkosi defaults to 'testing'
  • 🍀 mkosi.conf: use sandbox tree also for tools tree
  • 🌳 flavor: ensure flavor supports requested architecture
  • 🌱 flavors: cleanup a bit
  • 🌵 flavors/gha: introduce meson64 flavor
  • 🐸 docker: never interactive, never a terminal
  • 🌴 cli/flavor: pass Flavor down to build and initramfs cmds; introduce BaseFlavor::has_iso()
    • so only the fully UEFI/ACPI flavor gets ISOs by default
    • they don't make sense for DeviceTree flavors
  • 🍃 gha/docker: set and pass down FORCE_COLOR=1
  • 🌿 captain: don't shorten out logging record name
  • 🍀 buildah: take env BUILDAH_INSECURE=1 for --tls-verify=false
    • so one can use an HTTP local registry:2 for testing pushes
  • 🌳 release: pass flavor down to release, avoid releasing iso for !has_iso
  • 🌱 cli: new cli under click_cli
    • add to pyproject.toml, thus uv run captain ...
  • 🌵 click: add tools command
    • using captain.cli._stages
  • 🐸 click: some sugar, list available flavors via reflection
  • 🌴 docker: build_builder(): more info
  • 🍃 click: kill old tools cli (keep stage) click: kill old cli completely
  • 🌿 click: add iso command back
    • as it is called internally via docker
  • 🍀 gha: switch to click cli
  • 🌳 gha: release-publish
  • 🌱 captain: rework obtain_builder
  • 🌵 gha: separate build-dockerfile arch-based matrix job
  • 🐸 captain: adapt to options moved to common
  • 🌴 captain: simplify Rich logging and trace handler captain: simplify Rich logging and trace handler; let's not have two click packages
  • 🍃 gha: force tools to run native
  • 🌿 docker/Dockerfile: consolidate single Dockerfile; split and balance layers to optimize for parallel pulls
  • 🍀 docker: rework re-launching inside docker & docker envs
  • 🌳 docker/mkosi: get rid of tools tree; back to Debian's trixie system Python + pip for mkosi
    • mkosi re-launches itself and ignores uv's env without a tools tree
    • uv instead does use the system Python if it matches constraints
    • build in /work in Dockerfile, allows to reuse .venv
    • don't mount a volume in /work, instead use the one provided by the Dockerfile
  • 🌱 captain: honor FORCE_COLOR=1 for internal logging
  • 🌵 flavors: tighten semantics, refactor
    • refactor add_static_dir() into BaseFlavor
    • make has_iso() abstractmethod at BaseFlavor level
    • make kernel_packages() abstractmethod at common-debian level
  • 🐸 flavors: introduce common-acpi, move acpi/impi stuff there
    • so it's common-debian > common-acpi > trixie-full
    • in the future: common-debian > common-acpi > trixie-mainline
    • common-acpi implements has_iso() as True
  • 🌴 click: introduce CliContext and reuse common options via @click.Group
    • CliContext is a Config factory, taking both common and specific options
    • actually implement --verbose, thus new default logging level is INFO
  • 🍃 captain: make Rich richer
    • show Locals
    • show all frames in traces
    • use Highlights for FORCE_COLOR=1
  • 🌿 captain: introduce Trogon(/Textual) to auto-create a TUI from Click
  • 🍀 gha: use envvars, not --options
    • reduce suffering while I juggle Click
  • 🌳 captain: even Richer Rich
    • uv: split Config::verbose_uv from --verbose/Logging.DEBUG; use --quiet otherwise
    • use shutil.get_terminal_size to obtain and pass-down-Docker COLUMNS
    • nicer logging format, use a whale emoji for in-Docker logs
    • show Rich Table with Docker environment vars if --verbose
    • show Rich Panel and Rich Syntax for util.run() if --verbose
  • 🌱 gha: don't upload .iso as part of initramfs artifact
    • we've a separate artifact for .iso
  • 🌵 flavor/gha: add trixie-rockchip64-vendor and trixie-armbian-rpi flavors
    • also build them
    • trixie-armbian-rpi strays from standard naming as I think we might need to build our own kernel for RPi to achieve small-enough-for-eeprom-netboot eventually
  • 🐸 captain: tink-agent-setup Wants/After time-set.target
    • so time is set to something more reasonable, otherwise pulling fails with date-related TLS issues
  • 🌴 captain: move systemd enablement/disablement from postinst to systemd preset files
    • doing this in postinst has no effect, as mkosi applies presets after postinst
    • it could be done in finalize, but that would un-do the presets applied by mkosi
    • so instead do it all in two preset files:
      • one for generic OS-related enablement and disablement (20-captainos-base)
      • one for tink-agent related stuff (10-captainos-tink)
  • 🍃 captain: loosen systemd-networkd-wait-online to accept any interface and 15s timeout
    • otherwise hangs and delays on machines with multiple interfaces
  • 🌿 captain: tink-agent-setup Wants/After time-sync.target
    • time-set.target is not enough for machines without an RTC and working battery
    • time-sync.target requires timesyncd to be fully sync'ed
    • so time is set to something more reasonable, otherwise pulling fails with date-related TLS issues
  • 🍀 kernel: bring back pre-Click kernel impl
  • 🌳 util: show run()'s env vars in a Rich Table
  • 🌱 docker: rework run_in_builder() with both command_and_args and extra_docker_args
    • also introduce cfg.verbose_docker for setting env CAPTAIN_VERBOSE=1 when relaunching
  • 🌵 captain/cli: --verbose sets root level as well as current logger to DEBUG
  • 🐸 cli: re-introduce shell subcommand
    • which runs bash interactively under Docker
    • using same envs / volumes / mounts as regular run_in_builder()
  • 🌴 kernel: rework with kernel's own make bindeb-pkg into a .deb output
    • kernel packaging code already knows how to:
      • strip modules
      • zstd modules
      • handle Image name differences
      • handle depmod
      • produce a .deb package
    • but we gotta go 2-deep as .deb's are output in parent directory by kbuild
    • Dockerfile: add layers with deps:
      • rust compiler layer (inevitable after 7.0.y)
      • debhelper + etc needed for kernel deb packaging
  • 🍃 flavor: introduce BaseFlavor::pre_mkosi_stage()
    • so flavors can assert their requirements are built/met
  • 🌿 mkosi: show Rich.Syntax'ed mkosi.conf before running mkosi
    • ... since we already paid the price of Pygments...
  • 🍀 captain: allow building amd64 kernel on arm64
    • specify a CROSS_COMPILE for x86_64
  • 🌳 common_debian: introduce package_directories() for mkosi's PackageDirectories=
    • this allows flavors to add .deb's in directories as a local apt repo
    • .deb's can then be installed by name
    • mkosi handles the repo creation and usage directly (via apt-utils)
  • 🌱 builder: Dockerfile: add cross-arch libssl-dev and native apt-utils
    • cross libssl-dev needed for make bindeb-pkg to work cross-arch
    • apt-utils needed for mkosi's PackageDirectories=
  • 🌵 cli: expose stages (nee _stages) module
    • this skews package protection to allow flavors to reuse code
    • also expose function build_kernel_stage()
  • 🐸 flavors: introduce trixie-slim flavor, using captainos kernel
    • this one uses the captain-build-from-source kernel .deb
    • let's violate some package boundaries:
      • cli acrobatics: delegates to kernel build stage before initramfs build
      • impls package_directories() by calling kernel
  • 🌴 kernel: introduce --config for round-trip menuconfig / savedefconfig
    • interactive, handle when re-launching in Docker
    • just "Exit" to update a defconfig with no changes
    • eg uv run captain --verbose --arch amd64 kernel --config
  • 🍃 kernel: 6.18.y.amd64: defconfig standard
  • 🌿 kernel: 6.18.y.amd64: CONFIG_MODULE_COMPRESS_ZSTD=y
  • 🍀 kernel: 6.18.y.arm64: defconfig standard
  • 🌳 kernel: 6.18.y.arm64: defconfig: CONFIG_MODULE_COMPRESS_ZSTD=y
  • 🌱 gha: reintroduce kernel build jobs
    • using the Docker builder, so depend on that
    • abuse GHA caches and artifacts
    • the whole matrix will wait on kernel builds
      • but only a few will actually download and use the artifact
  • 🌵 gha: split matrix to add kernel job dependency for trixie-slim jobs
    • add gha builds for trixie-slim flavors (using captainos-kernel)
    • we've two kinds of build-captainos jobs:
      • ones that depend on kernel-build (trixie-slim)
      • ones that don't (all the others)
    • use YAML anchor trick to avoid duplicating 95% of code (envs: and steps: are defined only once)
    • matrix and needs (dependencies) are the only difference
    • artifact download is common but conditional on matrix values
  • 🐸 gha: make trixie-slim the default flavor
    • so it is the one included in the combined images
    • this does not change the CLI defaults, ofc
    • for trixie-slim, combined should depend on build-captainos-with-kernel
    • better names for matrix jobs
  • 🌴 gha: don't push OCI images for pull request workflows
    • (Docker) builder will end up being built multiple times for PR workflows, but such is life
      • it's also too huge for GHA artifact or GHA cache
    • don't push any captainos artifacts either (simple or combined)
      • also: only push those when building main branch
  • 🍃 cli: bring back qemu cli, with extra support for arm64 & UEFI/OVMF
    • arm64 qemu requires OVMF/AAVMF firmware (edk2) via a pflash
    • use q35 machine type for amd64 (it is still not a default)
    • add kvm (Linux) and hvf (Darwin) acceleration if present and matching host/target arch
    • add systemd.journald.forward_to_console=1 as default prefix kernel cmdline
    • remove audit=0 as cmdline prefix default
    • run with eg uv run captain --verbose --arch=amd64 --flavor-id=trixie-slim qemu -- tink_worker_image=... <...>
      • extra args after -- are passed directly as kernel cmdline
      • maybe restore option/env parsing with Click later (kept TODO'ed _TINK_PARAMS) for ergonomics
    • qemu: more systemd logging in default kernel cmdline
    • qemu: run x86 also under OVMF (UEFI), not BIOS emulation
      • this more accurately emulates real environment
        • real EFI implementation, with efivars etc
      • unify accel handling (accel only when host arch matches target arch)
        • but then it's the same across arches: hcf for Apple, kvm for Linux
      • refactor find_ovmf_firmware() as it's common
  • 🌿 kernel: hash defconfig + kernel.py code and use as cache key; clean output when cache missed
    • that way any changes to defconfig or kernel-building logic should force a new build
    • on new builds, clean up old artifacts so caches are kept clean (eg: GHA's)
  • 🍀 gha: drop DEFAULT_FLAVOR_ID; make publish-combined a matrix (for both trixie-slim and trixie-full)
    • so we've two combined images now, and no longer a default one
  • 🌳 timesyncd: retry connections every 2s
    • seems like timesyncd is interrupted by networking changes constantly during bootup
    • each change triggers a retry timeout, which is 30s by default
  • 🌱 util: debug: quote run() params with spaces or specials in them
    • handle capture=True case a bit better (shows invocation debug, but no ruler)
  • 🌵 flavors: flavor_packages() hierarchy, include_apt(), include_hwdb()
    • include_apt(): if true, includes a working apt install
    • include_hwdb(): if true, leaves hwdb data in
    • move acpid package to common_acpi flavor
    • also always include curl, pciutils, pv
  • 🐸 flavors: introduce trixie-genio for Armbian's linux-image-edge-genio
  • 🌴 gha: add trixie-genio build
  • 🍃 kernel: 6.18.y amd64: CONFIG_BE2NET=y (from kernel: enable be2net network driver for amd64 #59)
    • via uv run captain --arch amd64 kernel --config, then pick CONFIG_BE2NET
  • 🌿 docker: pass --load to docker buildx build
  • 🍀 release-publish: fix to use run_captain_in_builder()
  • 🌳 initramfs/iso: introduce content-hashing for idempotency
    • flavor can produce a hash of contents
    • incl static + templated files
    • does NOT include extratrees or packagedirs yet (kernel/tools)
    • does NOT clean up leftovers yet
  • 🌱 gha: set CAPTAIN_VERBOSE=1 & allow workflow_dispatch
  • 🌵 gha: add GHA caches for initramfs and iso
  • 🐸 tools: default to native mode (avoid pulling builder for cache hits)
  • 🌴 publish: more determinism
    • deterministic tar for dtb layer too
    • use epoch as created date, so manifests also hit
  • 🍃 flavors: common-debian: reduce postinst spurious debug logging
  • 🌿 captain: split mkosi.input from mkosi.output
    • tools and kernel are really inputs to mkosi, not outputs
  • 🍀 gha: split mkosi.input from mkosi.output
    • tools and kernel are really inputs to mkosi, not outputs
  • 🌳 publish: let flavor decide which files/dirs are published in OCI images
    • BaseFlavor:
      • list_arch_artifacts() handles vmlinuz, initramfs, and iso directly
        • delegates to overridable add_arch_dtb_artifacts()
          • defaults to including dtbs for aarch64
          • but not for trixie-slim (to keep it, well, "slim")
    • introduce artifacts.py OutputArchArtifactType and OutputArchArtifact
      • just to type-enforce
    • _collect_arch_artifacts() is dead, long live _checksum_files()
    • rework logic in oci._publish()
    • this is to prepare for extra per-flavor assets, eg "rpi eeprom firmware" for rpi flavor
  • 🌱 flavor: introduce BaseFlavor::post_mkosi_stage() and BaseFlavor::post_artifact_collect()
    • for custom stuff done after initramfs build / after artifact collection (mkosi.output/... -> out/)
  • 🌵 trixie-armbian-rpi: implement ready-to-go RPi firmware in firmware-rpi dir
    • this is targetting (eeprom-based) RPi Netboot (without u-boot)
    • implement list_arch_artifacts(), post_mkosi_stage(), post_artifact_collect()
  • 🐸 util: introduce symlink_relative()
    • with mixes Path from pathlib and os.path for non-subpaths
  • 🌴 trixie-armbian-rpi: include kernel8.img and initramfs8 symlinks
    • refactor to use util.symlink_relative()
  • 🍃 trixie-slim: bump kernel 6.18.22 -> 6.18.26 (copy.fail etc)
    • comment-change in mkosi.conf to force hash to change and thus all to rebuild
  • 🌿 common-debian: enable Networking for scripts; fix postinst docs and use mkosi-chroot
  • 🍀 release: rework into click Group; bring back pull and tag
    • publish is a release subcommand now
    • logging fixes, don't show locals, suppress Docker traces
    • TODO: BUILDAH_INSECURE etc
    • center on Config (release_ prefix), Docker repasses
    • drop git describe, always use v0.0.0-{sha}
  • 🌳 gha: adapt Release GHA Workflow
    • publish all flavors
    • last-minute tarball of directories (dtbs, firmware) for GH Release upload
    • bump actions, drop unused envs, etc
    • ci: don't fetch-depth:0 as we don't do git describe anymore
  • 🌱 captain: implement REGISTRY_INSECURE=1 env var for talking to insecure registries
    • nee BUILDAH_INSECURE, also used for skopeo
    • mostly for development vs registry:2
      • eg docker run -p 5001:5000 -it registry:2
      • and REGISTRY_INSECURE=1 uv run captain ... --registry 192.168.66.10:5001 publish
  • 🌵 captain: simple end-user customization via custom folder
    • allows for
      • custom/packages.txt: extra packages to be installed
      • custom/mkosi-postinst and custom/mkosi-finalize folders: extra scripts
      • custom/files: extra files in root filesystem
    • when rendering templates, force newline at the end of each
    • pass custom dir down to Docker
  • 🐸 docker: bind-mount Docker's config.json when launching Docker under GHA
    • so publish can use GHA-provided docker authentication vs ghcr.io
  • 🌴 custom: example customization possibilities (packages, scripts, extra files)
  • 🍃 docs: update Markdown documentation
  • 🌿 release: switch release default mode to docker
    • GHA has skopeo and buildah available in its default runners, but they're old versions
    • use Docker mode by default also simplifies end-user usage
  • 🍀 release: consolidate OCI metadata/annotations creation and add to manifests
    • makes browsing ghcr.io a bit easier
    • drop sha/tag from manifest metadata to up SHA-based reuse
  • 🌳 buildah: omit history for further determinism at the manifest level
    • otherwise, history between otherwise identical manifests differs for little reason
  • 🌱 buildah: strip digest annotation auto-added by buildah from (more determinism)
    • otherwise, history between otherwise identical manifests differs for little reason
  • 🌵 gha: ci: fix: avoid cache mis-hit due to unintended prefix match
    • eg rockchip64-* matches rockchip64-vendor
    • show sha256's after restore & before save

rpardini added 30 commits May 7, 2026 16:48
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- .editorconfig for shell scripts and shell templates

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…tools tree across invocations

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- this will allow using a generic/distro kernel instead of building one

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- hack until it uses the mkosi-supplied kernel for everything
- artifacts: look for mkosi-supplied vmlinuz first

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- self-built kernel from source will come back at a later stage, as a .deb package

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- just do everything at once

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…racut/initramfs-tools)

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- also: show info about modules and full rootfs

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- later to be reborn as standard apt package

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- mkosi.finalize: clean up logging a bit
- mkosi.postinst: debugs

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
gha: fix
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
gha: pass DEFAULT_FLAVOR_ID as KERNEL_VERSION for publish-combined - retry
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- `--flavor-id`

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
but logging sucks and no dataclass

better, logging still sucks for Full -> Common

much better in-package

this sucks less

cosmetics

some static and template rendering and hardcoded cleanup

kinda-works

kinda works

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
… tree

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
rpardini added 27 commits May 7, 2026 16:48
- flavor can produce a hash of contents
- incl static + templated files
- does NOT include extratrees or packagedirs yet (kernel/tools)
- does NOT clean up leftovers yet

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- deterministic tar for dtb layer too
- use epoch as `created` date, so manifests also hit

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- `tools` and `kernel` are really inputs to mkosi, not outputs

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- `tools` and `kernel` are really inputs to mkosi, not outputs

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- BaseFlavor:
  - `list_arch_artifacts()` handles vmlinuz, initramfs, and iso directly
    - delegates to overridable `add_arch_dtb_artifacts()`
      - defaults to including dtbs for aarch64
      - but not for trixie-slim (to keep it, well, "slim")
- introduce artifacts.py `OutputArchArtifactType` and `OutputArchArtifact`
  - just to type-enforce
- `_collect_arch_artifacts()` is dead, long live `_checksum_files()`
- rework logic in `oci._publish()`
- this is to prepare for extra per-flavor assets, eg "rpi eeprom firmware" for rpi flavor

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…_artifact_collect()

- for custom stuff done after initramfs build / after artifact collection (mkosi.output/... -> out/)

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…pi` dir

- this is targetting (eeprom-based) RPi Netboot (without u-boot)
- implement list_arch_artifacts(), post_mkosi_stage(), post_artifact_collect()

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- with mixes Path from pathlib and os.path for non-subpaths

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- refactor to use util.symlink_relative()

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- comment-change in mkosi.conf to force hash to change and thus all to rebuild

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…se mkosi-chroot

- set `[Build]`.`WithNetwork=yes` so scripts can hit the network if needed
- mkosi.postinst is _not_ mkosi.postinst.chroot
  - See https://github.com/systemd/mkosi/blob/main/mkosi/resources/man/mkosi.1.md#scripts

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- publish is a release subcommand now
- logging fixes, don't show locals, suppress Docker traces
- TODO: BUILDAH_INSECURE etc
- center on Config (release_ prefix), Docker repasses
- drop `git describe`, always use `v0.0.0-{sha}`

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- publish all flavors
- last-minute tarball of directories (dtbs, firmware) for GH Release upload
- bump actions, drop unused envs, etc
- ci: don't fetch-depth:0 as we don't do git describe anymore

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…ure registries

- nee `BUILDAH_INSECURE`, also used for skopeo
- mostly for development vs `registry:2`
  - eg `docker run -p 5001:5000 -it registry:2`
  - and `REGISTRY_INSECURE=1 uv run captain ... --registry 192.168.66.10:5001 publish`

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- allows for
  - `custom/packages.txt`: extra packages to be installed
  - `custom/mkosi-postinst` and `custom/mkosi-finalize` folders: extra scripts
  - `custom/files`: extra files in root filesystem
- when rendering templates, force newline at the end of each
- pass `custom` dir down to Docker

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- so publish can use GHA-provided docker authentication vs ghcr.io

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
… files)

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- GHA has skopeo and buildah available in its default runners, but they're old versions
- use Docker mode by default also simplifies end-user usage

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…ifests

- makes browsing ghcr.io a bit easier
- drop sha/tag from manifest metadata to up SHA-based reuse

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- otherwise, history between otherwise identical manifests differs for little reason

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
…eterminism)

- otherwise, history between otherwise identical manifests differs for little reason

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- eg `rockchip64-*` matches `rockchip64-vendor`
- show sha256's after restore & before save

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
@rpardini rpardini marked this pull request as ready for review May 7, 2026 14:52
@rpardini
Copy link
Copy Markdown
Member Author

rpardini commented May 7, 2026

Here's a full UART bootlog of a RaspberryPi 4b netboot into CaptainOS trixie-armbian-rpi flavor, which is small enough to be directly netboot-ed by the RPi EEPROM, and thus needs no u-boot nor iPXE intermediate.

RPi: BOOTLOADER release VERSION:e608a69d DATE: 2024/04/15 TIME: 14:12:14
BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1713186734 serial 196f8c53 boardrev d03114 stc 423743
PM_RSTS: 0x00001000
part 00000000 reset_info 00000000
uSD voltage 3.3V
Initialising SDRAM 'Micron' 32Gb x2 total-size: 64 Gbit 3200
DDR 3200 1 0 64 152

XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 11
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
xHC ports 5 slots 32 intrs 4
Boot mode: USB-MSD (04) order f21
USB2[1] 400202e1 connected
USB2 root HUB port 1 init
DEV [01:00] 2.16 000000:01 class 9 VID 2109 PID 3431
HUB init [01:00] 2.16 000000:01
USB3[2] 00021203 connected enabled
USB3 root HUB port 2 init
DEV [02:00] 3.00 000000:02 class 0 VID 174c PID 55aa
MSD device [02:00] 3.00 000000:02 conf 0 iface 0 ep 81#1024 02#1024
MSD [02:00] 3.00 000000:02 register MSD
XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 18
XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 19
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
xHC ports 5 slots 32 intrs 4
USB3[2] 000002b1 connected
USB2[1] 400202e1 connected
USB2 root HUB port 1 init
DEV [01:00] 2.16 000000:01 class 9 VID 2109 PID 3431
HUB init [01:00] 2.16 000000:01
USB3[2] 00281203 connected enabled
USB3 root HUB port 2 init
DEV [02:00] 3.00 000000:02 class 0 VID 174c PID 55aa
MSD device [02:00] 3.00 000000:02 conf 0 iface 0 ep 81#1024 02#1024
MSD [02:00] 3.00 000000:02 register MSD
MSD [02:00] 3.00 000000:02 LUN 0
MSD INQUIRY [02:00] 3.00 000000:02
MSD [02:00] 3.00 000000:02 lun 0 block-count 500118192 block-size 512
MBR: 0x00002000, 1048576 type: 0x0b
MBR: 0x00102000,499061391 type: 0x83
MBR: 0x00000000,       0 type: 0x00
MBR: 0x00000000,       0 type: 0x00
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' RPICFG     '
rsc 32 fat-sectors 1024 c-count 130812 c-size 8
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 130812
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' RPICFG     '
rsc 32 fat-sectors 1024 c-count 130812 c-size 8
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 130812
Firmware not found
ERROR: 4
Retry USB-MSD 1
USB MSD stopped. Timeout: 25 seconds
Boot mode: SD (01) order f2
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
EMMC
SD retry 1 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD retry 2 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SDV1
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Retry SD 1
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
EMMC
SD retry 1 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SD retry 2 oc 0
SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
SDV1
SD CMD: 0x371a0010 (55) 0x0 0x1fff0001
Failed to open device: 'sdcard' (cmd 371a0010 status 1fff0001)
Boot mode: NETWORK (02) order f
GENET: RESET_PHY 0
CTL 1140 PHY ID 600d 84a2
MII_CONTROL 1140
MII APD 0001 SCTL3 0001 IDDQ 0000

NETWORK: dc:a6:32:ec:8b:49 wait for link TFTP: 0.0.0.0
LINK STATUS: speed: 1000 full duplex
Link ready
GENET START: 64 16 32
GENET: UMAC_START 0xdca632ec 0x8b490000
RX: 0 IP: 0 IPV4: 0 MAC: 0 UDP: 0 UDP RECV: 0 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
DHCP src: ba:27:c0:e8:eb:c5 192.168.66.1
YI_ADDR 192.168.66.20
SI_ADDR 192.168.66.171
OPTIONS:-
	op: 53 len:   1 DHCP recv OFFER (2) expect OFFER
	op: 54 len:   4 192.168.66.1
	op: 51 len:   4
	op: 67 len:   9
	op: 58 len:   4
	op: 59 len:   4
	op:  1 len:   4 255.255.255.0
	op: 28 len:   4 192.168.66.255
	op:  3 len:   4 192.168.66.1
	op: 66 len:  15 192.168.66.171[66]: 192.168.66.171

NET 192.168.66.20 255.255.255.0 gw 0.0.0.0 tftp 192.168.66.171
ARP 192.168.66.171 8e:b4:90:97:32:30
DHCP src: ba:27:c0:e8:eb:c5 192.168.66.1
YI_ADDR 192.168.66.20
SI_ADDR 192.168.66.171
OPTIONS:-
	op: 53 len:   1 DHCP recv ACK (5) expect ACK
	op: 54 len:   4 192.168.66.1
	op: 51 len:   4
	op: 58 len:   4
	op: 59 len:   4
	op:  1 len:   4 255.255.255.0
	op: 28 len:   4 192.168.66.255
	op:  3 len:   4 192.168.66.1
	op:  6 len:   4 192.168.66.1
	op: 15 len:   9
	op: 12 len:  11
	op: 42 len:   4
	op: 66 len:  15 192.168.66.171[66]: 192.168.66.171

NET 192.168.66.20 255.255.255.0 gw 0.0.0.0 tftp 192.168.66.171
RX: 96 IP: 0 IPV4: 39 MAC: 27 UDP: 13 UDP RECV: 2 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/start4.elf

RX: 96 IP: 0 IPV4: 39 MAC: 27 UDP: 13 UDP RECV: 2 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
RX: 97 IP: 0 IPV4: 40 MAC: 28 UDP: 14 UDP RECV: 3 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/config.txt

RX: 98 IP: 0 IPV4: 41 MAC: 29 UDP: 15 UDP RECV: 3 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP: complete 347
RX: 100 IP: 0 IPV4: 43 MAC: 31 UDP: 17 UDP RECV: 5 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/config.txt bytes      347 hnd 0x0
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/pieeprom.sig

RX: 100 IP: 0 IPV4: 43 MAC: 31 UDP: 17 UDP RECV: 5 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP 1: file [pieeprom.sig] unknown: file does not exist
RX: 101 IP: 0 IPV4: 44 MAC: 32 UDP: 18 UDP RECV: 6 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/pieeprom.upd failed
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/recover4.elf

RX: 101 IP: 0 IPV4: 44 MAC: 32 UDP: 18 UDP RECV: 6 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP 1: file [recover4.elf] unknown: file does not exist
RX: 102 IP: 0 IPV4: 45 MAC: 33 UDP: 19 UDP RECV: 7 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/recover4.elf failed
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/recovery.elf

RX: 102 IP: 0 IPV4: 45 MAC: 33 UDP: 19 UDP RECV: 7 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP 1: file [recovery.elf] unknown: file does not exist
RX: 103 IP: 0 IPV4: 46 MAC: 34 UDP: 20 UDP RECV: 8 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/recovery.elf failed
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/start4.elf

RX: 103 IP: 0 IPV4: 46 MAC: 34 UDP: 20 UDP RECV: 8 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP: complete 2303680
RX: 141 IP: 0 IPV4: 83 MAC: 71 UDP: 55 UDP RECV: 43 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/start4.elf bytes  2303680 hnd 0x0
TFTP_GET: 8e:b4:90:97:32:30 192.168.66.171 196f8c53/fixup4.dat

RX: 143 IP: 0 IPV4: 83 MAC: 71 UDP: 55 UDP RECV: 43 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
TFTP: complete 5498
RX: 148 IP: 0 IPV4: 88 MAC: 76 UDP: 60 UDP RECV: 48 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
Read 196f8c53/fixup4.dat bytes     5498 hnd 0x0
0x00d03114 0x00000000 0x00003fff
MEM GPU: 64 ARM: 960 TOTAL: 1024
Firmware: ce768004a1c9657e60b33b0cc413d8e07320cb0d Feb 11 2026 18:28:41
Starting start4.elf @ 0xfec00200 partition -1
Stopping network
RX: 148 IP: 0 IPV4: 88 MAC: 76 UDP: 60 UDP RECV: 48 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
RX: 148 IP: 0 IPV4: 88 MAC: 76 UDP: 60 UDP RECV: 48 IP_CSUM_ERR: 0 UDP_CSUM_ERR: 0
GENET STOP: 0
XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 18
+

MESS:00:00:44.724588:0: genet: LINK STATUS: speed: 1000 full duplex
MESS:00:00:44.728566:0: genet: GENET START: 128 8 8
MESS:00:00:44.734446:0: genet: GENET: UMAC_START 0xdca632ec 0x8b490000
MESS:00:00:44.749576:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:44.752398:0: board: boardrev d03114 otp d03114
MESS:00:00:44.757232:0: brfs: File read: 347 bytes
MESS:00:00:44.784870:0: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:44.789373:0: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:44.806520:0: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:44.811028:0: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:44.822661:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:45.322067:0: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined
MESS:00:00:45.327622:0: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined
MESS:00:00:45.336659:0: *** Restart logging
MESS:00:00:45.338431:0: brfs: File read: 347 bytes
MESS:00:00:45.351646:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:45.356669:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:45.367294:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:45.372323:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:45.391654:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:45.396680:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:45.408275:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:45.418279:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:45.432311:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:45.434945:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:01:07.942780:0: brfs: File read: /mfs/sd/initramfs8
MESS:00:01:07.945288:0: Loaded 'initramfs8' to 0x0 size 0x60cf6a9
MESS:00:01:08.118996:0: initramfs (initramfs8) loaded to 0x28f30000 (size 0x60cf6a9)
MESS:00:01:08.133445:0: dtb_file 'bcm2711-rpi-4-b.dtb'
MESS:00:01:08.135517:0: brfs: File read: 101512873 bytes
MESS:00:01:08.155887:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
MESS:00:01:08.159171:0: Loaded 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xdc57
MESS:00:01:08.200189:0: brfs: File read: 56407 bytes
MESS:00:01:08.267407:0: brfs: File read: /mfs/sd/config.txt
MESS:00:01:08.270104:0: brfs: File read: 347 bytes
MESS:00:01:08.281139:0: brfs: File read: /mfs/sd/overlays/disable-bt.dtbo
MESS:00:01:08.322905:0: Loaded overlay 'disable-bt'
MESS:00:01:08.408791:0: brfs: File read: 1073 bytes
MESS:00:01:08.414593:0: brfs: File read: /mfs/sd/overlays/disable-wifi.dtbo
MESS:00:01:08.440913:0: Loaded overlay 'disable-wifi'
MESS:00:01:08.476860:0: brfs: File read: 387 bytes
MESS:00:01:08.485072:0: brfs: File read: /mfs/sd/overlays/vc4-kms-v3d.dtbo
MESS:00:01:08.501931:0: dterror: can't find symbol 'i2c2'
MESS:00:01:08.504264:0: dterror: Failed to resolve overlay 'vc4-kms-v3d'
MESS:00:01:08.510780:0: brfs: File read: 2760 bytes
MESS:00:01:08.525069:0: brfs: File read: /mfs/sd/overlays/vc4-kms-v3d-pi4.dtbo
MESS:00:01:08.688014:0: Loaded overlay 'vc4-kms-v3d-pi4'
MESS:00:01:08.690254:0: dtparam: noaudio=true
MESS:00:01:09.154607:0: brfs: File read: 3913 bytes
MESS:00:01:09.162889:0: brfs: File read: /mfs/sd/cmdline.txt
MESS:00:01:09.165658:0: Read command line from file 'cmdline.txt':
MESS:00:01:09.171402:0: 'tink_worker_image=ghcr.io/rpardini/tinkerbell/tink-agent:latest facility= syslog_host=syslog.app.192.168.66.171.nip.io grpc_authority=tinkgrpc.app.192.168.66.171.nip.io:42113 tinkerbell_tls=false tinkerbell_insecure_tls=false w
MESS:00:01:09.544211:0: brfs: File read: 457 bytes
MESS:00:01:15.915679:0: brfs: File read: /mfs/sd/kernel8.img
MESS:00:01:15.918276:0: Loaded 'kernel8.img' to 0x200000 size 0x1cffa00
MESS:00:01:15.924630:0: Device tree loaded to 0x28f21b00 (size 0xe454)
MESS:00:01:15.935956:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:01:15.942196:0: uart: Baud rate change done...
MESS:00:01:15.944218:0: uart: Baud rate change done...
MESS:00:01:15.961478:0: genet: GENET STOP: 0
MESS:00:01:15.962659:0: Watchdog stopped
MESS:00:01:15.966280:0: arm_loader: Starting ARM with 960MB
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[    0.000000] Linux version 6.18.26-current-bcm2711 (build@armbian) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #63 SMP PREEMPT Sun May  3 14:57:52 UTC 2026
[    0.000000] KASLR enabled
[    0.000000] random: crng init done
[    0.000000] Machine model: Raspberry Pi 4 Model B Rev 1.4
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000008e00000, size 512 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x0000000008e00000..0x0000000028dfffff (524288 KiB) map reusable linux,cma
[    0.000000] OF: reserved mem: 0x000000003ef745a0..0x000000003ef745e7 (0 KiB) nomap non-reusable nvram@0
[    0.000000] OF: reserved mem: 0x000000003ef74160..0x000000003ef7455f (1 KiB) nomap non-reusable nvram@1
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000001ffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003bffffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x00000001ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000001ffffffff]
[    0.000000] On node 0, zone DMA32: 16384 pages in unavailable ranges
[    0.000000] On node 0, zone Normal: 16384 pages in unavailable ranges
[    0.000000] percpu: Embedded 33 pages/cpu s96088 r8192 d30888 u135168
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-v3a
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] CPU features: kernel page table isolation forced ON by KASLR
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] CPU features: detected: ARM erratum 1742098
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave nvme.max_host_mem_size_mb=32 snd_bcm2835.enable_hdmi=0 video=HDMI-A-1:640x480M@60D,margin_left=24,margin_right=24,margin_top=16,margin_bottom=16 video=HDMI-A-2:640x480M@60D,margin_left=24,margin_right=24,margin_top=16,margin_bottom=16 smsc95xx.macaddr=DC:A6:32:EC:8B:49 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  tink_worker_image=ghcr.io/rpardini/tinkerbell/tink-agent:latest facility= syslog_host=syslog.app.192.168.66.171.nip.io grpc_authority=tinkgrpc.app.192.168.66.171.nip.io:42113 tinkerbell_tls=false tinkerbell_insecure_tls=false worker_id=rpi hw_addr=dc:a6:32:ec:8b:49  modules=loop,squashfs,sd-mod,usb-storage initrd=captain-armbian-rpi/initramfs-trixie-armbian-rpi-aarch64 systemd.journald.forward_to_console=1 console=tty1 console=ttyAMA0,115200 loglevel=7
[    0.000000] cgroup: Disabling memory control group subsystem
[    0.000000] Unknown kernel command line parameters "numa_policy=interleave tink_worker_image=ghcr.io/rpardini/tinkerbell/tink-agent:latest facility= syslog_host=syslog.app.192.168.66.171.nip.io grpc_authority=tinkgrpc.app.192.168.66.171.nip.io:42113 tinkerbell_tls=false tinkerbell_insecure_tls=false worker_id=rpi hw_addr=dc:a6:32:ec:8b:49 modules=loop,squashfs,sd-mod,usb-storage", will be p
** replaying previous printk message **
[    0.000000] Unknown kernel command line parameters "numa_policy=interleave tink_worker_image=ghcr.io/rpardini/tinkerbell/tink-agent:latest facility= syslog_host=syslog.app.192.168.66.171.nip.io grpc_authority=tinkgrpc.app.192.168.66.171.nip.io:42113 tinkerbell_tls=false tinkerbell_insecure_tls=false worker_id=rpi hw_addr=dc:a6:32:ec:8b:49 modules=loop,squashfs,sd-mod,usb-storage", will be passed to user space.
[    0.000000] printk: log buffer data + meta data: 131072 + 458752 = 589824 bytes
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x0000000038000000-0x000000003c000000] (64MB)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2064384
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 43194 entries in 170 pages
[    0.000000] ftrace: allocated 170 pages with 4 groups
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Rude variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer running at 54.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.000000] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.000155] Console: colour dummy device 80x25
[    0.000166] printk: legacy console [tty1] enabled
[    0.000472] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=216000)
[    0.000488] pid_max: default: 32768 minimum: 301
[    0.000566] LSM: initializing lsm=capability
[    0.000696] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000752] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.002399] rcu: Hierarchical SRCU implementation.
[    0.002421] rcu: 	Max phase no-delay instances is 1000.
[    0.002602] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.003262] EFI services will not be available.
[    0.003462] smp: Bringing up secondary CPUs ...
[    0.003885] Detected PIPT I-cache on CPU1
[    0.003982] CPU1: Booted secondary processor 0x0000000001 [0x410fd083]
[    0.004497] Detected PIPT I-cache on CPU2
[    0.004556] CPU2: Booted secondary processor 0x0000000002 [0x410fd083]
[    0.004983] Detected PIPT I-cache on CPU3
[    0.005043] CPU3: Booted secondary processor 0x0000000003 [0x410fd083]
[    0.005110] smp: Brought up 1 node, 4 CPUs
[    0.005143] SMP: Total of 4 processors activated.
[    0.005150] CPU: All CPU(s) started at EL2
[    0.005166] CPU features: detected: 32-bit EL0 Support
[    0.005173] CPU features: detected: 32-bit EL1 Support
[    0.005181] CPU features: detected: CRC32 instructions
[    0.005191] CPU features: detected: PMUv3
[    0.005232] alternatives: applying system-wide alternatives
[    0.005997] Memory: 7371624K/8257536K available (13824K kernel code, 2046K rwdata, 8624K rodata, 5056K init, 528K bss, 356248K reserved, 524288K cma-reserved)
[    0.006957] devtmpfs: initialized
[    0.011547] Enabled cp15_barrier support
[    0.011582] Enabled setend support
[    0.011873] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.011906] posixtimers hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.012054] futex hash table entries: 1024 (65536 bytes on 1 NUMA nodes, total 64 KiB, linear).
[    0.018895] 2G module region forced by RANDOMIZE_MODULE_REGION_FULL
[    0.018929] 0 pages in range for non-PLT usage
[    0.018933] 516704 pages in range for PLT usage
[    0.019112] pinctrl core: initialized pinctrl subsystem
[    0.019496] DMI not present or invalid.
[    0.021072] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.021754] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.021853] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.022155] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.022190] audit: initializing netlink subsys (disabled)
[    0.022336] audit: type=2000 audit(0.020:1): state=initialized audit_enabled=0 res=1
[    0.022561] thermal_sys: Registered thermal governor 'step_wise'
[    0.022593] cpuidle: using governor menu
[    0.022705] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.022779] ASID allocator initialised with 32768 entries
[    0.023179] Serial: AMBA PL011 UART driver
[    0.027208] /soc/interrupt-controller@40041000: Fixed dependency cycle(s) with /soc/interrupt-controller@40041000
[    0.028088] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[    0.040149] raspberrypi-firmware soc:firmware: Attached to firmware from 2026-02-11T18:28:41, variant start
[    0.044150] raspberrypi-firmware soc:firmware: Firmware hash is ce768004a1c9657e60b33b0cc413d8e07320cb0d
[    0.050437] /scb/pcie@7d500000: Fixed dependency cycle(s) with /scb/pcie@7d500000
[    0.050630] /scb/pcie@7d500000: Fixed dependency cycle(s) with /scb/pcie@7d500000
[    0.052948] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.052968] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.052976] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.052984] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.052991] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.052998] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.053006] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.053013] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.054095] bcm2835-dma fe007000.dma-controller: DMA legacy API manager, dmachans=0x1
[    0.055218] iommu: Default domain type: Translated
[    0.055230] iommu: DMA domain TLB invalidation policy: strict mode
[    0.056243] SCSI subsystem initialized
[    0.056348] usbcore: registered new interface driver usbfs
[    0.056372] usbcore: registered new interface driver hub
[    0.056404] usbcore: registered new device driver usb
[    0.056677] pps_core: LinuxPPS API ver. 1 registered
[    0.056686] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.056702] PTP clock support registered
[    0.057372] vgaarb: loaded
[    0.057640] clocksource: Switched to clocksource arch_sys_counter
[    0.057912] VFS: Disk quotas dquot_6.6.0
[    0.057932] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.061984] NET: Registered PF_INET protocol family
[    0.062434] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.086534] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.086585] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.086641] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.086845] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
[    0.088982] TCP: Hash tables configured (established 65536 bind 65536)
[    0.089135] UDP hash table entries: 4096 (order: 6, 262144 bytes, linear)
[    0.089547] UDP-Lite hash table entries: 4096 (order: 6, 262144 bytes, linear)
[    0.090145] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.090204] PCI: CLS 0 bytes, default 64
[    0.090446] Trying to unpack rootfs image as initramfs...
[    0.096563] kvm [1]: nv: 568 coarse grained trap handlers
[    0.096869] kvm [1]: IPA Size Limit: 44 bits
[    0.097772] kvm [1]: vgic interrupt IRQ9
[    0.097830] kvm [1]: Hyp nVHE mode initialized successfully
[    0.102590] Initialise system trusted keyrings
[    0.102849] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.103710] Key type asymmetric registered
[    0.103732] Asymmetric key parser 'x509' registered
[    0.103774] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.103958] io scheduler mq-deadline registered
[    0.103972] io scheduler kyber registered
[    0.104873] irq_brcmstb_l2: registered L2 intc (/soc/interrupt-controller@7ef00100, parent irq: 23)
[    0.107266] pinctrl-bcm2835 fe200000.gpio: GPIO_OUT persistence: yes
[    3.144230] Freeing initrd memory: 99132K
[    3.147975] ledtrig-cpu: registered to indicate activity on CPUs
[    3.149879] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    3.149959] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[    3.149996] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00bfffffff -> 0x0400000000
[    3.151350] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    3.151416] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.151431] pci_bus 0000:00: root bus resource [mem 0x600000000-0x63fffffff] (bus address [0xc0000000-0xffffffff])
[    3.151584] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400 PCIe Root Port
[    3.151630] pci 0000:00:00.0: PCI bridge to [bus 00]
[    3.151650] pci 0000:00:00.0:   bridge window [mem 0x638000000-0x6380fffff]
[    3.151755] pci 0000:00:00.0: PME# supported from D0 D3hot
[    3.153608] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    3.153828] pci_bus 0000:01: supply vpcie3v3 not found, using dummy regulator
[    3.153919] pci_bus 0000:01: supply vpcie3v3aux not found, using dummy regulator
[    3.153954] pci_bus 0000:01: supply vpcie12v not found, using dummy regulator
[    3.257658] brcm-pcie fd500000.pcie: clkreq-mode set to default
[    3.259731] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
[    3.259846] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330 PCIe Endpoint
[    3.259921] pci 0000:01:00.0: BAR 0 [mem 0x00000000-0x00000fff 64bit]
[    3.259969] pci 0000:01:00.0: ASPM: VL805 fixup applied
[    3.260038] pci 0000:01:00.0: PME# supported from D0 D3hot
[    3.265653] pci 0000:01:00.0: ASPM: default states L0s L1
[    3.265678] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    3.265704] pci 0000:00:00.0: bridge window [mem 0x600000000-0x6000fffff]: assigned
[    3.265718] pci 0000:01:00.0: BAR 0 [mem 0x600000000-0x600000fff 64bit]: assigned
[    3.265741] pci 0000:00:00.0: PCI bridge to [bus 01]
[    3.265752] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]
[    3.265767] pci_bus 0000:00: resource 4 [mem 0x600000000-0x63fffffff]
[    3.265776] pci_bus 0000:01: resource 1 [mem 0x600000000-0x6000fffff]
[    3.265998] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    3.266101] pcieport 0000:00:00.0: PME: Signaling with IRQ 27
[    3.266299] pcieport 0000:00:00.0: AER: enabled with IRQ 27
[    3.267043] simple-framebuffer 3eaaa000.framebuffer: framebuffer at 0x3eaaa000, 0x103000 bytes
[    3.267060] simple-framebuffer 3eaaa000.framebuffer: format=a8r8g8b8, mode=592x448x32, linelength=2368
[    3.267707] Console: switching to colour frame buffer device 74x28
[    3.268255] simple-framebuffer 3eaaa000.framebuffer: fb0: simplefb registered!
[    3.289986] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[    3.291664] iproc-rng200 fe104000.rng: hwrng registered
[    3.292226] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    3.298075] brd: module loaded
[    3.301349] loop: module loaded
[    3.302266] Loading iSCSI transport class v2.0-870.
[    3.304709] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    3.497698] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    3.498748] usbcore: registered new interface driver lan78xx
[    3.499150] usbcore: registered new interface driver smsc95xx
[    3.591288] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    3.591682] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[    3.593705] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0300240000000890
[    3.595107] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    3.595501] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[    3.596247] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[    3.596808] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.18
[    3.597534] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.598275] usb usb1: Product: xHCI Host Controller
[    3.598640] usb usb1: Manufacturer: Linux 6.18.26-current-bcm2711 xhci-hcd
[    3.599337] usb usb1: SerialNumber: 0000:01:00.0
[    3.600012] hub 1-0:1.0: USB hub found
[    3.600436] hub 1-0:1.0: 1 port detected
[    3.601230] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.18
[    3.601972] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.602742] usb usb2: Product: xHCI Host Controller
[    3.603143] usb usb2: Manufacturer: Linux 6.18.26-current-bcm2711 xhci-hcd
[    3.603906] usb usb2: SerialNumber: 0000:01:00.0
[    3.604514] hub 2-0:1.0: USB hub found
[    3.604949] hub 2-0:1.0: 4 ports detected
[    3.606087] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    3.606834] usbcore: registered new interface driver uas
[    3.607239] usbcore: registered new interface driver usb-storage
[    3.607770] mousedev: PS/2 mouse device common for all mice
[    3.610499] sdhci: Secure Digital Host Controller Interface driver
[    3.610886] sdhci: Copyright(c) Pierre Ossman
[    3.611442] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.612222] hid: raw HID events driver (C) Jiri Kosina
[    3.612652] usbcore: registered new interface driver usbhid
[    3.613016] usbhid: USB HID core driver
[    3.617097] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 (0,8000003f) counters available
[    3.619117] NET: Registered PF_PACKET protocol family
[    3.619683] Key type dns_resolver registered
[    3.632418] registered taskstats version 1
[    3.633118] Loading compiled-in X.509 certificates
[    3.637777] zswap: loaded using pool zstd
[    3.638303] Key type .fscrypt registered
[    3.638665] Key type fscrypt-provisioning registered
[    3.682472] Key type encrypted registered
[    3.689569] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    3.691037] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    3.692006] uart-pl011 fe201000.serial: there is not valid maps for state default
[    3.693069] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    3.693768] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 39, base_baud = 0) is a PL011 rev3
[    3.696832] printk: console [ttyAMA0] enabled
[    3.703498] of_cfs_init
[    3.703996] of_cfs_init: OK
[    3.718702] clk: Disabling unused clocks
[    3.723171] PM: genpd: Disabling unused power domains
[    3.765553] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA
[    3.775141] Freeing unused kernel memory: 5056K
[    3.775659] Run /init as init process
[    3.865693] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    4.004302] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    4.005094] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    4.005941] usb 1-1: Product: USB2.0 Hub
[    4.025718] rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: { } 6 jiffies s: 113 root: 0x0/.
[    5.488519] hub 1-1:1.0: USB hub found
[    5.489237] hub 1-1:1.0: 4 ports detected
[    5.582357] systemd[1]: System time advanced to timestamp on /usr/lib/clock-epoch: Tue 2026-05-05 12:48:33 UTC
[    5.596527] NET: Registered PF_INET6 protocol family
[    5.597881] Segment Routing with IPv6
[    5.598310] In-situ OAM (IOAM) with IPv6
[    5.606279] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[    5.623161] usb 2-1: New USB device found, idVendor=174c, idProduct=55aa, bcdDevice= 1.00
[    5.624035] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[    5.624879] usb 2-1: Product: ASM1053 USB3.0 TO SATA
[    5.625312] usb 2-1: Manufacturer: ASMedia
[    5.625773] usb 2-1: SerialNumber: 1053201408002
[    5.653602] systemd[1]: systemd 257.9-1~deb13u1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF -XKBCOMMON -UTMP +SYSVINIT +LIBARCHIVE)
[    5.656397] systemd[1]: Detected architecture arm64.
[    5.656986] systemd[1]: Detected first boot.

Welcome to CaptainOS 0.1.0 (Tinkerbell)

[    5.700133] systemd[1]: Initializing machine ID from random generator.
[    5.741147] scsi host0: uas
[    5.742846] scsi 0:0:0:0: Direct-Access     ASMT     2105             0    PQ: 0 ANSI: 6
[    5.750752] sd 0:0:0:0: [sda] 500118192 512-byte logical blocks: (256 GB/238 GiB)
[    5.751679] sd 0:0:0:0: [sda] Write Protect is off
[    5.752300] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.826238] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    5.826786] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes
[    5.869376] systemd[1]: bpf-restrict-fs: BPF LSM hook not enabled in the kernel, BPF LSM not supported.
[    5.878277]  sda: sda1 sda2
[    5.881995] sd 0:0:0:0: [sda] Attached SCSI disk
[    6.317545] systemd[1]: Populated /etc with preset unit settings.
[    6.435555] systemd[1]: Queued start job for default target multi-user.target.
[    6.448152] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[  OK  ] Created slice system-getty.slice - Slice /system/getty.
[    6.466821] systemd[1]: Created slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
[    6.486748] systemd[1]: Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
[  OK  ] Created slice system-serial\x2dget…slice - Slice /system/serial-getty.
[    6.510508] systemd[1]: Created slice user.slice - User and Session Slice.
[  OK  ] Created slice user.slice - User and Session Slice.
[    6.529919] systemd[1]: Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started systemd-ask-password-conso…equests to Console Directory Watch.
[    6.553838] systemd[1]: Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[  OK  ] Started systemd-ask-password-wall.…d Requests to Wall Directory Watch.
[    6.578114] systemd[1]: Set up automount proc-sys-fs-binfmt_misc.automount - Arbitrary Executable File Formats File System Automount Point.
[  OK  ] Set up automount proc-sys-fs-binfm…ormats File System Automount Point.
[    6.605740] systemd[1]: Expecting device dev-ttyAMA0.device - /dev/ttyAMA0...
         Expecting device dev-ttyAMA0.device - /dev/ttyAMA0...
[    6.621776] systemd[1]: Reached target slices.target - Slice Units.
[  OK  ] Reached target slices.target - Slice Units.
[    6.637714] systemd[1]: Reached target swap.target - Swaps.
[  OK  ] Reached target swap.target - Swaps.
[    6.655390] systemd[1]: Listening on systemd-creds.socket - Credential Encryption/Decryption.
[  OK  ] Listening on systemd-creds.socket - Credential Encryption/Decryption.
[    6.677913] systemd[1]: Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[  OK  ] Listening on systemd-initctl.socke…- initctl Compatibility Named Pipe.
[    6.702328] systemd[1]: Listening on systemd-journald-audit.socket - Journal Audit Socket.
[  OK  ] Listening on systemd-journald-audit.socket - Journal Audit Socket.
[    6.721979] systemd[1]: Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[  OK  ] Listening on systemd-journald-dev-…socket - Journal Socket (/dev/log).
[    6.745987] systemd[1]: Listening on systemd-journald.socket - Journal Sockets.
[  OK  ] Listening on systemd-journald.socket - Journal Sockets.
[    6.766095] systemd[1]: Listening on systemd-networkd.socket - Network Service Netlink Socket.
[  OK  ] Listening on systemd-networkd.socket - Network Service Netlink Socket.
[    6.789738] systemd[1]: systemd-pcrextend.socket - TPM PCR Measurements was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    6.790929] systemd[1]: systemd-pcrlock.socket - Make TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    6.792351] systemd[1]: Listening on systemd-udevd-control.socket - udev Control Socket.
[  OK  ] Listening on systemd-udevd-control.socket - udev Control Socket.
[    6.837877] systemd[1]: Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[  OK  ] Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[    6.859913] systemd[1]: Mounting dev-hugepages.mount - Huge Pages File System...
         Mounting dev-hugepages.mount - Huge Pages File System...
[    6.880020] systemd[1]: Mounting dev-mqueue.mount - POSIX Message Queue File System...
         Mounting dev-mqueue.mount - POSIX Message Queue File System...
[    6.904131] systemd[1]: Mounting run-lock.mount - Legacy Locks Directory /run/lock...
         Mounting run-lock.mount - Legacy Locks Directory /run/lock...
[    6.928187] systemd[1]: Mounting sys-kernel-debug.mount - Kernel Debug File System...
         Mounting sys-kernel-debug.mount - Kernel Debug File System...
[    6.956036] systemd[1]: Mounting sys-kernel-tracing.mount - Kernel Trace File System...
         Mounting sys-kernel-tracing.mount - Kernel Trace File System...
[    6.984246] systemd[1]: Mounting tmp.mount - Temporary Directory /tmp...
         Mounting tmp.mount - Temporary Directory /tmp...
[    7.008457] systemd[1]: Starting kmod-static-nodes.service - Create List of Static Device Nodes...
         Starting kmod-static-nodes.service…eate List of Static Device Nodes...
[    7.032074] systemd[1]: Starting modprobe@configfs.service - Load Kernel Module configfs...
         Starting modprobe@configfs.service - Load Kernel Module configfs...
[    7.055990] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...
         Starting modprobe@drm.service - Load Kernel Module drm...
[    7.080075] systemd[1]: Starting modprobe@efi_pstore.service - Load Kernel Module efi_pstore...
         Starting modprobe@efi_pstore.servi… - Load Kernel Module efi_pstore...
[    7.108060] systemd[1]: Starting modprobe@fuse.service - Load Kernel Module fuse...
         Starting modprobe@fuse.service - Load Kernel Module fuse...
[    7.132088] systemd[1]: Starting nftables.service - nftables...
         Starting nftables.service - nftables...
[    7.143356] fuse: init (API version 7.45)
[    7.149881] systemd[1]: systemd-hibernate-clear.service - Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
[    7.174163] systemd[1]: Starting systemd-journald.service - Journal Service...
         Starting systemd-journald.service - Journal Service...
[    7.196855] systemd[1]: Starting systemd-modules-load.service - Load Kernel Modules...
         Starting systemd-modules-load.service - Load Kernel Modules...
[    7.220422] systemd[1]: Starting systemd-network-generator.service - Generate network units from Kernel command line...
         Starting systemd-network-generator…k units from Kernel command line...
[    7.242235] systemd[1]: systemd-pcrmachine.service - TPM PCR Machine ID Measurement was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    7.246929] systemd[1]: Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
[    7.253309] systemd-journald[146]: Collecting audit messages is enabled.
         Starting systemd-remount-fs.servic…unt Roo[    7.276685] systemd[1]: Starting systemd-time-wait-sync.service - Wait Until Kernel Time Synchronized...
t and Kernel File Systems...
         Starting systemd-time-wait-sync.se…t Until Kernel Time Synchronized...
[    7.309880] systemd[1]: systemd-tpm2-setup-early.service - Early TPM SRK Setup was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    7.313562] systemd[1]: Starting systemd-udev-load-credentials.service - Load udev Rules from Credentials...
         Starting systemd-udev-load-cred[    7.344379] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices...
ent…Load udev Rules from Credentials...
[    7.355263] systemd-time-wait-sync[154]: adjtime state 5 status 40 time Tue 2026-05-05 12:48:34.773774 UTC
         Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[    7.387023] systemd[1]: Started systemd-journald.service - Journal Service.
[  OK  ] Started systemd-journald.service - Journal Service.
[    7.410128] audit: type=1130 audit(1777985314.823:2): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-journald comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[  OK  ] Mounted dev-hugepages.mount - Huge Pages File System.
[    7.411849] systemd[1]: Mounted dev-hugepages.mount - Huge Pages File System.
[  OK  ] Mounted dev-mqueue.mount - POSIX Message Queue File System.
[    7.448395] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[  OK  ] Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[    7.480304] systemd[1]: Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[  OK  ] Mounted sys-kernel-debug.mount - Kernel Debug File System.
[    7.512326] systemd[1]: Mounted sys-kernel-debug.mount - Kernel Debug File System.
[  OK  ] Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[    7.544301] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[  OK  ] Mounted tmp.mount - Temporary Directory /tmp.
[    7.572268] systemd[1]: Mounted tmp.mount - Temporary Directory /tmp.
[  OK  ] Finished kmod-static-nodes.service…Create List of Static Device Nodes.
[    7.604356] systemd[1]: Finish[    7.621904] audit: type=1130 audit(1777985315.035:3): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=kmod-static-nodes comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
ed kmod-static-nodes.service - Create List of Static Device Nodes.
[  OK  ] Finished modprobe@configfs.service - Load Kernel Module configfs.
[    7.656611] systemd[1]: modpro[    7.673817] audit: type=1130 audit(1777985315.087:4): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@configfs comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
be@configfs.service: Deactivated[    7.675211] audit: type=1131 audit(1777985315.087:5): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@configfs comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
 successfully.
[  OK  ] Finished modprobe@drm.service - Load Kernel Module drm.
[    7.724598] systemd[1]: Finish[    7.741786] audit: type=1130 audit(1777985315.155:6): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@drm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
ed modprobe@configfs.service - L[    7.743059] audit: type=1131 audit(1777985315.155:7): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@drm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
oad Kernel Module configfs.
[  OK  ] Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[    7.792606] systemd[1]: modpro[    7.805793] audit: type=1130 audit(1777985315.219:8): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@efi_pstore comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
be@drm.service: Deactivated succ[    7.807028] audit: type=1131 audit(1777985315.219:9): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@efi_pstore comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
essfully.
[  OK  ] Finished modprobe@fuse.service - Load Kernel Module fuse.
[    7.852550] systemd[1]: Finish[    7.869787] audit: type=1130 audit(1777985315.283:10): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@fuse comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    7.870999] audit: type=1131 audit(1777985315.283:11): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@fuse comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
ed modprobe@drm.service - Load Kernel Module drm.
[  OK  ] Finished nftables.service - nftables.
[    7.908802] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
[  OK  ] Finished systemd-modules-load.service - Load Kernel Modules.
[    7.940338] systemd[1]: Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[  OK  ] Finished systemd-network-generator…ork units from Kernel command line.
[    7.972361] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[  OK  ] Finished systemd-remount-fs.servic…mount Root and Kernel File Systems.
[    8.000365] systemd[1]: Finished modprobe@fuse.service - Load Kernel Module fuse.
[  OK  ] Finished systemd-udev-load-credent…- Load udev Rules from Credentials.
[    8.032382] systemd[1]: Finished nftables.service - nftables.
[  OK  ] Finished systemd-udev-trigger.service - Coldplug All udev Devices.
[    8.064409] systemd[1]: Finished systemd-modules-load.service - Load Kernel Modules.
[    8.088657] systemd[1]: Finished systemd-network-generator.service - Generate network units from Kernel command line.
[  OK  ] Reached target network-pre.target - Preparation for Network.
[    8.104364] systemd[1]: Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
         Mounting sys-fs-fuse-connections.mount - FUSE Control File System...
[    8.132353] systemd[1]: Finished systemd-udev-load-credentials.service - Load udev Rules from Credentials.
         Mounting sys-kernel-config.mount - Kernel Configuration File System...
[    8.148506] systemd[1]: Finished systemd-udev-trigger.service - Coldplug All udev Devices.
[    8.168547] systemd[1]: Reached target network-pre.target - Preparation for Network.
         Starting systemd-journal-flush.ser…sh Journal to Persistent Storage...
[    8.180635] systemd[1]: Mounting sys-fs-fuse-connections.mount - FUSE Control File System...
[    8.200748] systemd[1]: Mounting sys-kernel-config.mount - Kernel Configuration File System...
         Starting systemd-random-seed.service - Load/Save OS Random Seed...
[    8.216656] systemd[1]: system[    8.242310] systemd-journald[146]: Received client request to flush runtime journal.
d-hwdb-update.service - Rebuild Hardware Database was skipped because no trigger condition checks were met.
         Starting systemd-sysctl.service - Apply Kernel Variables...
[    8.242291] systemd[1]: Starting systemd-journal-flush.service - Flush Journal to Persistent Storage...
         Starting systemd-tmpfiles-setup-de… Device Nodes in /dev gracefully...
[    8.273289] systemd[1]: systemd-pcrlock-file-system.service - Lock File Systems to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[  OK  ] Mounted sys-fs-fuse-connections.mount - FUSE Control File System.
[    8.296830] systemd[1]: systemd-pcrlock-machine-id.service - Lock Machine ID to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[  OK  ] Mounted sys-kernel-config.mount - Kernel Configuration File System.
[    8.348656] systemd[1]: systemd-pstore.service - Platform Persistent Storage Archival was skipped because of an unmet condition check (ConditionDirectoryNotEmpty=/sys/fs/pstore).
[  OK  ] Finished systemd-journal-flush.ser…lush Journal to Persistent Storage.
[    8.384614] systemd[1]: Starting systemd-random-seed.service - Load/Save OS Random Seed...
[  OK  ] Finished systemd-random-seed.service - Load/Save OS Random Seed.
[    8.408731] systemd[1]: Starting systemd-sysctl.service - Apply Kernel Variables...
[  OK  ] Finished systemd-sysctl.service - Apply Kernel Variables.
[    8.432436] systemd[1]: Starting systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully...
[  OK  ] Finished systemd-tmpfiles-setup-de…ic Device Nodes in /dev gracefully.
[    8.464413] systemd[1]: systemd-tpm2-setup.service - TPM SRK Setup was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[  OK  ] Reached target first-boot-complete.target - First Boot Complete.
[    8.496405] systemd[1]: systemd-pcrlock-firmware-code.service - Lock Firmware Code to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
         Starting systemd-sysusers.service - Create System Users...
[    8.528372] systemd[1]: systemd-pcrlock-firmware-config.service - Lock Firmware Configuration to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[  OK  ] Finished systemd-sysusers.service - Create System Users.
[    8.564335] systemd[1]: systemd-pcrlock-secureboot-authority.service - Lock UEFI SecureBoot Authority to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
         Starting systemd-resolved.service - Network Name Resolution...
[    8.600619] systemd[1]: systemd-pcrlock-secureboot-policy.service - Lock UEFI SecureBoot Policy to TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
         Starting systemd-timesyncd.service - Network Time Synchronization...
[    8.640825] systemd[1]: systemd-pcrlock-make-policy.service - Make TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    8.672998] systemd[1]: Mounted sys-fs-fuse-connections.mount - FUSE Control File System.
         Starting systemd-tmpfiles-setup-de…eate Static Device Nodes in /dev...
[    8.692977] systemd[1]: Mounted sys-kernel-config.mount - Kernel Configuration File System.
[    8.724517] systemd[1]: Finished systemd-journal-flush.service - Flush Journal to Persistent Storage.
[  OK  ] Started systemd-timesyncd.service - Network Time Synchronization.
[    8.736529] systemd[1]: Finished systemd-random-seed.service - Load/Save OS Random Seed.
[  OK  ] Started systemd-resolved.service - Network Name Resolution.
[    8.760626] systemd[1]: Finished systemd-sysctl.service - Apply Kernel Variables.
[  OK  ] Finished systemd-tmpfiles-setup-de…Create Static Device Nodes in /dev.
[    8.792438] systemd[1]: Finished systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully.
[  OK  ] Reached target local-fs-pre.target…Preparation for Local File Systems.
[    8.828434] systemd[1]: Reached target first-boot-complete.target - First Boot Complete.
[  OK  ] Reached target local-fs.target - Local File Systems.
[    8.856206] systemd[1]: Starting systemd-sysusers.service - Create System Users...
[  OK  ] Reached target nss-lookup.target - Host and Network Name Lookups.
[    8.880169] systemd[1]: Finished systemd-sysusers.service - Create System Users.
[  OK  ] Reached target time-set.target - System Time Set.
[    8.912156] systemd[1]: Starting systemd-resolved.service - Network Name Resolution...
[  OK  ] Listening on systemd-sysext.socket… System Extension Image Management.
[    8.940290] systemd[1]: Starting systemd-timesyncd.service - Network Time Synchronization...
         Starting systemd-machine-id-commit…ave Transient machine-id to Disk...
[    8.972323] systemd[1]: Starting systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev...
         Starting systemd-tmpfiles-setup.se…ate System Files and Directories...
[    8.985027] systemd-resolved[193]: Positive Trust Anchors:
[    9.004504] systemd-resolved[193]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
         Starting systemd-udevd.service - R…ager for Device Events and Files...
[    9.012812] systemd-resolved[193]: . IN DS 38696 8 2 683d2d0acb8c9b712a1948b27f741219298d0a450d612c483af444a4c0fb2b16
[  OK  ] Finished systemd-machine-id-commit… Save Transient machine-id to Disk.
[    9.060753] systemd-resolved[193]: Negative trust anchors: home.arpa 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 20.172.in-addr.arpa 21.172.in-addr.arpa 22.172.in-addr.arpa 23.172.in-addr.arpa 24.172.in-addr.arpa 25.172.in-addr.arpa 26.172.in-addr.arpa 27.172.in-addr.arpa 28.172.in-addr.arpa 29.172.in-addr.arpa 30.172.in-addr.arpa 31.172.in-addr.arpa 170.0.0.192.in-addr.arpa 171.0.0.192.in-addr.arpa 168.192.in-addr.arpa d.f.ip6.arpa ipv4only.arpa resolver.arpa corp home internal intranet lan local private test
[  OK  ] Finished systemd-tmpfiles-setup.se…reate System Files and Directories.
[    9.072697] systemd[1]: Started systemd-timesyncd.service - Network Time Synchronization.
         Starting ldconfig.service - Rebuild Dynamic Linker Cache...
[    9.156860] systemd-resolved[193]: Defaulting to hostname 'linux'.
         Starting systemd-journal-catalog-u…ervice - Rebuild Journal Catalog...
[  OK  ] Started systemd-udevd.service - Ru…anager for Device Events and Files.
[    9.181885] systemd[1]: Started systemd-resolved.service - Network Name Resolution.
[  OK  ] Finished ldconfig.service - Rebuild Dynamic Linker Cache.
[    9.227652] systemd[1]: Finished systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev.
[    9.252567] systemd[1]: Reached target local-fs-pre.target - Preparation for Local File Systems.
[    9.265395] systemd[1]: Reached target local-fs.target - Local File Systems.
[  OK  ] Finished systemd-journal-catalog-u….service - Rebuild Journal Catalog.
[    9.281189] systemd[1]: Reached target nss-lookup.target - Host and Network Name Lookups.
[  OK  ] Found device dev-ttyAMA0.device - /dev/ttyAMA0.
[    9.308714] systemd[1]: Reached target time-set.target - System Time Set.
[    9.328462] systemd[1]: Listening on systemd-sysext.socket - System Extension Image Management.
         Starting systemd-networkd.service - Network Configuration...
[    9.340891] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[    9.369273] systemd[1]: systemd-binfmt.service - Set Up Additional Binary Formats was skipped because no trigger condition checks were met.
[    9.384381] systemd[1]: systemd-confext.service - Merge System Configuration Images into /etc/ was skipped because no trigger condition checks were met.
         Starting systemd-update-done.service - Update is Completed...
[    9.407611] systemd[1]: Starting systemd-machine-id-commit.service - Save Transient machine-id to Disk...
[  OK  ] Finished systemd-update-done.service - Update is Completed.
[    9.442275] systemd[1]: systemd-sysext.service - Merge System Extension Images into /usr/ and /opt/ was skipped because no trigger condition checks were met.
[    9.474757] systemd[1]: Starting systemd-tmpfiles-setup.service - Create System Files and Directories...
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started rsyslog-hostname-reload.pa…ostname changes and reload rsyslog.
[  OK  ] Started systemd-tmpfiles-clean.tim…y Cleanup of Temporary Directories.
[    9.495060] systemd[1]: Starting systemd-udevd.service - Rule-based Manager for Device Events and Files...
[  OK  ] Reached target paths.target - Path Units.
[    9.557503] systemd-tmpfiles[205]: /usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring.
[  OK  ] Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Listening on systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Reached target sockets.target - Socket Units.
[    9.572354] systemd[1]: Finished systemd-machine-id-commit.service - Save Transient machine-id to Disk.
[  OK  ] Reached target basic.target - Basic System.
[    9.623103] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
         Starting dbus.service - D-Bus System Message Bus...
[    9.648430] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[    9.666537] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
         Starting systemd-logind.service - User Login Management...
[    9.679825] systemd[1]: Finished systemd-tmpfiles-setup.service - Create System Files and Directories.
[    9.696703] systemd[1]: captainos-static-network.service - Configure static networking from kernel cmdline (ipam=) was skipped because of an unmet condition check (ConditionKernelCommandLine=ipam).
[  OK  ] Started systemd-networkd.service - Network Configuration.
[    9.709057] systemd-udevd[206]: Using default interface naming scheme 'v257'.
[  OK  ] Started dbus.service - D-Bus System Message Bus.
[    9.752384] systemd[1]: Starting ldconfig.service - Rebuild Dynamic Linker Cache...
[    9.780566] systemd[1]: Starting systemd-journal-catalog-update.service - Rebuild Journal Catalog...
[    9.793616] systemd[1]: Started systemd-udevd.service - Rule-based Manager for Device Events and Files.
[  OK  ] Started systemd-logind.service - User Login Management.
[    9.808418] systemd[1]: Finished ldconfig.service - Rebuild Dynamic Linker Cache.
[    9.836587] journalctl[219]: No items in catalog.
[    9.844183] systemd[1]: Finished systemd-journal-catalog-update.service - Rebuild Journal Catalog.
[  OK  ] Reached target network.target - Network.
[    9.860321] systemd[1]: Found device dev-ttyAMA0.device - /dev/ttyAMA0.
[  OK  ] Listening on systemd-rfkill.socket…ll Switch Status /dev/rfkill Watch.
[    9.888711] dbus-daemon[258]: [system] Successfully activated service 'org.freedesktop.systemd1'
         Starting containerd.service - containerd container runtime...
[    9.912470] systemd[1]: Starting systemd-networkd.service - Network Configuration...
         Starting systemd-networkd-persiste…tent Storage in systemd-networkd...
[    9.924493] systemd[1]: Starting systemd-update-done.service - Update is Completed...
[    9.952504] systemd[1]: Finished systemd-update-done.service - Update is Completed.
         Starting systemd-networkd-wait-onl…ait for Network to be Configured...
[    9.968635] systemd[1]: etc-machine\x2did.mount: Deactivated successfully.
         Starting systemd-user-sessions.service - Permit User Sessions...
[    9.988885] systemd[1]: Reached target sysinit.target - System Initialization.
[  OK  ] Finished systemd-networkd-persiste…istent Storage in systemd-networkd.
[   10.008764] systemd[1]: Started rsyslog-hostname-reload.path - Watch for hostname changes and reload rsyslog.
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[   10.032886] systemd[1]: Started systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[   10.069187] systemd[1]: Reached target paths.target - Path Units.
[   10.081211] systemd[1]: Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Started serial-getty@ttyAMA0.service - Serial Getty on ttyAMA0.
[   10.097623] containerd[272]: time="2026-05-05T12:48:37.507528571Z" level=info msg="starting containerd" revision=dea7da592f5d1d2b7755e3a161be07f43fad8f75 version=v2.2.1
[  OK  ] Reached target getty.target - Login Prompts.
[   10.136663] systemd[1]: Listening on systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Started containerd.service - containerd container runtime.
[   10.152446] containerd[272]: time="2026-05-05T12:48:37.534297015Z" level=info msg="loading plugin" id=io.containerd.content.v1.content type=io.containerd.content.v1
[   10.196223] containerd[272]: time="2026-05-05T12:48:37.534458589Z" level=info msg="loading plugin" id=io.containerd.image-verifier.v1.bindir type=io.containerd.image-verifier.v1
[   10.220161] containerd[272]: time="2026-05-05T12:48:37.534510330Z" level=info msg="loading plugin" id=io.containerd.warning.v1.deprecations type=io.containerd.warning.v1
[   10.240171] containerd[272]: time="2026-05-05T12:48:37.534545330Z" level=info msg="loading plugin" id=io.containerd.mount-handler.v1.erofs type=io.containerd.mount-handler.v1
[   10.260110] containerd[272]: time="2026-05-05T12:48:37.534581386Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.blockfile type=io.containerd.snapshotter.v1
[   10.280134] containerd[272]: time="2026-05-05T12:48:37.534690997Z" level=info msg="skip loading plugin" error="no scratch file generator: skip plugin" id=io.containerd.snapshotter.v1.blockfile type=io.containerd.snapshotter.v1
[   10.304091] containerd[272]: time="2026-05-05T12:48:37.534721126Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.btrfs type=io.containerd.snapshotter.v1
[   10.324109] containerd[272]: time="2026-05-05T12:48:37.535080201Z" level=info msg="skip loading plugin" error="path /var/lib/containerd/io.containerd.snapshotter.v1.btrfs (tmpfs) must be a btrfs filesystem to be used with the btrfs snapshotter: skip plugin" id=io.containerd.snapshotter.v1.btrfs type=io.containerd.snapshotter.v1
[   10.356098] containerd[272]: time="2026-05-05T12:48:37.535122886Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.devmapper type=io.containerd.snapshotter.v1
[   10.376110] containerd[272]: time="2026-05-05T12:48:37.535154515Z" level=info msg="skip loading plugin" error="devmapper not configured: skip plugin" id=io.containerd.snapshotter.v1.devmapper type=io.containerd.snapshotter.v1
[   10.400098] containerd[272]: time="2026-05-05T12:48:37.535181423Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.erofs type=io.containerd.snapshotter.v1
[   10.420105] containerd[272]: time="2026-05-05T12:48:37.535576386Z" level=info msg="skip loading plugin" error="EROFS unsupported, please `modprobe erofs`: skip plugin" id=io.containerd.snapshotter.v1.erofs type=io.containerd.snapshotter.v1
[   10.444672] systemd[1]: Reached target sockets.target - Socket Units.
[   10.456228] containerd[272]: time="2026-05-05T12:48:37.535702182Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.native type=io.containerd.snapshotter.v1
[   10.476133] containerd[272]: time="2026-05-05T12:48:37.535824349Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.overlayfs type=io.containerd.snapshotter.v1
[   10.496107] containerd[272]: time="2026-05-05T12:48:37.536246219Z" level=info msg="loading plugin" id=io.containerd.snapshotter.v1.zfs type=io.containerd.snapshotter.v1
[   10.516100] containerd[272]: time="2026-05-05T12:48:37.536368034Z" level=info msg="skip loading plugin" error="lstat /var/lib/containerd/io.containerd.snapshotter.v1.zfs: no such file or directory: skip plugin" id=io.containerd.snapshotter.v1.zfs type=io.containerd.snapshotter.v1
[   10.544107] containerd[272]: time="2026-05-05T12:48:37.536399163Z" level=info msg="loading plugin" id=io.containerd.event.v1.exchange type=io.containerd.event.v1
[   10.564087] containerd[272]: time="2026-05-05T12:48:37.536525904Z" level=info msg="loading plugin" id=io.containerd.monitor.task.v1.cgroups type=io.containerd.monitor.task.v1
[   10.584098] containerd[272]: time="2026-05-05T12:48:37.537285478Z" level=info msg="loading plugin" id=io.containerd.metadata.v1.bolt type=io.containerd.metadata.v1
[   10.604116] containerd[272]: time="2026-05-05T12:48:37.537461719Z" level=info msg="metadata content store policy set" policy=shared
[   10.620091] containerd[272]: time="2026-05-05T12:48:37.538021367Z" level=info msg="loading plugin" id=io.containerd.gc.v1.scheduler type=io.containerd.gc.v1
[   10.636117] containerd[272]: time="2026-05-05T12:48:37.538108571Z" level=info msg="loading plugin" id=io.containerd.nri.v1.nri type=io.containerd.nri.v1
[   10.652119] containerd[272]: time="2026-05-05T12:48:37.538177960Z" level=info msg="built-in NRI default validator is disabled"
[   10.668097] containerd[272]: time="2026-05-05T12:48:37.538198738Z" level=info msg="runtime interface created"
[   10.684094] containerd[272]: time="2026-05-05T12:48:37.538215793Z" level=info msg="created NRI interface"
[   10.696091] containerd[272]: time="2026-05-05T12:48:37.538242349Z" level=info msg="loading plugin" id=io.containerd.differ.v1.erofs type=io.containerd.differ.v1
[   10.716255] systemd[1]: systemd-pcrphase-sysinit.service - TPM PCR Barrier (Initialization) was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[   10.740232] containerd[272]: time="2026-05-05T12:48:37.538360423Z" level=info msg="skip loading plugin" error="failed to check mkfs.erofs availability: failed to run mkfs.erofs --help: exec: \"mkfs.erofs\": executable file not found in $PATH: skip plugin" id=io.containerd.differ.v1.erofs type=io.containerd.differ.v1
[   10.772124] containerd[272]: time="2026-05-05T12:48:37.538410608Z" level=info msg="loading plugin" id=io.containerd.differ.v1.walking type=io.containerd.differ.v1
[   10.796108] containerd[272]: time="2026-05-05T12:48:37.538459756Z" level=info msg="loading plugin" id=io.containerd.lease.v1.manager type=io.containerd.lease.v1
[   10.816101] containerd[272]: time="2026-05-05T12:48:37.538495849Z" level=info msg="loading plugin" id=io.containerd.mount-manager.v1.bolt type=io.containerd.mount-manager.v1
[   10.836107] containerd[272]: time="2026-05-05T12:48:37.538807571Z" level=info msg="loading plugin" id=io.containerd.service.v1.containers-service type=io.containerd.service.v1
[   10.856102] containerd[272]: time="2026-05-05T12:48:37.538849034Z" level=info msg="loading plugin" id=io.containerd.service.v1.content-service type=io.containerd.service.v1
[   10.876116] containerd[272]: time="2026-05-05T12:48:37.538881756Z" level=info msg="loading plugin" id=io.containerd.service.v1.diff-service type=io.containerd.service.v1
[   10.896120] containerd[272]: time="2026-05-05T12:48:37.538919219Z" level=info msg="loading plugin" id=io.containerd.service.v1.images-service type=io.containerd.service.v1
[   10.916089] containerd[272]: time="2026-05-05T12:48:37.538956200Z" level=info msg="loading plugin" id=io.containerd.service.v1.introspection-service type=io.containerd.service.v1
[   10.936099] containerd[272]: time="2026-05-05T12:48:37.539009552Z" level=info msg="loading plugin" id=io.containerd.service.v1.namespaces-service type=io.containerd.service.v1
[   10.956101] containerd[272]: time="2026-05-05T12:48:37.539062978Z" level=info msg="loading plugin" id=io.containerd.service.v1.snapshots-service type=io.containerd.service.v1
[   10.976114] containerd[272]: time="2026-05-05T12:48:37.539095738Z" level=info msg="loading plugin" id=io.containerd.shim.v1.manager type=io.containerd.shim.v1
[   10.996102] containerd[272]: time="2026-05-05T12:48:37.539139256Z" level=info msg="loading plugin" id=io.containerd.runtime.v2.task type=io.containerd.runtime.v2
[   11.016222] systemd[1]: Reached target basic.target - Basic System.
[   11.028162] containerd[272]: time="2026-05-05T12:48:37.539396423Z" level=info msg="loading plugin" id=io.containerd.service.v1.tasks-service type=io.containerd.service.v1
[   11.048098] containerd[272]: time="2026-05-05T12:48:37.539455719Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.containers type=io.containerd.grpc.v1
[   11.068100] containerd[272]: time="2026-05-05T12:48:37.539494108Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.content type=io.containerd.grpc.v1
[   11.088099] containerd[272]: time="2026-05-05T12:48:37.539538812Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.diff type=io.containerd.grpc.v1
[   11.104602] containerd[272]: time="2026-05-05T12:48:37.539572812Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.events type=io.containerd.grpc.v1
[   11.124152] containerd[272]: time="2026-05-05T12:48:37.539603497Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.images type=io.containerd.grpc.v1
[   11.144108] containerd[272]: time="2026-05-05T12:48:37.539640238Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.introspection type=io.containerd.grpc.v1
[   11.164112] containerd[272]: time="2026-05-05T12:48:37.539676089Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.leases type=io.containerd.grpc.v1
[   11.184114] containerd[272]: time="2026-05-05T12:48:37.539708941Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.mounts type=io.containerd.grpc.v1
[   11.204122] containerd[272]: time="2026-05-05T12:48:37.539739478Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.namespaces type=io.containerd.grpc.v1
[   11.224106] containerd[272]: time="2026-05-05T12:48:37.539781330Z" level=info msg="loading plugin" id=io.containerd.sandbox.store.v1.local type=io.containerd.sandbox.store.v1
[   11.244096] containerd[272]: time="2026-05-05T12:48:37.539820163Z" level=info msg="loading plugin" id=io.containerd.transfer.v1.local type=io.containerd.transfer.v1
[   11.264101] containerd[272]: time="2026-05-05T12:48:37.539898719Z" level=info msg="loading plugin" id=io.containerd.cri.v1.images type=io.containerd.cri.v1
[   11.280090] containerd[272]: time="2026-05-05T12:48:37.540147052Z" level=info msg="Get image filesystem path \"/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs\" for snapshotter \"overlayfs\""
[   11.300155] containerd[272]: time="2026-05-05T12:48:37.540185960Z" level=info msg="Start snapshots syncer"
[   11.312587] systemd-networkd[240]: lo: Link UP
[   11.320239] containerd[272]: time="2026-05-05T12:48:37.540254108Z" level=info msg="loading plugin" id=io.containerd.cri.v1.runtime type=io.containerd.cri.v1
[   11.336125] containerd[272]: time="2026-05-05T12:48:37.540902923Z" level=info msg="starting cri plugin" config="{\"containerd\":{\"defaultRuntimeName\":\"runc\",\"runtimes\":{\"runc\":{\"runtimeType\":\"io.containerd.runc.v2\",\"runtimePath\":\"\",\"PodAnnotations\":null,\"ContainerAnnotations\":null,\"options\":{\"BinaryName\":\"\",\"CriuImagePath\":\"\",\"CriuWorkPath\":\"\",\"IoGid\":0,\"IoUid\":0,\"NoNewKeyring\":false,\"Root\":\"\",\"ShimCgroup\":\"\",\"SystemdCgroup\":false},\"privileged_without_host_devices\":false,\"privileged_without_host_devices_all_devices_allowed\":false,\"cgroupWritable\":false,\"baseRuntimeSpec\":\"\",\"cniConfDir\":\"\",\"cniMaxConfNum\":0,\"snapshotter\":\"\",\"sandboxer\":\"podsandbox\",\"io_type\":\"\"}},\"ignoreBlockIONotEnabledErrors\":false,\"ignoreRdtNotEnabledErrors\":false},\"cni\":{\"binDir\":\"\",\"binDirs\":[\"/opt/cni/bin\"],\"confDir\":\"/etc/cni/net.d\",\"maxConfNum\":1,\"setupSerially\":false,\"confTemplate\":\"\",\"ipPref\":\"\",\"useInternalLoopback\":false},\"enableSelinux\":false,\"selinuxCategoryRange\":1024,\"maxContainerLogLineSize\":16384,\"disableApparmor\":false,\"restrictOOMScoreAdj\":false,\"disableProcMount\":false,\"unsetSeccompProfile\":\"\",\"tolerateMissingHugetlbController\":true,\"disableHugetlbController\":true,\"device_ownership_from_security_context\":false,\"ignoreImageDefinedVolumes\":false,\"netnsMountsUnderStateDir\":false,\"enableUnprivilegedPorts\":true,\"enableUnprivilegedICMP\":true,\"enableCDI\":true,\"cdiSpecDirs\":[\"/etc/cdi\",\"/var/run/cdi\"],\"drainExecSyncIOTimeout\":\"0s\",\"ignoreDeprecationWarnings\":null,\"containerdRootDir\":\"/var/lib/containerd\",\"containerdEndpoint\":\"/run/containerd/containerd.sock\",\"rootDir\":\"/var/lib/containerd/io.containerd.grpc.v1.cri\",\"stateDir\":\"/run/containerd/io.containerd.grpc.v1.cri\"}"
[   11.500399] systemd-networkd[240]: lo: Gained carrier
[   11.508236] containerd[272]: time="2026-05-05T12:48:37.541044275Z" level=info msg="loading plugin" id=io.containerd.podsandbox.controller.v1.podsandbox type=io.containerd.podsandbox.controller.v1
[   11.528098] containerd[272]: time="2026-05-05T12:48:37.541201812Z" level=info msg="loading plugin" id=io.containerd.sandbox.controller.v1.shim type=io.containerd.sandbox.controller.v1
[   11.548136] containerd[272]: time="2026-05-05T12:48:37.541365812Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.sandbox-controllers type=io.containerd.grpc.v1
[   11.568088] containerd[272]: time="2026-05-05T12:48:37.541412738Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.sandboxes type=io.containerd.grpc.v1
[   11.588099] containerd[272]: time="2026-05-05T12:48:37.541446441Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.snapshots type=io.containerd.grpc.v1
[   11.608104] containerd[272]: time="2026-05-05T12:48:37.541478052Z" level=info msg="loading plugin" id=io.containerd.streaming.v1.manager type=io.containerd.streaming.v1
[   11.628106] containerd[272]: time="2026-05-05T12:48:37.541515738Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.streaming type=io.containerd.grpc.v1
[   11.648104] containerd[272]: time="2026-05-05T12:48:37.541550515Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.tasks type=io.containerd.grpc.v1
[   11.664094] containerd[272]: time="2026-05-05T12:48:37.541582349Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.transfer type=io.containerd.grpc.v1
[   11.684100] containerd[272]: time="2026-05-05T12:48:37.541618423Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.version type=io.containerd.grpc.v1
[   11.704106] containerd[272]: time="2026-05-05T12:48:37.541655738Z" level=info msg="loading plugin" id=io.containerd.monitor.container.v1.restart type=io.containerd.monitor.container.v1
[   11.724125] containerd[272]: time="2026-05-05T12:48:37.541741423Z" level=info msg="loading plugin" id=io.containerd.tracing.processor.v1.otlp type=io.containerd.tracing.processor.v1
[   11.744090] containerd[272]: time="2026-05-05T12:48:37.541802756Z" level=info msg="skip loading plugin" error="skip plugin: tracing endpoint not configured" id=io.containerd.tracing.processor.v1.otlp type=io.containerd.tracing.processor.v1
[   11.768096] containerd[272]: time="2026-05-05T12:48:37.541830534Z" level=info msg="loading plugin" id=io.containerd.internal.v1.tracing type=io.containerd.internal.v1
[   11.788539] systemd[1]: System is tainted: unmerged-bin
[   11.800222] containerd[272]: time="2026-05-05T12:48:37.541861015Z" level=info msg="skip loading plugin" error="skip plugin: tracing endpoint not configured" id=io.containerd.internal.v1.tracing type=io.containerd.internal.v1
[   11.824104] containerd[272]: time="2026-05-05T12:48:37.541891182Z" level=info msg="loading plugin" id=io.containerd.ttrpc.v1.otelttrpc type=io.containerd.ttrpc.v1
[   11.844110] containerd[272]: time="2026-05-05T12:48:37.541922886Z" level=info msg="loading plugin" id=io.containerd.grpc.v1.healthcheck type=io.containerd.grpc.v1
[   11.864106] containerd[272]: time="2026-05-05T12:48:37.542528645Z" level=info msg=serving... address=/run/containerd/containerd.sock.ttrpc
[   11.880112] containerd[272]: time="2026-05-05T12:48:37.542659089Z" level=info msg=serving... address=/run/containerd/containerd.sock
[   11.896123] containerd[272]: time="2026-05-05T12:48:37.542804682Z" level=info msg="containerd successfully booted in 0.037326s"
[   11.912160] systemd[1]: Starting dbus.service - D-Bus System Message Bus...
[   11.928141] systemd[1]: getty-static.service - getty on tty2-tty6 if dbus and logind are not available was skipped because of an unmet condition check (ConditionPathExists=!/usr/bin/dbus-daemon).
[   11.948178] systemd-networkd[240]: end0: Configuring with /etc/systemd/network/80-dhcp.network.
[   11.960171] systemd[1]: Starting systemd-logind.service - User Login Management...
[   11.972129] systemd-networkd[240]: end0: Link UP
[   11.980165] systemd[1]: systemd-pcrphase.service - TPM PCR Barrier (User) was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[   11.996181] systemd[1]: Started systemd-networkd.service - Network Configuration.
[   12.008130] systemd[1]: Started dbus.service - D-Bus System Message Bus.
[   12.020548] systemd-logind[259]: New seat seat0.
[   12.028196] systemd[1]: Started systemd-logind.service - User Login Management.
[   12.044201] systemd[1]: Reached target network.target - Network.
[   12.060141] systemd[1]: Listening on systemd-rfkill.socket - Load/Save RF Kill Switch Status /dev/rfkill Watch.
[   12.076130] systemd[1]: Starting containerd.service - containerd container runtime...
[   12.088144] systemd[1]: Starting systemd-networkd-persistent-storage.service - Enable Persistent Storage in systemd-networkd...
[   12.104131] systemd[1]: Starting systemd-networkd-wait-online.service - Wait for Network to be Configured...
[   12.116152] systemd[1]: Starting systemd-user-sessions.service - Permit User Sessions...
[   12.128150] systemd[1]: Finished systemd-networkd-persistent-storage.service - Enable Persistent Storage in systemd-networkd.
[   12.144141] systemd[1]: Finished systemd-user-sessions.service - Permit User Sessions.
[   12.156132] systemd[1]: Started getty@tty1.service - Getty on tty1.
[   12.168135] systemd[1]: Started serial-getty@ttyAMA0.service - Serial Getty on ttyAMA0.
[   12.180155] systemd[1]: Reached target getty.target - Login Prompts.
[   12.192159] systemd[1]: Started containerd.service - containerd container runtime.
[   12.733190] systemd-networkd[240]: end0: Gained carrier
[   13.948725] systemd-networkd[240]: end0: Gained IPv6LL
[   13.956632] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[   14.531743] systemd-networkd[240]: end0: DHCPv6 address fd00:dead:beef::aeb/128 (valid for 4min 59s, preferred for 4min 59s)
[   14.552256] systemd-networkd[240]: end0: DHCPv6 address 2a02:a466:4d7a::aeb/128 (valid for 4min 59s, preferred for 4min 59s)
[   15.179328] login[280]: pam_unix(login:session): session opened for user root(uid=0) by root(uid=0)
[   15.195570] systemd-logind[259]: New session 1 of user root.
[   15.198006] systemd[1]: Created slice user-0.slice - User Slice of UID 0.

localhost login: root (automatic login)


Welcome to CaptainOS! Your Tinkerbell operating system installation environment.

   ▄▄▄▄▄▄▄                                    ▄▄▄▄▄    ▄▄▄▄▄▄▄
  ███▀▀▀▀▀              ██        ▀▀        ▄███████▄ █████▀▀▀
  ███       ▀▀█▄ ████▄ ▀██▀▀ ▀▀█▄ ██  ████▄ ███   ███  ▀████▄
  ███      ▄█▀██ ██ ██  ██  ▄█▀██ ██  ██ ██ ███▄▄▄███    ▀████
  ▀███████ ▀█▄██ ████▀  ██  ▀█▄██ ██▄ ██ ██  ▀█████▀  ███████▀
                 ██
                 ▀▀

- Use `journalctl -u tink-agent` command to access the tink worker/agent logs.
- Use `nerdctl` commands to access workflow action containers.

[   15.238779] login[282]: pam_unix(login:session): session opened for user root(uid=0) by root(uid=0)
[   15.245843] systemd-logind[259]: New session 2 of user root.
[   15.251059] systemd[1]: Finished user-runtime-dir@0.service - User Runtime Directory /run/user/0.
[   15.255717] systemd[1]: Starting user@0.service - User Manager for UID 0...
[   15.276087] (systemd)[294]: pam_unix(systemd-user:session): session opened for user root(uid=0) by root(uid=0)
[   15.279717] systemd-logind[259]: New session 3 of user root.
[   15.613753] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[   15.615053] systemd[294]: Queued start job for default target default.target.
[   15.617392] systemd[294]: Created slice app.slice - User Application Slice.
[   15.617681] systemd[294]: Started systemd-tmpfiles-clean.timer - Daily Cleanup of User's Temporary Directories.
[   15.617857] systemd[294]: Reached target paths.target - Paths.
[   15.618009] systemd[294]: Reached target sockets.target - Sockets.
[   15.618150] systemd[294]: Reached target timers.target - Timers.
[   15.619686] systemd[294]: Starting systemd-tmpfiles-setup.service - Create User Files and Directories...
[   15.648324] systemd[294]: Finished systemd-tmpfiles-setup.service - Create User Files and Directories.
[   15.648647] systemd[294]: Reached target basic.target - Basic System.
[   15.648824] systemd[294]: Reached target default.target - Main User Target.
[   15.648980] systemd[294]: Startup finished in 352ms.
[   15.649150] systemd[1]: Started user@0.service - User Manager for UID 0.
[   15.651893] systemd[1]: Started session-1.scope - Session 1 of User root.
[   15.654828] systemd[1]: Started session-2.scope - Session 2 of User root.
[   15.655149] login[280]: ROOT LOGIN ON tty1
[   15.658322] login[282]: ROOT LOGIN ON ttyAMA0
root@localhost:~# [   15.772973] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[   15.778911] systemd[1]: Finished systemd-networkd-wait-online.service - Wait for Network to be Configured.
[   15.780653] systemd[1]: Reached target network-online.target - Network is Online.
[   15.783745] systemd[1]: Starting captainos-banner.service - CaptainOS Banner...
[   15.788250] systemd[1]: Starting rsyslog.service - Remote Syslog Forwarder (rsyslog)...
[   15.819495] captainos-banner[310]: ===========================================
[   15.819825] captainos-banner[310]:   CaptainOS - Tinkerbell Provisioning Agent
[   15.820154] captainos-banner[310]:   CaptainOS 0.1.0 (Tinkerbell)
[   15.820374] captainos-banner[310]:   Kernel: 6.18.26-current-bcm2711
[   15.820502] captainos-banner[310]:   Hostname: localhost
[   15.820621] captainos-banner[310]: ===========================================
[   15.820932] systemd[1]: Finished captainos-banner.service - CaptainOS Banner.
[   15.825749] systemd[1]: Started rsyslog.service - Remote Syslog Forwarder (rsyslog).
[   15.861563] rsyslog-start[321]: rsyslog: Forwarding logs to syslog.app.192.168.66.171.nip.io:514 (udp)
[   15.871370] rsyslogd[321]: imjournal: filecreatemode is not set, using default 0644 [v8.2504.0 try https://www.rsyslog.com/e/2186 ]
[   15.871636] rsyslogd[321]: [origin software="rsyslogd" swVersion="8.2504.0" x-pid="321" x-info="https://www.rsyslog.com"] start
[   15.926424] rsyslogd[321]: imjournal: journal files changed, reloading...  [v8.2504.0 try https://www.rsyslog.com/e/0 ]
[   16.232864] systemd-networkd[240]: end0: DHCPv4 address 192.168.66.20/24, gateway 192.168.66.1 acquired from 192.168.66.1
[   16.233576] dbus-daemon[258]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.2' (uid=998 pid=240 comm="/usr/lib/systemd/systemd-networkd")
[   16.233882] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[   16.234668] systemd-timesyncd[196]: Network configuration changed, trying to establish connection.
[   16.248183] systemd[1]: Starting rsyslog-hostname-reload.service - Restart rsyslog to pick up new hostname...
[   16.254180] systemd[1]: Starting systemd-hostnamed.service - Hostname Service...
[   16.284696] systemd[1]: Stopping rsyslog.service - Remote Syslog Forwarder (rsyslog)...
[   16.367457] systemd[1]: Started systemd-hostnamed.service - Hostname Service.
[   16.368295] dbus-daemon[258]: [system] Successfully activated service 'org.freedesktop.hostname1'
[   16.369615] dbus-daemon[258]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service' requested by ':1.10' (uid=0 pid=329 comm="/usr/lib/systemd/systemd-hostnamed")
[   16.377800] systemd[1]: Starting polkit.service - Authorization Manager...
[   16.489137] polkitd[330]: Started polkitd version 126
[   16.492482] rsyslogd[321]: [origin software="rsyslogd" swVersion="8.2504.0" x-pid="321" x-info="https://www.rsyslog.com"] exiting on signal 15.
[   16.496346] systemd[1]: rsyslog.service: Deactivated successfully.
[   16.496881] systemd[1]: Stopped rsyslog.service - Remote Syslog Forwarder (rsyslog).
[   16.497227] polkitd[330]: Loading rules from directory /etc/polkit-1/rules.d
[   16.497403] polkitd[330]: Loading rules from directory /run/polkit-1/rules.d
[   16.497560] polkitd[330]: Error opening rules directory: Error opening directory “/run/polkit-1/rules.d”: No such file or directory (g-file-error-quark, 4)
[   16.497719] polkitd[330]: Loading rules from directory /usr/local/share/polkit-1/rules.d
[   16.497903] polkitd[330]: Error opening rules directory: Error opening directory “/usr/local/share/polkit-1/rules.d”: No such file or directory (g-file-error-quark, 4)
[   16.498103] polkitd[330]: Loading rules from directory /usr/share/polkit-1/rules.d
[   16.499079] polkitd[330]: Finished loading, compiling and executing 2 rules
[   16.500709] dbus-daemon[258]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
[   16.501312] polkitd[330]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
[   16.502694] systemd[1]: Starting rsyslog.service - Remote Syslog Forwarder (rsyslog)...
[   16.504324] systemd[1]: Started polkit.service - Authorization Manager.
[   16.519591] systemd-hostnamed[329]: Hostname set to <rpi4b8g-eth> (transient)
[   16.521221] systemd-resolved[193]: System hostname changed to 'rpi4b8g-eth'.
[   16.539449] systemd[1]: Started rsyslog.service - Remote Syslog Forwarder (rsyslog).
[   16.545360] systemd[1]: rsyslog-hostname-reload.service: Deactivated successfully.
[   16.545907] systemd[1]: Finished rsyslog-hostname-reload.service - Restart rsyslog to pick up new hostname.
[   16.577210] rsyslog-start[342]: rsyslog: Forwarding logs to syslog.app.192.168.66.171.nip.io:514 (udp)
[   16.589420] rsyslogd[342]: imjournal: filecreatemode is not set, using default 0644 [v8.2504.0 try https://www.rsyslog.com/e/2186 ]
[   16.589690] rsyslogd[342]: [origin software="rsyslogd" swVersion="8.2504.0" x-pid="342" x-info="https://www.rsyslog.com"] start
[   16.648044] rsyslogd[342]: imjournal: journal files changed, reloading...  [v8.2504.0 try https://www.rsyslog.com/e/0 ]
[   20.681845] systemd-resolved[193]: Clock change detected. Flushing caches.
[   20.682532] systemd-timesyncd[196]: Contacted time server 192.168.66.1:123 (192.168.66.1).
[   20.682742] systemd-timesyncd[196]: Initial clock synchronization to Tue 2026-05-05 13:02:04.307356 UTC.
[   20.683284] systemd-time-wait-sync[154]: adjtime state 0 status 2000 time Tue 2026-05-05 13:02:04.308518 UTC
[   20.686668] systemd[1]: Finished systemd-time-wait-sync.service - Wait Until Kernel Time Synchronized.
[   20.687874] systemd[1]: Reached target time-sync.target - System Time Synchronized.
[   20.688583] systemd[1]: Started dpkg-db-backup.timer - Daily dpkg database backup timer.
[   20.688873] systemd[1]: Reached target timers.target - Timer Units.
[   20.692063] systemd[1]: Starting tink-agent-setup.service - Tink Agent Setup (pull image and extract binary)...
[   20.721825] tink-agent-setup[351]: {"time":"2026-05-05T13:02:04Z","level":"info","msg":"tink-agent-setup starting"}
[   20.778275] tink-agent-setup[351]: {"time":"2026-05-05T13:02:04Z","level":"info","msg":"configuration","image":"ghcr.io/rpardini/tinkerbell/tink-agent:latest","grpcAuthority":"tinkgrpc.app.192.168.66.171.nip.io:42113","workerID":"rpi","syslogHost":"syslog.app.192.168.66.171.nip.io"}
[   20.798630] tink-agent-setup[351]: {"time":"2026-05-05T13:02:04Z","level":"info","msg":"waiting for containerd socket","path":"/run/containerd/containerd.sock"}
[   20.807787] tink-agent-setup[351]: {"time":"2026-05-05T13:02:04Z","level":"info","msg":"containerd is ready"}
[   20.828121] tink-agent-setup[351]: {"time":"2026-05-05T13:02:04Z","level":"info","msg":"pulling tink-agent image","image":"ghcr.io/rpardini/tinkerbell/tink-agent:latest"}
[   29.665865] systemd[1]: var-lib-containerd-tmpmounts-containerd\x2dmount1747584048.mount: Deactivated successfully.
[   29.707910] tink-agent-setup[351]: {"time":"2026-05-05T13:02:13Z","level":"info","msg":"image pulled successfully"}
[   29.716505] tink-agent-setup[351]: {"time":"2026-05-05T13:02:13Z","level":"info","msg":"extracting tink-agent binary from image"}
[   29.731994] tink-agent-setup[351]: {"time":"2026-05-05T13:02:13Z","level":"info","msg":"saving image to tar"}
[   32.507457] tink-agent-setup[351]: {"time":"2026-05-05T13:02:16Z","level":"info","msg":"extracted binary from blob","path":"tink-agent","blob":"c97c40b0d8513844eafabc46fdae1c9bb09bc73e33c68f5404a75adc4c74229b"}
[   32.569770] tink-agent-setup[351]: {"time":"2026-05-05T13:02:16Z","level":"info","msg":"installed tink-agent","path":"/tink-agent"}
[   32.599599] tink-agent-setup[351]: {"time":"2026-05-05T13:02:16Z","level":"info","msg":"writing tink-agent environment","path":"/etc/tink-agent.env"}
[   32.615526] tink-agent-setup[351]: {"time":"2026-05-05T13:02:16Z","level":"info","msg":"tink-agent-setup complete"}
[   32.618409] systemd[1]: Finished tink-agent-setup.service - Tink Agent Setup (pull image and extract binary).
[   32.622522] systemd[1]: Started tink-agent.service - Tinkerbell Agent.
[   32.623298] systemd[1]: Reached target multi-user.target - Multi-User System.
[   32.623688] systemd[1]: Startup finished in 5.578s (kernel) + 27.044s (userspace) = 32.623s.
[   32.663077] tink-agent[532]: {"time":"2026-05-05T13:02:16Z","level":"info","msg":"starting tink-agent","args":"-runtime containerd -containerd-socket /run/containerd/containerd.sock -transport grpc -grpc-server tinkgrpc.app.192.168.66.171.nip.io:42113 -grpc-tls=false -grpc-insecure-tls=false -id rpi"}
[   32.682400] tink-agent[532]: {"time":"2026-05-05T13:02:16.308292372Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/cmd/agent/main.go","line":88},"msg":"starting Agent","agentID":"rpi","runtime":"containerd","transport":"grpc","version":"v0.0.0-6b16bf78"}
[   32.901813] tink-agent[532]: {"time":"2026-05-05T13:02:16.526857446Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":314},"msg":"starting gRPC transport","agentID":"rpi","server":"tinkgrpc.app.192.168.66.171.nip.io:42113","attributes":{"cpu":{"totalCores":4,"totalThreads":4,"processors":[{"id":0,"cores":4,"threads":4,"vendor":"ARM","model":"","capabilities":["fp","asimd","evtstrm","crc32","cpuid"]}]},"memory":{"total":"8GB","usable":"8GB"},"blockDevices":[{"name":"sda","controllerType":"SCSI","driveType":"HDD","size":"239GB","physicalBlockSize":"512B","vendor":"ASMT","model":"Samsung_SSD_840_PRO_Series","wwn":"0x50025385a01950ad","serialNumber":"S1ATNSAF125270K"}],"networkInterfaces":[{"name":"end0","mac":"dc:a6:32:ec:8b:49","speed":"1000"}],"pciDevices":[{"vendor":"Broadcom Inc. and subsidiaries","product":"BCM2711 PCIe Bridge","class":"Bridge","driver":"pcieport"},{"vendor":"VIA Technologies, Inc.","product":"VL805/806 xHCI USB 3.0 Controller","class":"Serial bus controller","driver":"xhci_hcd"}],"chassis":{"serial":"unknown","vendor":"unknown"},"bios":{"vendor":"unknown","version":"unknown","releaseDate":"unknown"},"baseboard":{"vendor":"unknown","product":"unknown","version":"unknown","serialNumber":"unknown"},"product":{"name":"unknown","vendor":"unknown","serialNumber":"unknown"}}}
[   32.902697] tink-agent[532]: {"time":"2026-05-05T13:02:16.528714705Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":334},"msg":"using Containerd runtime","agentID":"rpi"}
[   33.340208] tink-agent[532]: {"time":"2026-05-05T13:02:16.965943446Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":102},"msg":"received action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YJ4RBF6E","name":"stream-image","image":"quay.io/tinkerbellrpardini/actions/image2disk:v0.0.27","env":[{"key":"COMPRESSED","value":"true"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K"},{"key":"IMG_URL","value":"http://images-and-hooks.app.192.168.66.171.nip.io:32083/Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":600}}
[   34.369885] tink-agent[532]: {"time":"2026-05-05T13:02:17.995207204Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":111},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YJ4RBF6E","name":"stream-image","image":"quay.io/tinkerbellrpardini/actions/image2disk:v0.0.27","env":[{"key":"COMPRESSED","value":"true"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K"},{"key":"IMG_URL","value":"http://images-and-hooks.app.192.168.66.171.nip.io:32083/Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":600},"state":"running"}
[   36.572207] systemd[1]: var-lib-containerd-tmpmounts-containerd\x2dmount488864520.mount: Deactivated successfully.
[   37.784860] containerd[272]: time="2026-05-05T13:02:21.409192406Z" level=info msg="connecting to shim 6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848" address="unix:///run/containerd/s/cdca23e5d09a6820b305cb1c864c57c7af66284ad0966a301e98f96a3bf53c46" namespace=tinkerbell protocol=ttrpc version=3
[   37.856104] containerd[272]: time="2026-05-05T13:02:21.481398406Z" level=warning msg="error from *cgroupsv2.Manager.EventChan" error="failed to add inotify watch for \"/sys/fs/cgroup/tinkerbell/6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848/memory.events\": no such file or directory"
[   37.879353] systemd-networkd[240]: cni0: Link UP
[   37.879594] systemd-networkd[240]: cni0: Gained carrier
[   37.880110] systemd-networkd[240]: cni0: Lost carrier
[   37.907028] systemd-networkd[240]: veth869074ef: Link UP
[   37.926388] systemd-networkd[240]: veth869074ef: Gained carrier
[   37.929283] systemd-networkd[240]: cni0: Gained carrier
[   38.167007] tink-agent[532]: {"time":"2026-05-05T13:02:21.79161135Z","level":"INFO","source":{"function":"main.main","file":"/src/image2disk/main.go","line":45},"msg":"IMAGE2DISK - Cloud image streamer"}
[   38.171188] tink-agent[532]: {"time":"2026-05-05T13:02:21.797006721Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write","file":"/src/image2disk/image/image.go","line":133},"msg":"Beginning write of image [Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst] to disk [/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K]"}
[   39.073251] systemd-networkd[240]: veth869074ef: Gained IPv6LL
[   39.073662] systemd-networkd[240]: cni0: Gained IPv6LL
[   41.172444] tink-agent[532]: {"time":"2026-05-05T13:02:24.797306812Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"419.250000MiB","compressedSize":"439.914148MiB","read":"39.063876MiB"}
[   44.173438] tink-agent[532]: {"time":"2026-05-05T13:02:27.797700717Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"777.875000MiB","compressedSize":"439.914148MiB","read":"125.923777MiB"}
[   46.558045] systemd[1]: systemd-hostnamed.service: Deactivated successfully.
[   47.174879] tink-agent[532]: {"time":"2026-05-05T13:02:30.797476845Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"1.036011GiB","compressedSize":"439.914148MiB","read":"230.003711MiB"}
[   50.173816] tink-agent[532]: {"time":"2026-05-05T13:02:33.79721788Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"1.322754GiB","compressedSize":"439.914148MiB","read":"314.899418MiB"}
[   53.172567] tink-agent[532]: {"time":"2026-05-05T13:02:36.797338749Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"1.712769GiB","compressedSize":"439.914148MiB","read":"340.948113MiB"}
[   56.177486] tink-agent[532]: {"time":"2026-05-05T13:02:39.797458711Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"2.149292GiB","compressedSize":"439.914148MiB","read":"348.032916MiB"}
[   59.174197] tink-agent[532]: {"time":"2026-05-05T13:02:42.797250617Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":144},"msg":"read and write progress","written":"2.484131GiB","compressedSize":"439.914148MiB","read":"408.601976MiB"}
[   60.434615] tink-agent[532]: {"time":"2026-05-05T13:02:44.05963035Z","level":"INFO","source":{"function":"github.com/tinkerbell/actions/image2disk/image.Write.func1","file":"/src/image2disk/image/image.go","line":141},"msg":"read and write progress","written":"2.609375GiB","compressedSize":"439.914148MiB","read":"439.914148MiB"}
[   63.442718] tink-agent[532]: {"time":"2026-05-05T13:02:47.067852355Z","level":"INFO","source":{"function":"main.main","file":"/src/image2disk/main.go","line":111},"msg":"Successfully wrote image to disk","image":"http://images-and-hooks.app.192.168.66.171.nip.io:32083/Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst","disk":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K"}
[   63.454758] systemd-networkd[240]: veth869074ef: Link DOWN
[   63.455079] systemd-networkd[240]: veth869074ef: Lost carrier
[   63.466010] systemd-networkd[240]: cni0: Lost carrier
[   63.586068] systemd[1]: run-containerd-io.containerd.runtime.v2.task-tinkerbell-6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848-rootfs.mount: Deactivated successfully.
[   63.591145] containerd[272]: time="2026-05-05T13:02:47.216467667Z" level=info msg="shim disconnected" id=6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848 namespace=tinkerbell
[   63.591564] containerd[272]: time="2026-05-05T13:02:47.216578167Z" level=info msg="cleaning up after shim disconnected" id=6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848 namespace=tinkerbell
[   63.591842] containerd[272]: time="2026-05-05T13:02:47.216658870Z" level=info msg="cleaning up dead shim" id=6b7f547e482b3fd87d66c084ea17b29663e78f5eece6ba62b42fd6bd6f52b848 namespace=tinkerbell
[   63.635290] tink-agent[532]: {"time":"2026-05-05T13:02:47.260165366Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":136},"msg":"executed action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YJ4RBF6E","name":"stream-image","image":"quay.io/tinkerbellrpardini/actions/image2disk:v0.0.27","env":[{"key":"COMPRESSED","value":"true"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K"},{"key":"IMG_URL","value":"http://images-and-hooks.app.192.168.66.171.nip.io:32083/Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":600,"executionStart":"2026-05-05T13:02:17.99536963Z"}}
[   63.656517] tink-agent[532]: {"time":"2026-05-05T13:02:47.279053557Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":173},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YJ4RBF6E","name":"stream-image","image":"quay.io/tinkerbellrpardini/actions/image2disk:v0.0.27","env":[{"key":"COMPRESSED","value":"true"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K"},{"key":"IMG_URL","value":"http://images-and-hooks.app.192.168.66.171.nip.io:32083/Armbian-armsurvivors_26.04.30-1673_rpi4b_trixie_current-metadata-serialconsole-cloud-k8s-1.35.img.zst"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":600,"executionStart":"2026-05-05T13:02:17.99536963Z","executionStop":"2026-05-05T13:02:47.260582217Z","executionDuration":"29s265ms"},"state":"success"}
[   64.693676] tink-agent[532]: {"time":"2026-05-05T13:02:48.317903502Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":102},"msg":"received action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKF3Z4XZ","name":"inject-cloud-init-hegel-cfg","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource:\n  Ec2:\n    metadata_urls: [\"http://cloud-metadata.app.192.168.66.171.nip.io:7080/tootles/instanceID/rpi\"]\n    strict_id: false\n    max_wait: 20\n    timeout: 5\nmanage_etc_hosts: localhost\nwarnings:\n  dsid_missing_source: off\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/cloud.cfg.d/10_tinkerbell.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90}}
[   64.702368] tink-agent[532]: {"time":"2026-05-05T13:02:48.328024588Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":111},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKF3Z4XZ","name":"inject-cloud-init-hegel-cfg","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource:\n  Ec2:\n    metadata_urls: [\"http://cloud-metadata.app.192.168.66.171.nip.io:7080/tootles/instanceID/rpi\"]\n    strict_id: false\n    max_wait: 20\n    timeout: 5\nmanage_etc_hosts: localhost\nwarnings:\n  dsid_missing_source: off\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/cloud.cfg.d/10_tinkerbell.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90},"state":"running"}
[   66.192158] systemd[1]: var-lib-containerd-tmpmounts-containerd\x2dmount362691885.mount: Deactivated successfully.
[   66.318183] containerd[272]: time="2026-05-05T13:02:49.943451094Z" level=info msg="connecting to shim 80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed" address="unix:///run/containerd/s/67a46b07ccd7d303ef719fdd8613c3de523e7988ff44028708470abe1f050a0c" namespace=tinkerbell protocol=ttrpc version=3
[   66.396192] containerd[272]: time="2026-05-05T13:02:50.021046713Z" level=warning msg="error from *cgroupsv2.Manager.EventChan" error="failed to add inotify watch for \"/sys/fs/cgroup/tinkerbell/80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed/memory.events\": no such file or directory"
[   66.411665] systemd-networkd[240]: veth24e9cc3d: Link UP
[   66.427992] systemd-networkd[240]: veth24e9cc3d: Gained carrier
[   66.430753] systemd-networkd[240]: cni0: Gained carrier
[   66.612875] tink-agent[532]: time=2026-05-05T13:02:50.237Z level=INFO msg="WriteFile - Write file to a disk device"
[   66.617455] tink-agent[532]: time=2026-05-05T13:02:50.243Z level=INFO msg="Mounted device successfully" source=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2 destination=/mountAction
[   66.619850] tink-agent[532]: time=2026-05-05T13:02:50.245Z level=INFO msg="Successfully wrote file" filePath=/etc/cloud/cloud.cfg.d/10_tinkerbell.cfg blockDevice=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2
[   66.633995] tink-agent[532]: time=2026-05-05T13:02:50.259Z level=INFO msg="Unmounted device successfully" source=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2 destination=/mountAction
[   66.636780] systemd-networkd[240]: veth24e9cc3d: Link DOWN
[   66.637189] systemd-networkd[240]: veth24e9cc3d: Lost carrier
[   66.786212] containerd[272]: time="2026-05-05T13:02:50.412190864Z" level=info msg="shim disconnected" id=80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed namespace=tinkerbell
[   66.786528] containerd[272]: time="2026-05-05T13:02:50.412303753Z" level=info msg="cleaning up after shim disconnected" id=80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed namespace=tinkerbell
[   66.786663] containerd[272]: time="2026-05-05T13:02:50.412388567Z" level=info msg="cleaning up dead shim" id=80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed namespace=tinkerbell
[   66.817125] tink-agent[532]: {"time":"2026-05-05T13:02:50.442984779Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":136},"msg":"executed action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKF3Z4XZ","name":"inject-cloud-init-hegel-cfg","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource:\n  Ec2:\n    metadata_urls: [\"http://cloud-metadata.app.192.168.66.171.nip.io:7080/tootles/instanceID/rpi\"]\n    strict_id: false\n    max_wait: 20\n    timeout: 5\nmanage_etc_hosts: localhost\nwarnings:\n  dsid_missing_source: off\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/cloud.cfg.d/10_tinkerbell.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:48.328341309Z"}}
[   66.845904] tink-agent[532]: {"time":"2026-05-05T13:02:50.471441328Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":173},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKF3Z4XZ","name":"inject-cloud-init-hegel-cfg","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource:\n  Ec2:\n    metadata_urls: [\"http://cloud-metadata.app.192.168.66.171.nip.io:7080/tootles/instanceID/rpi\"]\n    strict_id: false\n    max_wait: 20\n    timeout: 5\nmanage_etc_hosts: localhost\nwarnings:\n  dsid_missing_source: off\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/cloud.cfg.d/10_tinkerbell.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:48.328341309Z","executionStop":"2026-05-05T13:02:50.443182001Z","executionDuration":"2s114ms"},"state":"success"}
[   66.863567] tink-agent[532]: {"time":"2026-05-05T13:02:50.489344808Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":102},"msg":"received action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKJXR3DM","name":"inject-cloud-init-hegel-ds","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource: Ec2\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/ds-identify.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90}}
[   66.885667] tink-agent[532]: {"time":"2026-05-05T13:02:50.51138913Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":111},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKJXR3DM","name":"inject-cloud-init-hegel-ds","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource: Ec2\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/ds-identify.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90},"state":"running"}
[   66.947841] containerd[272]: time="2026-05-05T13:02:50.573751532Z" level=info msg="connecting to shim a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c" address="unix:///run/containerd/s/fa50e54ce80ea33f7fe0636c0f3ec5558bac2826b70588b49dd63e0d47b49e55" namespace=tinkerbell protocol=ttrpc version=3
[   67.017526] containerd[272]: time="2026-05-05T13:02:50.643125196Z" level=warning msg="error from *cgroupsv2.Manager.EventChan" error="failed to add inotify watch for \"/sys/fs/cgroup/tinkerbell/a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c/memory.events\": no such file or directory"
[   67.026265] systemd-networkd[240]: cni0: Lost carrier
[   67.031545] systemd-networkd[240]: veth157c7d34: Link UP
[   67.047271] systemd-networkd[240]: veth157c7d34: Gained carrier
[   67.047990] systemd-networkd[240]: cni0: Gained carrier
[   67.184723] systemd[1]: run-containerd-io.containerd.runtime.v2.task-tinkerbell-80531e4bafbebac279291a0a95bda1d53f4c0cabed1bd06444e651f9fbf980ed-rootfs.mount: Deactivated successfully.
[   67.236282] tink-agent[532]: time=2026-05-05T13:02:50.861Z level=INFO msg="WriteFile - Write file to a disk device"
[   67.241418] tink-agent[532]: time=2026-05-05T13:02:50.867Z level=INFO msg="Mounted device successfully" source=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2 destination=/mountAction
[   67.243711] tink-agent[532]: time=2026-05-05T13:02:50.869Z level=INFO msg="Successfully wrote file" filePath=/etc/cloud/ds-identify.cfg blockDevice=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2
[   67.262534] tink-agent[532]: time=2026-05-05T13:02:50.887Z level=INFO msg="Unmounted device successfully" source=/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2 destination=/mountAction
[   67.267979] systemd-networkd[240]: veth157c7d34: Link DOWN
[   67.268702] systemd-networkd[240]: veth157c7d34: Lost carrier
[   67.394049] systemd[1]: run-containerd-io.containerd.runtime.v2.task-tinkerbell-a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c-rootfs.mount: Deactivated successfully.
[   67.397177] containerd[272]: time="2026-05-05T13:02:51.022522893Z" level=info msg="shim disconnected" id=a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c namespace=tinkerbell
[   67.397519] containerd[272]: time="2026-05-05T13:02:51.022682837Z" level=info msg="cleaning up after shim disconnected" id=a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c namespace=tinkerbell
[   67.397756] containerd[272]: time="2026-05-05T13:02:51.022764337Z" level=info msg="cleaning up dead shim" id=a6181d1b2a8645e298e6454a8da98c9424ba311527662b72270db9320791106c namespace=tinkerbell
[   67.413297] systemd-networkd[240]: cni0: Lost carrier
[   67.430861] tink-agent[532]: {"time":"2026-05-05T13:02:51.056702472Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":136},"msg":"executed action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKJXR3DM","name":"inject-cloud-init-hegel-ds","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource: Ec2\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/ds-identify.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:50.511622574Z"}}
[   67.457904] tink-agent[532]: {"time":"2026-05-05T13:02:51.083315196Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":173},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YKJXR3DM","name":"inject-cloud-init-hegel-ds","image":"quay.io/tinkerbellrpardini/actions/writefile:v0.0.27","env":[{"key":"CONTENTS","value":"datasource: Ec2\n"},{"key":"DEST_DISK","value":"/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF125270K-part2"},{"key":"DEST_PATH","value":"/etc/cloud/ds-identify.cfg"},{"key":"DIRMODE","value":"0700"},{"key":"FS_TYPE","value":"ext4"},{"key":"GID","value":"0"},{"key":"MODE","value":"0600"},{"key":"UID","value":"0"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro"],"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:50.511622574Z","executionStop":"2026-05-05T13:02:51.056869379Z","executionDuration":"545ms246us"},"state":"success"}
[   67.474811] tink-agent[532]: {"time":"2026-05-05T13:02:51.100606457Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":102},"msg":"received action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YN5R2R66","name":"reboot","image":"quay.io/tinkerbellrpardini/actions/waitdaemon:v0.0.27","args":["nsenter","--target","1","--pid","--mount","--uts","--ipc","--net","systemctl","reboot"],"env":[{"key":"IMAGE","value":"docker.io/robertdebock/debian:latest"},{"key":"WAIT_SECONDS","value":"5"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro","/var/run/docker.sock:/var/run/docker.sock","/run/systemd:/run/systemd","/run/dbus:/run/dbus"],"namespaces":{"pid":"host"},"timeoutSeconds":90}}
[   67.491595] tink-agent[532]: {"time":"2026-05-05T13:02:51.117249201Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":111},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YN5R2R66","name":"reboot","image":"quay.io/tinkerbellrpardini/actions/waitdaemon:v0.0.27","args":["nsenter","--target","1","--pid","--mount","--uts","--ipc","--net","systemctl","reboot"],"env":[{"key":"IMAGE","value":"docker.io/robertdebock/debian:latest"},{"key":"WAIT_SECONDS","value":"5"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro","/var/run/docker.sock:/var/run/docker.sock","/run/systemd:/run/systemd","/run/dbus:/run/dbus"],"namespaces":{"pid":"host"},"timeoutSeconds":90},"state":"running"}
[   69.870882] systemd[1]: var-lib-containerd-tmpmounts-containerd\x2dmount292245155.mount: Deactivated successfully.
[   71.238541] containerd[272]: time="2026-05-05T13:02:54.863793349Z" level=info msg="connecting to shim d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91" address="unix:///run/containerd/s/49465685cb7d7cb455f5999d9342515b0efc296e2cda5058c8e500794d8844fe" namespace=tinkerbell protocol=ttrpc version=3
[   71.309344] containerd[272]: time="2026-05-05T13:02:54.934829175Z" level=warning msg="error from *cgroupsv2.Manager.EventChan" error="failed to add inotify watch for \"/sys/fs/cgroup/tinkerbell/d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91/memory.events\": no such file or directory"
[   71.326258] systemd-networkd[240]: vethe13e01a2: Link UP
[   71.337634] systemd-networkd[240]: vethe13e01a2: Gained carrier
[   71.339769] systemd-networkd[240]: cni0: Gained carrier
[   71.530130] tink-agent[532]: {"time":"2026-05-05T13:02:55.155090951Z","level":"INFO","msg":"starting waitdaemon","phase":"","image":"docker.io/robertdebock/debian:latest","waitTime":"5","runtime":"","nerdctlNamespace":"tinkerbell","nsenter":true}
[   71.600825] tink-agent[532]: {"time":"2026-05-05T13:02:55.226394838Z","level":"INFO","msg":"running first fork"}
[   71.666387] tink-agent[532]: {"time":"2026-05-05T13:02:55.29214468Z","level":"INFO","msg":"pulling image","image":"docker.io/robertdebock/debian:latest"}
<...snip...>
[   83.127406] tink-agent[532]: elapsed: 10.7s                                                                    total:  57.3 M (5.4 MiB/s)
[   83.127565] systemd[1]: Started nerdctl-dde93aaf8f0d9ae82e6329fff6785a50e9816b3ad1f026771cc7ddd1eafa6857.scope - libcontainer container dde93aaf8f0d9ae82e6329fff6785a50e9816b3ad1f026771cc7ddd1eafa6857.
[   83.129798] systemd-networkd[240]: vethaaf11f8b: Link UP
[   83.130110] systemd-networkd[240]: vethaaf11f8b: Gained carrier
[   83.291182] containerd[272]: time="2026-05-05T13:03:06.916384452Z" level=warning msg="error from *cgroupsv2.Manager.EventChan" error="failed to add inotify watch for \"/sys/fs/cgroup/system.slice/nerdctl-dde93aaf8f0d9ae82e6329fff6785a50e9816b3ad1f026771cc7ddd1eafa6857.scope/memory.events\": no such file or directory"
[   83.327870] systemd-networkd[240]: vethe13e01a2: Link DOWN
[   83.328443] systemd-networkd[240]: vethe13e01a2: Lost carrier
[   83.469629] containerd[272]: time="2026-05-05T13:03:07.095621984Z" level=info msg="shim disconnected" id=d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91 namespace=tinkerbell
[   83.469931] containerd[272]: time="2026-05-05T13:03:07.095724169Z" level=info msg="cleaning up after shim disconnected" id=d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91 namespace=tinkerbell
[   83.470094] containerd[272]: time="2026-05-05T13:03:07.095809780Z" level=info msg="cleaning up dead shim" id=d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91 namespace=tinkerbell
[   83.501180] tink-agent[532]: {"time":"2026-05-05T13:03:07.127069443Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":136},"msg":"executed action","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YN5R2R66","name":"reboot","image":"quay.io/tinkerbellrpardini/actions/waitdaemon:v0.0.27","args":["nsenter","--target","1","--pid","--mount","--uts","--ipc","--net","systemctl","reboot"],"env":[{"key":"IMAGE","value":"docker.io/robertdebock/debian:latest"},{"key":"WAIT_SECONDS","value":"5"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro","/var/run/docker.sock:/var/run/docker.sock","/run/systemd:/run/systemd","/run/dbus:/run/dbus"],"namespaces":{"pid":"host"},"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:51.117547311Z"}}
[   83.521891] tink-agent[532]: {"time":"2026-05-05T13:03:07.147540224Z","level":0,"source":{"file":"home/runner/work/tinkerbell-tinkerbell/tinkerbell-tinkerbell/tink/agent/agent.go","line":173},"msg":"reported action status","agentID":"rpi","action":{"agent_id":"rpi","task_id":"01KQW3KB4574215S82YRD9TD96","workflow_id":"cluster-vmtest/vmtest-tb-workers-f6cmv-dkf2w","id":"01KQW3KB4574215S82YN5R2R66","name":"reboot","image":"quay.io/tinkerbellrpardini/actions/waitdaemon:v0.0.27","args":["nsenter","--target","1","--pid","--mount","--uts","--ipc","--net","systemctl","reboot"],"env":[{"key":"IMAGE","value":"docker.io/robertdebock/debian:latest"},{"key":"WAIT_SECONDS","value":"5"}],"volumes":["/dev:/dev","/dev/console:/dev/console","/lib/firmware:/lib/firmware:ro","/var/run/docker.sock:/var/run/docker.sock","/run/systemd:/run/systemd","/run/dbus:/run/dbus"],"namespaces":{"pid":"host"},"timeoutSeconds":90,"executionStart":"2026-05-05T13:02:51.117547311Z","executionStop":"2026-05-05T13:03:07.12724148Z","executionDuration":"16s9ms"},"state":"success"}
[   83.740149] systemd[1]: run-containerd-io.containerd.runtime.v2.task-tinkerbell-d47043cd042cf751e7806cd60801e751e6285de35fa01dee41708c75a124db91-rootfs.mount: Deactivated successfully.

RPi: BOOTLOADER release VERSION:e608a69d DATE: 2024/04/15 TIME: 14:12:14
BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1713186734 serial 196f8c53 boardrev d03114 stc 423743
PM_RSTS: 0x00001000
part 00000000 reset_info 00000000
uSD voltage 3.3V
Initialising SDRAM 'Micron' 32Gb x2 total-size: 64 Gbit 3200
DDR 3200 1 0 64 152

XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 11
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
xHC ports 5 slots 32 intrs 4
Boot mode: USB-MSD (04) order f21
USB2[1] 400202e1 connected
USB2 root HUB port 1 init
DEV [01:00] 2.16 000000:01 class 9 VID 2109 PID 3431
HUB init [01:00] 2.16 000000:01
USB3[2] 00021203 connected enabled
USB3 root HUB port 2 init
DEV [02:00] 3.00 000000:02 class 0 VID 174c PID 55aa
MSD device [02:00] 3.00 000000:02 conf 0 iface 0 ep 81#1024 02#1024
MSD [02:00] 3.00 000000:02 register MSD
XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 18
XHCI-STOP
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
USBSTS 19
xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb
xHC ports 5 slots 32 intrs 4
USB3[2] 000002b1 connected
USB2[1] 400202e1 connected
USB2 root HUB port 1 init
DEV [01:00] 2.16 000000:01 class 9 VID 2109 PID 3431
HUB init [01:00] 2.16 000000:01
USB3[2] 00281203 connected enabled
USB3 root HUB port 2 init
DEV [02:00] 3.00 000000:02 class 0 VID 174c PID 55aa
MSD device [02:00] 3.00 000000:02 conf 0 iface 0 ep 81#1024 02#1024
MSD [02:00] 3.00 000000:02 register MSD
MSD [02:00] 3.00 000000:02 LUN 0
MSD INQUIRY [02:00] 3.00 000000:02
MSD [02:00] 3.00 000000:02 lun 0 block-count 500118192 block-size 512
MBR: 0x00002000, 1048576 type: 0x0b
MBR: 0x00102000, 4415488 type: 0x83
MBR: 0x00000000,       0 type: 0x00
MBR: 0x00000000,       0 type: 0x00
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' RPICFG     '
rsc 32 fat-sectors 1024 c-count 130812 c-size 8
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 130812
Trying partition: 0
type: 32 lba: 8192 oem: 'mkfs.fat' volume: ' RPICFG     '
rsc 32 fat-sectors 1024 c-count 130812 c-size 8
root dir cluster 2 sectors 0 entries 0
FAT32 clusters 130812
Read config.txt bytes     1475 hnd 0x4972
Read start4.elf bytes  2263968 hnd 0x441
Read fixup4.dat bytes     5456 hnd 0x157
0x00d03114 0x00000000 0x00001fff
MEM GPU: 76 ARM: 947 TOTAL: 1023
Firmware: 5560078dcc8591a00f57b9068d13e5544aeef3aa Apr 30 2025 13:33:39
Starting start4.elf @ 0xfeb00200 partition 0
+
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[    0.000000] Linux version 6.18.24-current-bcm2711 (build@armbian) (aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #61 SMP PREEMPT Wed Apr 29 14:47:18 UTC 2026
...

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.

1 participant