deploy/aarch64: add reproducible mvm vmlinux build pipeline#256
deploy/aarch64: add reproducible mvm vmlinux build pipeline#256lkml-likexu wants to merge 1 commit into
Conversation
Cross-compiling the ARM64 mvm guest kernel has so far been a manual,
host-environment-dependent process: contributors had to install the
right cross toolchain, remember which OpenCloudOS-Kernel tag to use,
hand-craft a .config, and then figure out where the resulting Image
should be placed and which cmdline the shim expects. This made the
build hard to reproduce across machines and easy to get subtly wrong.
Introduce a self-contained pipeline under deploy/aarch64/ that pins
all of these inputs:
- a Dockerfile providing the exact cross-compile toolchain image;
- mvm.config, the boot-tested kernel configuration for mvm guests;
- mvm.cmdline, the recommended kernel command line for the shim;
- build_mvm_vmlinux.sh, an idempotent driver that builds the image,
fetches the pinned kernel tag, runs the cross build inside the
container as the invoking user, and emits a stable Image plus a
tag/sha-stamped copy alongside a build log.
The script also surfaces the two manual follow-up steps (vmlinux
placement and shim cmdline) so that downstream integration is
unambiguous. With this in place, producing the mvm vmlinux is a
single command and yields the same artifact on any host.
Assisted-by: Anthropic:claude-opus-4-7
Signed-off-by: Like Xu <likexu@tencent.com>
|
I'll analyze this and get back to you. |
|
/cubebot review |
|
Claude finished @fslongjin's task in 59s —— View job Code Review: deploy/aarch64: add reproducible mvm vmlinux build pipelineI've reviewed all 4 changed files. Overall the code quality is high — the script is robust, well-structured, and addresses the reproducibility problem effectively. Below are my findings.
|
| Severity | Count | Key items |
|---|---|---|
| High | 0 | — |
| Medium | 0 | — |
| Low | 4 | Cache mount cleanup, host-network hardening, safe.directory duplicates, missing JOBS validation |
| Nit | 1 | Missing log line for global git config modification |
The pipeline is well-architected and ready for use. The issues above are minor — none block merging, but addressing them would improve hygiene.

Cross-compiling the ARM64 mvm guest kernel has so far been a manual, host-environment-dependent process: contributors had to install the right cross toolchain, remember which OpenCloudOS-Kernel tag to use, hand-craft a .config, and then figure out where the resulting Image should be placed and which cmdline the shim expects. This made the build hard to reproduce across machines and easy to get subtly wrong.
Introduce a self-contained pipeline under deploy/aarch64/ that pins all of these inputs:
The script also surfaces the two manual follow-up steps (vmlinux placement and shim cmdline) so that downstream integration is unambiguous. With this in place, producing the mvm vmlinux is a single command and yields the same artifact on any host.
Assisted-by: Anthropic:claude-opus-4-7
Signed-off-by: Like Xu likexu@tencent.com