mirror of
https://github.com/edera-dev/sprout.git
synced 2025-12-19 17:10:17 +00:00
add support for xen boot via standard chainload
This commit is contained in:
@@ -9,6 +9,8 @@ COPY sprout.efi /work/${EFI_NAME}.EFI
|
|||||||
COPY sprout.toml /work/SPROUT.TOML
|
COPY sprout.toml /work/SPROUT.TOML
|
||||||
COPY kernel.efi /work/KERNEL.EFI
|
COPY kernel.efi /work/KERNEL.EFI
|
||||||
COPY shell.efi /work/SHELL.EFI
|
COPY shell.efi /work/SHELL.EFI
|
||||||
|
COPY xen.efi /work/XEN.EFI
|
||||||
|
COPY xen.cfg /work/XEN.CFG
|
||||||
COPY initramfs /work/INITRAMFS
|
COPY initramfs /work/INITRAMFS
|
||||||
COPY edera-splash.png /work/EDERA-SPLASH.PNG
|
COPY edera-splash.png /work/EDERA-SPLASH.PNG
|
||||||
RUN truncate -s128MiB sprout.img && \
|
RUN truncate -s128MiB sprout.img && \
|
||||||
@@ -21,6 +23,8 @@ RUN truncate -s128MiB sprout.img && \
|
|||||||
mcopy -i sprout.img ${EFI_NAME}.EFI ::/EFI/BOOT/ && \
|
mcopy -i sprout.img ${EFI_NAME}.EFI ::/EFI/BOOT/ && \
|
||||||
mcopy -i sprout.img KERNEL.EFI ::/EFI/BOOT/ && \
|
mcopy -i sprout.img KERNEL.EFI ::/EFI/BOOT/ && \
|
||||||
mcopy -i sprout.img SHELL.EFI ::/EFI/BOOT/ && \
|
mcopy -i sprout.img SHELL.EFI ::/EFI/BOOT/ && \
|
||||||
|
mcopy -i sprout.img XEN.EFI ::/EFI/BOOT/ && \
|
||||||
|
mcopy -i sprout.img XEN.CFG ::/EFI/BOOT/ && \
|
||||||
mcopy -i sprout.img SPROUT.TOML ::/ && \
|
mcopy -i sprout.img SPROUT.TOML ::/ && \
|
||||||
mcopy -i sprout.img EDERA-SPLASH.PNG ::/ && \
|
mcopy -i sprout.img EDERA-SPLASH.PNG ::/ && \
|
||||||
mcopy -i sprout.img INITRAMFS ::/ && \
|
mcopy -i sprout.img INITRAMFS ::/ && \
|
||||||
|
|||||||
@@ -68,8 +68,6 @@ if [ "${SKIP_KERNEL_BUILD}" != "1" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
copy_from_image "${DOCKER_PREFIX}/sprout-kernel-${TARGET_ARCH}" "kernel.efi" "${FINAL_DIR}/kernel.efi"
|
copy_from_image "${DOCKER_PREFIX}/sprout-kernel-${TARGET_ARCH}" "kernel.efi" "${FINAL_DIR}/kernel.efi"
|
||||||
cp "hack/dev/configs/${SPROUT_CONFIG_NAME}.sprout.toml" "${FINAL_DIR}/sprout.toml"
|
|
||||||
cp "hack/dev/assets/edera-splash.png" "${FINAL_DIR}/edera-splash.png"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${SKIP_VM_BUILD}" != "1" ]; then
|
if [ "${SKIP_VM_BUILD}" != "1" ]; then
|
||||||
@@ -79,6 +77,8 @@ if [ "${SKIP_VM_BUILD}" != "1" ]; then
|
|||||||
copy_from_image "${DOCKER_PREFIX}/sprout-ovmf-${TARGET_ARCH}" "shell.efi" "${FINAL_DIR}/shell.efi"
|
copy_from_image "${DOCKER_PREFIX}/sprout-ovmf-${TARGET_ARCH}" "shell.efi" "${FINAL_DIR}/shell.efi"
|
||||||
docker build --platform="${DOCKER_TARGET}" -t "${DOCKER_PREFIX}/sprout-initramfs-${TARGET_ARCH}:${DOCKER_TAG}" -f hack/dev/vm/Dockerfile.initramfs "${FINAL_DIR}"
|
docker build --platform="${DOCKER_TARGET}" -t "${DOCKER_PREFIX}/sprout-initramfs-${TARGET_ARCH}:${DOCKER_TAG}" -f hack/dev/vm/Dockerfile.initramfs "${FINAL_DIR}"
|
||||||
copy_from_image "${DOCKER_PREFIX}/sprout-initramfs-${TARGET_ARCH}" "initramfs" "${FINAL_DIR}/initramfs"
|
copy_from_image "${DOCKER_PREFIX}/sprout-initramfs-${TARGET_ARCH}" "initramfs" "${FINAL_DIR}/initramfs"
|
||||||
|
docker build --platform="${DOCKER_TARGET}" -t "${DOCKER_PREFIX}/sprout-xen-${TARGET_ARCH}:${DOCKER_TAG}" -f hack/dev/vm/Dockerfile.xen "${FINAL_DIR}"
|
||||||
|
copy_from_image "${DOCKER_PREFIX}/sprout-xen-${TARGET_ARCH}" "xen.efi" "${FINAL_DIR}/xen.efi"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
|
if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
|
||||||
@@ -92,6 +92,10 @@ if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
|
|||||||
copy_from_image "${DOCKER_PREFIX}/sprout-${TARGET_ARCH}" "sprout.efi" "${FINAL_DIR}/sprout.efi"
|
copy_from_image "${DOCKER_PREFIX}/sprout-${TARGET_ARCH}" "sprout.efi" "${FINAL_DIR}/sprout.efi"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cp "hack/dev/configs/${SPROUT_CONFIG_NAME}.sprout.toml" "${FINAL_DIR}/sprout.toml"
|
||||||
|
cp "hack/dev/configs/xen.cfg" "${FINAL_DIR}/xen.cfg"
|
||||||
|
cp "hack/dev/assets/edera-splash.png" "${FINAL_DIR}/edera-splash.png"
|
||||||
|
|
||||||
mkdir -p "${FINAL_DIR}/efi/EFI/BOOT"
|
mkdir -p "${FINAL_DIR}/efi/EFI/BOOT"
|
||||||
cp "${FINAL_DIR}/sprout.efi" "${FINAL_DIR}/efi/EFI/BOOT/${EFI_NAME}.EFI"
|
cp "${FINAL_DIR}/sprout.efi" "${FINAL_DIR}/efi/EFI/BOOT/${EFI_NAME}.EFI"
|
||||||
if [ -f "${FINAL_DIR}/kernel.efi" ]; then
|
if [ -f "${FINAL_DIR}/kernel.efi" ]; then
|
||||||
@@ -99,6 +103,12 @@ if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
|
|||||||
fi
|
fi
|
||||||
if [ -f "${FINAL_DIR}/shell.efi" ]; then
|
if [ -f "${FINAL_DIR}/shell.efi" ]; then
|
||||||
cp "${FINAL_DIR}/shell.efi" "${FINAL_DIR}/efi/EFI/BOOT/SHELL.EFI"
|
cp "${FINAL_DIR}/shell.efi" "${FINAL_DIR}/efi/EFI/BOOT/SHELL.EFI"
|
||||||
|
fi
|
||||||
|
if [ -f "${FINAL_DIR}/xen.efi" ]; then
|
||||||
|
cp "${FINAL_DIR}/xen.efi" "${FINAL_DIR}/efi/EFI/BOOT/XEN.EFI"
|
||||||
|
fi
|
||||||
|
if [ -f "${FINAL_DIR}/xen.cfg" ]; then
|
||||||
|
cp "${FINAL_DIR}/xen.cfg" "${FINAL_DIR}/efi/EFI/BOOT/XEN.CFG"
|
||||||
fi
|
fi
|
||||||
cp "${FINAL_DIR}/sprout.toml" "${FINAL_DIR}/efi/SPROUT.TOML"
|
cp "${FINAL_DIR}/sprout.toml" "${FINAL_DIR}/efi/SPROUT.TOML"
|
||||||
cp "${FINAL_DIR}/edera-splash.png" "${FINAL_DIR}/efi/EDERA-SPLASH.PNG"
|
cp "${FINAL_DIR}/edera-splash.png" "${FINAL_DIR}/efi/EDERA-SPLASH.PNG"
|
||||||
|
|||||||
@@ -17,11 +17,18 @@ chainload.options = ["$default-options"]
|
|||||||
[actions.chainload-shell]
|
[actions.chainload-shell]
|
||||||
chainload.path = "\\EFI\\BOOT\\shell.efi"
|
chainload.path = "\\EFI\\BOOT\\shell.efi"
|
||||||
|
|
||||||
|
[actions.chainload-xen]
|
||||||
|
chainload.path = "\\EFI\\BOOT\\xen.efi"
|
||||||
|
|
||||||
[generators.kernels.matrix]
|
[generators.kernels.matrix]
|
||||||
entry.title = "Boot Kernel $name"
|
entry.title = "Boot Linux $name"
|
||||||
entry.values.path = "\\EFI\\BOOT\\$name"
|
entry.values.path = "\\EFI\\BOOT\\$name"
|
||||||
entry.actions = ["chainload-kernel"]
|
entry.actions = ["chainload-kernel"]
|
||||||
values.name = ["kernel.efi"]
|
values.name = ["kernel.efi"]
|
||||||
|
|
||||||
|
#[entries.xen]
|
||||||
|
#title = "Boot Xen"
|
||||||
|
#actions = ["chainload-xen"]
|
||||||
|
|
||||||
[[phases.startup]]
|
[[phases.startup]]
|
||||||
actions = ["welcome", "splash"]
|
actions = ["welcome"]
|
||||||
|
|||||||
7
hack/dev/configs/xen.cfg
Normal file
7
hack/dev/configs/xen.cfg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[global]
|
||||||
|
default=sprout
|
||||||
|
|
||||||
|
[sprout]
|
||||||
|
options=console=hvc0
|
||||||
|
kernel=\EFI\BOOT\KERNEL.EFI
|
||||||
|
ramdisk=\initramfs
|
||||||
6
hack/dev/vm/Dockerfile.xen
Normal file
6
hack/dev/vm/Dockerfile.xen
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FROM alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 AS build
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
RUN apk add --no-cache xen-hypervisor && cp /usr/lib/efi/xen.efi /xen.efi
|
||||||
|
|
||||||
|
FROM scratch AS final
|
||||||
|
COPY --from=build /xen.efi /xen.efi
|
||||||
Reference in New Issue
Block a user