From d407d85e70503bd9805b0e0c0f8ec4cade7a1452 Mon Sep 17 00:00:00 2001 From: Zhang Junyang Date: Wed, 19 Jul 2023 15:38:47 +0800 Subject: [PATCH] Adapt Docker environment and minor fixes --- build/grub/conf/grub.cfg | 7 +++++-- build/grub/scripts/build-grub-image.sh | 5 +++-- build/src/main.rs | 1 + tools/docker/Dockerfile.ubuntu22.04 | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/build/grub/conf/grub.cfg b/build/grub/conf/grub.cfg index e98354848..c1a75a38c 100644 --- a/build/grub/conf/grub.cfg +++ b/build/grub/conf/grub.cfg @@ -1,5 +1,8 @@ +set timeout_style=menu +set timeout=1 + menuentry 'jinux' { - multiboot2 /jinux - module2 --nounzip /ramdisk.cpio.gz + multiboot2 /boot/jinux + module2 --nounzip /boot/ramdisk.cpio.gz boot } diff --git a/build/grub/scripts/build-grub-image.sh b/build/grub/scripts/build-grub-image.sh index fa4c6a16b..754c16844 100755 --- a/build/grub/scripts/build-grub-image.sh +++ b/build/grub/scripts/build-grub-image.sh @@ -1,16 +1,17 @@ #! /bin/sh +set -eux # Cargo passes the path to the built executable as the first argument. KERNEL=$1 # Copy the needed files into an ISO image. mkdir -p target/iso_root -cp $KERNEL target/iso_root/jinux +cp $KERNEL target/iso_root/boot/jinux mkdir -p target/iso_root/boot/grub cp build/grub/conf/grub.cfg target/iso_root/boot/grub # Copy ramdisk -cp regression/build/ramdisk.cpio.gz target/iso_root +cp regression/build/ramdisk.cpio.gz target/iso_root/boot # Make boot device .iso image grub-mkrescue -o $KERNEL.iso target/iso_root diff --git a/build/src/main.rs b/build/src/main.rs index 31ee13ca4..cbc400b3a 100644 --- a/build/src/main.rs +++ b/build/src/main.rs @@ -101,6 +101,7 @@ fn main() -> anyhow::Result<()> { qemu_args.push("-drive"); let binding = create_fs_image(kernel_binary_path.as_path())?; qemu_args.push(binding.as_str()); + qemu_cmd.arg("-cdrom"); qemu_cmd.arg(kernel_iso_path.to_str().unwrap()); if binary_kind.is_test() { qemu_args.append(&mut TEST_ARGS.to_vec()); diff --git a/tools/docker/Dockerfile.ubuntu22.04 b/tools/docker/Dockerfile.ubuntu22.04 index aae099072..c68d6702b 100644 --- a/tools/docker/Dockerfile.ubuntu22.04 +++ b/tools/docker/Dockerfile.ubuntu22.04 @@ -15,6 +15,7 @@ RUN apt update && apt-get install -y --no-install-recommends \ git-core \ gnupg \ grub-common \ + grub-pc \ libssl-dev \ net-tools \ openssh-server \