First pass at getting Acadia running under bochs.

- Create a bochs build script.
- Properly configure COM1
This commit is contained in:
Drew Galbraith 2025-05-06 22:22:02 -07:00
parent 93d1299bd9
commit 5a20c23569
9 changed files with 153 additions and 40 deletions

View file

@ -1,7 +1,11 @@
#!/us
#! /bin/bash
set -e
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
REPO_ROOT="$SCRIPT_DIR/.."
BUILD_DIR="$REPO_ROOT/builddbg"
if [[ $# -ne 1 ]]; then
echo "Must specify disk image name."
fi
@ -15,11 +19,14 @@ if [ -z "$dev" ]; then
fi
echo "Loopback device: ${dev}"
EFI_DIR="$BUILD_DIR/efi"
SYSROOT="$BUILD_DIR/sysroot"
cleanup() {
umount efi
rm -rf efi
umount sysroot
rm -rf sysroot
umount $EFI_DIR
rm -rf $EFI_DIR
umount $SYSROOT
rm -rf $SYSROOT
losetup -d $dev
}
trap cleanup EXIT
@ -30,22 +37,23 @@ mke2fs "${dev}p2"
limine bios-install "${dev}"
mkdir -p efi/
mount "${dev}p1" efi/
mkdir -p efi/EFI/BOOT
cp /usr/share/limine/BOOTX64.EFI efi/EFI/BOOT
cp /usr/share/limine/limine-bios.sys efi/
cp ../zion/boot/limine.conf efi/
cp zion/zion efi/
mkdir -p efi/sys
cp ../sysroot/bin/yellowstone efi/sys/yellowstone
cp ../sysroot/bin/denali efi/sys/denali
cp ../sysroot/bin/victoriafalls efi/sys/victoriafalls
mkdir -p $EFI_DIR
mount "${dev}p1" $EFI_DIR
mkdir -p sysroot
mount "${dev}p2" sysroot/
rsync -a ../sysroot .
ls sysroot/
mkdir -p $EFI_DIR/EFI/BOOT
cp /usr/share/limine/BOOTX64.EFI $EFI_DIR/EFI/BOOT
cp /usr/share/limine/limine-bios.sys $EFI_DIR
cp $REPO_ROOT/zion/boot/limine.conf $EFI_DIR/
cp $BUILD_DIR/zion/zion $EFI_DIR/
mkdir -p $EFI_DIR/sys
cp $REPO_ROOT/sysroot/bin/yellowstone $EFI_DIR/sys/yellowstone
cp $REPO_ROOT/sysroot/bin/denali $EFI_DIR/sys/denali
cp $REPO_ROOT/sysroot/bin/victoriafalls $EFI_DIR/sys/victoriafalls
mkdir -p $SYSROOT
mount "${dev}p2" $SYSROOT
rsync -a "$REPO_ROOT/sysroot" $BUILD_DIR
ls $SYSROOT
chown drew:drew $1