processmission/oh-my-qemu/qemu-uboot-build
Claude Code and agent skill by processmission/oh-my-qemu
- community
Checking that the SKILL.md file is still in the repository.
Use for building U-Boot artifacts for QEMU firmware boot testing, including defconfig selection, cross compile variables, SPL/TPL, U-Boot proper, FIT or ITB files, BL31 or TF-A dependencies, logs, hashes, and provenance.
Install
npx vskill@latest install processmission/oh-my-qemu/qemu-uboot-buildSKILL.md
QEMU U-Boot Build
Audit workflow
For a non-trivial task that writes to the workspace, use only the needed entries under .oh-my-qemu/<task-slug>/: audit.md (baseline, plan, decisions, evidence, verification, and gaps), commands.md (redacted commands, working directories, and results), logs/ (decisive build, test, and runtime output), scripts/ (probes, parsers, and harnesses), and output/ (generated deliverables, third-party dependencies, and non-QEMU binaries). Keep QEMU's own build tree at source-root builds/build-<target>/, never an unqualified build/. In a Git worktree, add .agents/, .oh-my-qemu/, and builds/ to the file from git rev-parse --git-path info/exclude before writing artifacts or configuring QEMU; preserve existing entries and avoid duplicates. Never stage or commit these paths; stage source only when the user explicitly requests that separate action. At handoff, reconcile git status --short with the baseline and report the task directory, build directory, source changes, pre-existing changes, and unresolved gaps.
QEMU upstream boundary
QEMU's official GitLab and mailing lists are upstream channels. A patch becomes an upstream contribution when it is sent to the maintainers selected through MAINTAINERS. Do not prepare or send agent-generated code, documentation, commit messages, or patches for upstream submission; see the checked-out tree's docs/devel/code-provenance.rst. Research, debugging, analysis, local experiments, verification, and workflow guidance remain allowed. Local branches, commits, patch files, pushes, and pull requests are not by themselves upstream contributions; perform those Git actions only when requested.
Scope
Build U-Boot and its loader stages for QEMU firmware boot tests. QEMU itself belongs to qemu-build and the Linux kernel to qemu-kernel-build. Keep U-Boot outputs and dependency packages under the task output/ directory.
Build flow
Record U-Boot source revision and dirty state; board defconfig and config fragments; cross compiler prefix, absolute path, and version; output directory; external dependencies such as BL31/TF-A, TEE or OP-TEE, DDR init, device trees, or vendor firmware blobs; and a hash of every artifact consumed by QEMU or packaged into an image. Adapt the tree's documentation:
Use an absolute O= path. When the firmware chain needs environment variables such as BL31, record their resolved paths and hashes before building. Some vendor U-Boot trees must be built in-tree or with vendor-specific variables; inspect the tree's documentation and record any deviation from the generic shape.
Artifact inspection
Inspect every artifact before use; a filename does not describe its contents.
- Use
file,dumpimage -l, andmkimagemetadata to identify SPL, U-Boot proper, FIT/ITB,
and combined images; record sizes, load addresses, and component names.
- Treat each boot stage as a separate provenance item and hash it separately.
- A combined image may contain a different stage than expected: record the packaging command and
verify the embedded bytes. FIT signing needs keys and a policy; do not call an image signed when signing was not configured.
- Copy
assets/artifact-manifest-template.mdand fill one row per stage before packaging.
Firmware chain packaging
When packaging U-Boot into a vendor firmware image (FIP, BIOS, or a flash image):
- record the input U-Boot artifact hash and the documented destination offset;
- package an isolated copy and compare the embedded bytes against the source artifact at that
offset, not only the container hash;
- record whether TF-A/BL31 was built from source or supplied as a blob, with revision and hash;
- keep the source media read-only and write the test image to a task-local path.
Common failures
| Symptom | Check | |
|---|---|---|
dtc, pyelftools, swig, or libssl missing | host build dependencies | |
| Compiler or target mismatch | CROSS_COMPILE, board defconfig, compiler version | |
| Missing BL31 or FIT component | external dependency path and packaging command | |
| Boot reaches no firmware prompt | image layout, boot media, and console routing |
Upstream references
docs/system/linuxboot.rstdocs/system/invocation.rstdocs/devel/testing/main.rstdocs/devel/code-provenance.rst
Paths can differ between QEMU versions; locate them in the checked-out tree.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/qemu-uboot-build/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/processmission/oh-my-qemu/qemu-uboot-build)