Change build system to copy all files to Tmp/OSBuild, then perform build inside OS using reboots without using host script to repeatedly power off and on again.

This commit is contained in:
TomAwezome 2022-10-31 03:15:50 -04:00
parent a327043057
commit 0cfaff51b9
6 changed files with 88 additions and 28 deletions

Binary file not shown.

View file

@ -46,39 +46,19 @@ echo "Building ZealBooter..."
set +e set +e
echo "Making temp vdisk, running auto-install ..." echo "Making temp vdisk, running auto-install ..."
qemu-img create -f raw $TMPDISK 192M qemu-img create -f raw $TMPDISK 1024M
qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -cdrom AUTO.ISO -device isa-debug-exit qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -cdrom AUTO.ISO -device isa-debug-exit
echo "Copying src/Kernel/KStart16.ZC and src/Kernel/KernelA.HH into vdisk ..." echo "Copying all src/ code into vdisk Tmp/OSBuild/ ..."
rm ../src/Home/Registry.ZC 2> /dev/null
rm ../src/Home/MakeHome.ZC 2> /dev/null
mount_tempdisk
sudo cp -rf ../src/Kernel/KStart16.ZC $TMPMOUNT/Kernel/
sudo cp -rf ../src/Kernel/KernelA.HH $TMPMOUNT/Kernel/
umount_tempdisk
echo "Rebuilding kernel headers ..."
qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -device isa-debug-exit
echo "Copying all kernel code into vdisk ..."
rm ../src/Home/Registry.ZC 2> /dev/null
rm ../src/Home/MakeHome.ZC 2> /dev/null
mount_tempdisk
sudo cp -rf ../src/Kernel/* $TMPMOUNT/Kernel/
umount_tempdisk
echo "Rebuilding kernel..."
qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -device isa-debug-exit
echo "Copying all src/ code into vdisk ..."
rm ../src/Home/Registry.ZC 2> /dev/null rm ../src/Home/Registry.ZC 2> /dev/null
rm ../src/Home/MakeHome.ZC 2> /dev/null rm ../src/Home/MakeHome.ZC 2> /dev/null
rm ../src/Boot/Kernel.ZXE 2> /dev/null rm ../src/Boot/Kernel.ZXE 2> /dev/null
mount_tempdisk mount_tempdisk
sudo cp -r ../src/* $TMPMOUNT sudo mkdir $TMPMOUNT/Tmp/OSBuild/
sudo cp -r ../src/* $TMPMOUNT/Tmp/OSBuild
umount_tempdisk umount_tempdisk
echo "Building Distro ISO ..." echo "Rebuilding kernel headers, kernel, OS, and building Distro ISO ..."
qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -device isa-debug-exit qemu-system-x86_64 -machine q35,accel=kvm -drive format=raw,file=$TMPDISK -m 1G -rtc base=localtime -smp 4 -device isa-debug-exit
LIMINE_BINARY_BRANCH="v4.x-branch-binary" LIMINE_BINARY_BRANCH="v4.x-branch-binary"

View file

@ -18,11 +18,15 @@ U0 Auto()
} }
} }
WinMax;
BootMHDIns('C'); BootMHDIns('C');
in_str = MStrPrint("Sleep(700);In(\"CC\\n%d\\n\\n\\n\\n\");", ata_port); in_str = MStrPrint("Sleep(700);In(\"CC\\n%d\\n\\n\\n\\n\");", ata_port);
OnceDrive('C', in_str); OnceDrive('C', in_str);
Free(in_str); Free(in_str);
in_str = MStrPrint("BootHDIns;OnceFlush;Once(\"#include \\\"/Misc/Auto/AutoFullDistro00\\\";;Auto;\");OutU8(0x501,0x31);"); in_str = MStrPrint( "BootHDIns;"
"OnceFlush;"
"Once(\"#include \\\"/Misc/Auto/AutoFullDistro00\\\";;Auto;\");"
"Reboot;");
OnceDrive('C', in_str); OnceDrive('C', in_str);
OutU8(0x501,0x31); OutU8(0x501,0x31);
} }

View file

@ -18,13 +18,20 @@ U0 Auto()
} }
} }
WinMax;
BootMHDIns('C');
Copy("C:/Tmp/OSBuild/Kernel/KStart16.ZC", "C:/Kernel/");
Copy("C:/Tmp/OSBuild/Kernel/KernelA.HH", "C:/Kernel/");
in_str = MStrPrint("CC\n%d\n\n\n\n", ata_port); in_str = MStrPrint("CC\n%d\n\n\n\n", ata_port);
Sleep(700); Sleep(700);
In(in_str); In(in_str);
BootHDIns; BootHDIns;
OnceFlush; OnceFlush;
in_str = MStrPrint("#include \"/Misc/Auto/AutoFullDistro1\";;Auto;;"); Free(in_str);
in_str = MStrPrint( "OnceFlush;"
"Once(\"#include \\\"/Misc/Auto/AutoFullDistro000\\\";;Auto;\");"
"Reboot;");
OnceDrive('C', in_str); OnceDrive('C', in_str);
OutU8(0x501,0x31); Reboot;
} }
Auto; Auto;

View file

@ -0,0 +1,36 @@
U0 Auto()
{
I64 i, ata_port = -1;
CAHCIPort *port;
U8 *in_str;
for (i = 0; i < AHCI_MAX_PORTS; i++)
{
if (PCIBt(&blkdev.ahci_hba->ports_implemented, i))
{
port = &blkdev.ahci_hba->ports[i];
if (port->signature == AHCI_PxSIG_ATA)
{
ata_port = i;
break;
}
}
}
WinMax;
BootMHDIns('C');
CopyTree("C:/Tmp/OSBuild/Kernel/", "C:/Kernel/");
in_str = MStrPrint("CC\n%d\n\n\n\n", ata_port);
Sleep(700);
In(in_str);
BootHDIns;
OnceFlush;
Free(in_str);
in_str = MStrPrint( "OnceFlush;"
"Once(\"#include \\\"/Misc/Auto/AutoFullDistro0000\\\";;Auto;\");"
"Reboot;");
OnceDrive('C', in_str);
Reboot;
}
Auto;

View file

@ -0,0 +1,33 @@
U0 Auto()
{
I64 i, ata_port = -1;
CAHCIPort *port;
U8 *in_str;
for (i = 0; i < AHCI_MAX_PORTS; i++)
{
if (PCIBt(&blkdev.ahci_hba->ports_implemented, i))
{
port = &blkdev.ahci_hba->ports[i];
if (port->signature == AHCI_PxSIG_ATA)
{
ata_port = i;
break;
}
}
}
WinMax;
CopyTree("C:/Tmp/OSBuild/", "C:/");
in_str = MStrPrint("CC\n%d\n\n\n\n", ata_port);
Sleep(700);
In(in_str);
BootHDIns;
OnceFlush;
in_str = MStrPrint("#include \"/Misc/Auto/AutoFullDistro1\";;Auto;;");
OnceDrive('C', in_str);
DelTree("C:/Tmp/OSBuild");
Reboot;
}
Auto;