mirror of
https://github.com/edera-dev/sprout.git
synced 2025-12-19 08:30:16 +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 kernel.efi /work/KERNEL.EFI
|
||||
COPY shell.efi /work/SHELL.EFI
|
||||
COPY xen.efi /work/XEN.EFI
|
||||
COPY xen.cfg /work/XEN.CFG
|
||||
COPY initramfs /work/INITRAMFS
|
||||
COPY edera-splash.png /work/EDERA-SPLASH.PNG
|
||||
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 KERNEL.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 EDERA-SPLASH.PNG ::/ && \
|
||||
mcopy -i sprout.img INITRAMFS ::/ && \
|
||||
|
||||
@@ -68,8 +68,6 @@ if [ "${SKIP_KERNEL_BUILD}" != "1" ]; then
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
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"
|
||||
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"
|
||||
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
|
||||
|
||||
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"
|
||||
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"
|
||||
cp "${FINAL_DIR}/sprout.efi" "${FINAL_DIR}/efi/EFI/BOOT/${EFI_NAME}.EFI"
|
||||
if [ -f "${FINAL_DIR}/kernel.efi" ]; then
|
||||
@@ -100,6 +104,12 @@ if [ "${SKIP_SPROUT_BUILD}" != "1" ]; then
|
||||
if [ -f "${FINAL_DIR}/shell.efi" ]; then
|
||||
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
|
||||
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}/initramfs" "${FINAL_DIR}/efi/INITRAMFS"
|
||||
|
||||
@@ -17,11 +17,18 @@ chainload.options = ["$default-options"]
|
||||
[actions.chainload-shell]
|
||||
chainload.path = "\\EFI\\BOOT\\shell.efi"
|
||||
|
||||
[actions.chainload-xen]
|
||||
chainload.path = "\\EFI\\BOOT\\xen.efi"
|
||||
|
||||
[generators.kernels.matrix]
|
||||
entry.title = "Boot Kernel $name"
|
||||
entry.title = "Boot Linux $name"
|
||||
entry.values.path = "\\EFI\\BOOT\\$name"
|
||||
entry.actions = ["chainload-kernel"]
|
||||
values.name = ["kernel.efi"]
|
||||
|
||||
#[entries.xen]
|
||||
#title = "Boot Xen"
|
||||
#actions = ["chainload-xen"]
|
||||
|
||||
[[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