CloverBootloader/Qemu/launch

96 lines
2.2 KiB
Plaintext
Raw Normal View History

2020-03-11 17:42:16 +01:00
SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"`
SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"`
OSTYPE=`uname -s`
#echo $OSTYPE
if ! [ -z "$1" ]
2020-03-11 17:42:16 +01:00
then
clover_efi_file="${1%.*}".efi
if ! [ -f "$clover_efi_file" ]
then
echo Efi file "$clover_efi_file" doesn\'t exist
exit 1
fi
echo clover_efi_file="$clover_efi_file"
2020-03-11 17:42:16 +01:00
fi
set -x
if [ "$OSTYPE" = "Darwin" ]
then
if ! [ -f ./Qemu/qemu_portable/qemu-system-x86_64 ]
then
2020-03-11 17:42:16 +01:00
if ! [ -f /usr/local/bin/qemu-system-x86_64 ]
then
echo "You must install Qemu with \"brew install qemu\"", or restore the folder \'qemu_portable\'
exit 1
fi
2020-03-11 17:42:16 +01:00
echo "You must install Qemu with \"brew install qemu\""
exit 1
fi
if ! [ -f "$SCRIPT_DIR"/disk_image_gpt.img ]
then
unzip -o "$SCRIPT_DIR"/disk_image_gpt.img.zip
rm -rf "$SCRIPT_DIR"/__MACOSX
fi
if pgrep qemu
then
killall qemu-system-x86_64
fi
> "$SCRIPT_DIR"/serial0_qemu_out.log # empty file without erasing it. Useful for editor for refreshing and reloading.
if ! [ -z "$clover_efi_file" ]
then
hdiutil attach "$SCRIPT_DIR"/disk_image_gpt.img || exit 1
2020-03-11 17:42:16 +01:00
shopt -s nocasematch
2020-03-11 17:42:16 +01:00
if [[ "$(basename "$clover_efi_file")" =~ "CloverX64"* ]]
then
echo ditto "$clover_efi_file" /Volumes/QEMU_EFI/EFI/CLOVER/CLOVERX64.efi
ditto "$clover_efi_file" /Volumes/QEMU_EFI/EFI/CLOVER/CLOVERX64.efi || exit 1
#no need to replace BootX64.efi, it's not used in legacy boot
else
: # TODO : if it's a module, has to be copied in Drivers
fi
shopt -u nocasematch
diskutil eject /Volumes/QEMU_EFI || exit 1
2020-03-11 17:42:16 +01:00
fi
sleep 1 # not 100% sure it's needed
set -m
cd "$SCRIPT_DIR"
./qemu_portable/qemu-system-x86_64 \
-L qemu_portable \
2020-03-11 17:42:16 +01:00
-m 2048 \
-cpu core2duo \
-bios ./bios.bin-1.13.0 \
2020-03-11 17:42:16 +01:00
-machine q35 \
-device ahci,id=ahi \
-drive format=raw,id=hda,file=./disk_image_gpt.img \
2020-03-11 17:42:16 +01:00
-usb \
-device usb-mouse,bus=usb-bus.0,port=2 \
-device usb-kbd,bus=usb-bus.0,port=1 \
-serial file:./serial0_qemu_out.log \
2020-03-11 17:42:16 +01:00
-gdb tcp::9000
# -device VGA,vgamem_mb=64,edid=on,xres=1024,yres=768 \
# -hdb "/JiefLand/Mac OS X 11.0.Beta10.vmwarevm/Virtual Disk.vmdk" \
# -hdc /JiefLand/5.Devel/Clover/CloverEfi.vmw/ElCapitan.vmdk \
2020-03-11 17:42:16 +01:00
fi