mirror of
https://github.com/edera-dev/sprout.git
synced 2025-12-19 17:10:17 +00:00
boot improvements and acceleration
This commit is contained in:
@@ -3,15 +3,7 @@ set -e
|
|||||||
|
|
||||||
cd "$(dirname "${0}")/.." || exit 1
|
cd "$(dirname "${0}")/.." || exit 1
|
||||||
|
|
||||||
NATIVE_ARCH="$(uname -m)"
|
. "hack/common.sh"
|
||||||
[ "${NATIVE_ARCH}" = "arm64" ] && NATIVE_ARCH="aarch64"
|
|
||||||
[ "${NATIVE_ARCH}" = "amd64" ] && NATIVE_ARCH="x86_64"
|
|
||||||
|
|
||||||
if [ "$(uname)" != "Linux" ]; then
|
|
||||||
cargo clippy --workspace --fix --allow-dirty --allow-staged \
|
|
||||||
--target "${NATIVE_ARCH}-unknown-uefi"
|
|
||||||
else
|
|
||||||
cargo clippy --workspace --fix --allow-dirty --allow-staged
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
cargo clippy --workspace --fix --allow-dirty --allow-staged --target "${HOST_ARCH}-unknown-uefi"
|
||||||
./hack/format.sh
|
./hack/format.sh
|
||||||
|
|||||||
25
hack/boot.sh
25
hack/boot.sh
@@ -5,31 +5,52 @@ cd "$(dirname "${0}")/.." || exit 1
|
|||||||
|
|
||||||
. "hack/common.sh"
|
. "hack/common.sh"
|
||||||
|
|
||||||
./hack/build.sh "${TARGET_ARCH}" "${RUST_PROFILE}"
|
if [ "${SKIP_BUILD}" != "1" ]; then
|
||||||
|
./hack/build.sh "${TARGET_ARCH}" "${RUST_PROFILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
set --
|
set --
|
||||||
|
|
||||||
if [ "${TARGET_ARCH}" = "x86_64" ]; then
|
if [ "${TARGET_ARCH}" = "x86_64" ]; then
|
||||||
set -- "${@}" qemu-system-x86_64 -M q35
|
set -- "${@}" qemu-system-x86_64 -M q35
|
||||||
elif [ "${TARGET_ARCH}" = "aarch64" ]; then
|
elif [ "${TARGET_ARCH}" = "aarch64" ]; then
|
||||||
set -- "${@}" qemu-system-aarch64 -M virt -cpu cortex-a57
|
set -- "${@}" qemu-system-aarch64 -M virt -cpu cortex-a57
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${QEMU_ACCEL}" ]; then
|
||||||
|
set -- "${@}" "-accel" "kvm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${QEMU_GDB}" = "1" ]; then
|
||||||
|
set -- "${@}" "-s"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${QEMU_GDB_WAIT}" = "1" ]; then
|
||||||
|
set -- "${@}" "-S"
|
||||||
|
fi
|
||||||
|
|
||||||
set -- "${@}" -smp 2 -m 4096
|
set -- "${@}" -smp 2 -m 4096
|
||||||
|
|
||||||
if [ "${NO_GRAPHICAL_BOOT}" = "1" ]; then
|
if [ "${NO_GRAPHICAL_BOOT}" = "1" ]; then
|
||||||
set -- "${@}" -nographic
|
set -- "${@}" -nographic
|
||||||
else
|
else
|
||||||
|
if [ "${QEMU_LEGACY_SERIAL}" = "1" ]; then
|
||||||
|
set -- "${@}" -serial stdio
|
||||||
|
else
|
||||||
set -- "${@}" \
|
set -- "${@}" \
|
||||||
-device virtio-serial-pci,id=vs0 \
|
-device virtio-serial-pci,id=vs0 \
|
||||||
-chardev stdio,id=stdio0 \
|
-chardev stdio,id=stdio0 \
|
||||||
-device virtconsole,chardev=stdio0,id=console0
|
-device virtconsole,chardev=stdio0,id=console0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${QEMU_LEGACY_VGA}" = "1" ]; then
|
||||||
|
set -- "${@}" -vga std
|
||||||
|
else
|
||||||
set -- "${@}" \
|
set -- "${@}" \
|
||||||
-vga none \
|
-vga none \
|
||||||
-device "virtio-gpu,edid=on,xres=1024,yres=768"
|
-device "virtio-gpu,edid=on,xres=1024,yres=768"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f "${FINAL_DIR}/ovmf-boot.fd"
|
rm -f "${FINAL_DIR}/ovmf-boot.fd"
|
||||||
|
|||||||
@@ -6,8 +6,13 @@ DOCKER_PREFIX="ghcr.io/edera-dev/sprout"
|
|||||||
DEFAULT_RUST_PROFILE="release"
|
DEFAULT_RUST_PROFILE="release"
|
||||||
DEFAULT_DOCKER_TAG="latest"
|
DEFAULT_DOCKER_TAG="latest"
|
||||||
|
|
||||||
|
HOST_ARCH="$(uname -m)"
|
||||||
|
|
||||||
|
[ "${HOST_ARCH}" = "arm64" ] && HOST_ARCH="aarch64"
|
||||||
|
[ "${HOST_ARCH}" = "amd64" ] && HOST_ARCH="x86_64"
|
||||||
|
|
||||||
[ -z "${TARGET_ARCH}" ] && TARGET_ARCH="${1}"
|
[ -z "${TARGET_ARCH}" ] && TARGET_ARCH="${1}"
|
||||||
{ [ -z "${TARGET_ARCH}" ] || [ "${TARGET_ARCH}" = "native" ]; } && TARGET_ARCH="$(uname -m)"
|
{ [ -z "${TARGET_ARCH}" ] || [ "${TARGET_ARCH}" = "native" ]; } && TARGET_ARCH="${HOST_ARCH}"
|
||||||
[ -z "${RUST_PROFILE}" ] && RUST_PROFILE="${2}"
|
[ -z "${RUST_PROFILE}" ] && RUST_PROFILE="${2}"
|
||||||
[ -z "${RUST_PROFILE}" ] && RUST_PROFILE="${DEFAULT_RUST_PROFILE}"
|
[ -z "${RUST_PROFILE}" ] && RUST_PROFILE="${DEFAULT_RUST_PROFILE}"
|
||||||
|
|
||||||
@@ -29,3 +34,9 @@ RUST_TARGET="${TARGET_ARCH}-unknown-uefi"
|
|||||||
[ -z "${DOCKER_TAG}" ] && DOCKER_TAG="${DEFAULT_DOCKER_TAG}"
|
[ -z "${DOCKER_TAG}" ] && DOCKER_TAG="${DEFAULT_DOCKER_TAG}"
|
||||||
DOCKER_TARGET="linux/${TARGET_ARCH}"
|
DOCKER_TARGET="linux/${TARGET_ARCH}"
|
||||||
FINAL_DIR="target/final/${TARGET_ARCH}"
|
FINAL_DIR="target/final/${TARGET_ARCH}"
|
||||||
|
|
||||||
|
if [ -z "${QEMU_ACCEL}" ] && [ "${TARGET_ARCH}" = "${HOST_ARCH}" ] &&
|
||||||
|
[ -f "/proc/cpuinfo" ] &&
|
||||||
|
grep -E '^flags.*:.+ vmx .*' /proc/cpuinfo >/dev/null; then
|
||||||
|
QEMU_ACCEL="kvm"
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user