blob: 2c500b3049315399614c8264dd619f82fe60e9be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield
#
# SPDX-License-Identifier: MIT
#
# vpdmn-initramfs-create_1.0.bb
# ===========================================================================
# Builds QEMU boot blobs for vpdmn (Podman CLI)
# ===========================================================================
#
# This recipe packages the boot blobs for vpdmn:
# - A tiny initramfs with just busybox for switch_root
# - The rootfs.img squashfs image with Podman (built via multiconfig)
# - The kernel
#
# Boot flow:
# QEMU boots kernel + tiny initramfs
# -> preinit mounts rootfs.img from /dev/vda
# -> switch_root into rootfs.img
# -> vpdmn-init.sh runs with a real root filesystem
# -> Podman executes container commands
#
# ===========================================================================
# BUILD INSTRUCTIONS
# ===========================================================================
#
# For aarch64 (multiconfig dependency is automatic):
# MACHINE=qemuarm64 bitbake vpdmn-initramfs-create
#
# For x86_64:
# MACHINE=qemux86-64 bitbake vpdmn-initramfs-create
#
# Blobs are deployed to: tmp-vruntime-*/deploy/images/${MACHINE}/vpdmn/
#
# To build the complete standalone tarball (recommended):
# MACHINE=qemux86-64 bitbake vcontainer-native -c create_tarball
#
# ===========================================================================
SUMMARY = "Build QEMU blobs for vpdmn"
DESCRIPTION = "Packages a tiny initramfs for switch_root and bundles the \
rootfs.img with Podman from multiconfig build for vpdmn."
# Set the runtime before including shared code
VCONTAINER_RUNTIME = "vpdmn"
require vcontainer-initramfs-create.inc
|