Skip to content

Add a reference for TPM-sealed /var on Jetson - #29

Merged
jetm merged 1 commit into
mainfrom
reference/jetson-encrypted-var
Sep 15, 2026
Merged

jetm merged 1 commit into
mainfrom
reference/jetson-encrypted-var

Conversation

@jetm

@jetm jetm commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Problem

There is no security-focused reference in this repo, and hardware-backed /var encryption is the feature customers ask about first on Jetson. The config is three lines, but nothing demonstrates it end to end.

Solution

A minimal reference whose point is the var block. No application code, so the config is the subject rather than an incidental detail.

Key changes

  • New jetson-encrypted-var/ with avocado.yaml, README.md and getting_started.md
  • Supports orin-nano, orin-nx, agx-orin, agx-thor
  • Sets hardware: tpm2 rather than the auto default
  • Pins the 2026 release, unlike every other reference here

Reviewer notes

Two deliberate divergences worth your attention:

It pins 2026/next. cryptsetup-var is not published on 2024 at all, so this cannot be demonstrated there. A 2024 project fails inside avocado install with an error naming no missing package.

It sets hardware: tpm2, not the default. On auto, a unit whose firmware TPM did not come up still boots on a software-derived key and reports the degrade, so a fleet can be software-keyed while believing it is hardware-bound. A reference people copy should not ship the setting that fails open.

Built, flashed and booted on an Orin Nano before opening this. The outputs in the Verify section are copied from that run, including the luksDump PCR 7 seal and both keyslots.

Feedback I want: whether pinning 2026 here is acceptable while the rest of the repo is on 2024, and whether jetson-encrypted-var is the right name.

There is no security-flavoured reference in this repo, and hardware-backed
/var encryption is the feature customers ask about first on Jetson. A
reference is the right shape for it because the whole feature is three
lines of avocado.yaml: someone who can run `avocado init --reference` gets
a working project, where a prose guide leaves them transcribing config.

Pin the 2026 release rather than the 2024 every other reference uses.
cryptsetup-var is not published on 2024 at all, so this cannot be
demonstrated there; a 2024 project fails inside `avocado install` with an
error naming no missing package, which is why the README and the guide
both lead with the release.

Set hardware: tpm2 rather than leaving the default. On auto, a unit whose
firmware TPM did not come up still boots on a software-derived key and
reports the degrade, so a fleet can be software-keyed while believing it
is hardware-bound. A reference people copy should not ship the setting
that fails open.

Built, flashed and booted on a Jetson Orin Nano before committing: the
outputs in the verify section are copied from that run rather than
composed, including the luksDump PCR 7 seal and both keyslots.

Signed-off-by: Javier Tia <javier@peridio.com>
@github-actions

Copy link
Copy Markdown

Avocado References — Build Check

Reference Target install build Result
jetson-encrypted-var jetson-orin-nano ✅ ✅ PASS

Totals: 1 ✅ passed · 0 ❌ failed

Per-reference logs: workflow run

@jetm
jetm merged commit 55e5b7e into main Sep 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants