- Compile VirtualBox on Windows
- Setup development/test environments
- Compile VirtualBox on Windows
- Default to fullscreen VM
- Default to 'save-state' when closing
- Run Portable-VirtualBox with our executable
- Run VirtualBox without Admin/root access
Setup and configured Hyper-V for development environment.
Attempt to finish setting up development environment.
Installed new hard drive. Old drive died.
Finished development environment and got VirtualBox to compile!
Finished log formatting and github for review.
Start setting up development environment.
Finish setting up development environment.
Start compile of VirtualBox. Compiled 64 and 32 bit.
TODO: Create batch files to automate development setup and compilation.
Recompile Portable-VirtualBox AutoIt script using our compiled exe package.
Clone and compile Portable-VirtualBox.
New Portable-VirtualBox loads our executable and auto-installs.
Fails to load kernel drivers. VirtualBox error.
Cross checking all dlls and sys files loaded by Portable-VirtualBox
Loaded Portable-VirtualBox with official 6.0.4 and it runs. Compared it with my version again.
DRIVER SIGNING
Disabled secure boot and put Windows 10 into test signing mode.
bcdedit /set testsigning on
Portable-VirtualBox runs with my executable.
Installed fresh copy of Windows 10 Home on VirtualBox VM.
Start work on auto save-state when closing VirtualBox.
Defaulting to save-state can be done in the .vbox file for the VM.
The saving progress bar is gone when auto saving state.
As a hack, put uisession().saveState()
infront of the save state function call. This is normally called later.
Finished more Windows 10 updates.
Start trying to load VirtualBox without admin/root access.
Run in userspace?
Continue trying to run in userspace.
Trying cflags that may effect how virtualization works.
Contacted devs on irc.freenode.net #vbox-dev, said it was not possible.
How does TinyEMU work? Compiling on win32 is not completed yet.
Implement compiling on win32.
<sys/select.h> needed for windows. winsock2.h does some of the functions but not all.
libslirp.h not ported to win32.
Shelved TinyEMU for now.
Revisited qemu. Can we speed it up without elevated privleges?
Windows 10 install took >1h.
qemu-system-x86_64.exe
-hda c:\devel\qemu-machines\win10.img
-boot d
-cdrom c:\users\jon\downloads\windows.iso
-m 2G
Try using new WHPX accelerator.
-accel whpx
Took longer to install than without. When using 64bit binaries whpx support is said to be untested
.
Windows won't finish install. Stops after reboot and soft locks.
Compile qemu with whpx for windows.
Needs to be cross compiled from a linux environment using mingw32/64. Does not work through wsl ubuntu.
mingw glib libraries are not compatible with newest source.
Back to virtualbox. If we accept admin access must be required can we verify drivers from autoit script.
vboxdrv.inf
vboxdrv.cat
vboxdrv.sys
Make host installer with minimum number of files to get virtualbox running.
Easiest is to just install virtualbox?
Host much have hypervisor disabled, or vbox will not run with acceleration.
In virtualbox out/build folder, comregister.cmd loads the virtualbox service. The service is needed to access com components.
Use seperate installer or have autoit do it and make it leave the files inplace instead of removing them on close?
Autoit has crypt.au3 functions to verify hashes of files.
_Crypt_HashFile(file, algorithm)
Check vboxdrv.sys file, if they are different, exit or overwrite. (Need admin)
Edit autoit script to leave drivers installed if we installed them on the system.
Break script into modules.
Lots of refactoring
Create standalone exe. Put vbox.exe installer on drive?
Update usb stick with latest files.
user/pass: ku/ku1234 test machine
Can't move from one machine to another during a save state/snapshot. Normal behavior?
Using official release 6.0.4+: We don't need to sign drivers We don't need admin access
Determine DLLs needed for virtual box at a minimum.
Make resolutions match automaticly to host machine
Xen?
Remove hybrid mode. Portable-virtualbox runs files off host machine and exits if they are already install. We need to verify files to ensure our machine works with their drivers.
Hybrid mode forgets portable-virtualbox settings like automaticly starting a machine if set in settings.
Added debug window to portable-virtualbox. Finished some refactoring and uploaded/forked git.
Unfinished: Needs to be updated
Moved to QEMU with hypervisor?
Meeting with Matt.
Waiting for contact at library to finish fleshing out specs for host/guest machine settings.
Features? Browser Security. Brave?
Update goals?
Finish implementing debug logging.
Lots of code/refactoring.
Testing on different machines at home.
Started native builds of QEMU for windows on windows 10 using msys2 with WHPX enabled.
Same install speed at pre-build binaries. Too slow.
Install/create windows isntall on virtualbox and convert it to qcow for qemu
> qemu-img convert windows10.img -O qcow2 qemu\windows10.img
Won't boot to Windows completely. Freezes after 20 min
Doesn't work on mobile intel processors? [todo]
Runs on desktops with ok
(?) speed compared to Virtualbox.
autoit function to build usable command on windows.
Func _Run_Command()
Local $command
$command &= $G_QEMUEXE
$command &= " -hda " & $G_WINDOWSIMG
$command &= " -boot d"
$command &= " -usb -device usb-tablet"
$command &= " -accel whpx"
$command &= " -machine q35"
$command &= " -cpu qemu64"
$command &= " -m 3G"
$command &= " -full-screen"
Return $command
EndFunc
Still can't savevm. No possible? Prevents portability conflicts between hosts?
Have test windows machine installed.
Runs fairly slow with 6G memory.
Start looking at cpu flags for savevm?
Explorer ways to speed up windows 10 default installation.
Debloat/updates?
Reinstalling Windows 10 with newest updates. Takes too long to update manually.
Disable windows updates?
Create bench setup with puppylinux.
Switched to archlinux.
Using linux bench scripts.
wget -qO- bench.sh | bash
Goals:
- Hotswappable
- Auto-run (installable exe?)
Begin autoit script to check host system for QEMU to run.
Check for:
- CPU
- Memory
- Hypervisor
- Network
- USB Speed?
Work on autoit to determine USB capabilities
Windows doesn't report directly USB protocols supported by inserted device.
Switch to c++/# to use native win api to query usb devices?
Shelving USB query for now. Use a more brute force test to determine speed?
File reads/writes speeds, maybe doesn't need to be 3.0?
Return to finishing autoit script for qemu.
Added loading/splash screen. More/less info for user?