Git Product home page Git Product logo

build-virtualbox-in-windows's Introduction

Build VirtualBox in Windows

Introduction

This repository provides a set of scripts which will help you compile VirtualBox easily.

You can find the official manual to compile VirtualBox in Windows from the official site, but it's too obsolete to follow at this time. So, we wrote python scripts which prepare required libraries for compilation, and compile VirtualBox automatically.

What you need to do is only to install pre-requisites for the compilation, and run the scripts.

Features

  • It downloads or compiles the followings: 7-Zip, MinGW, SDL, SSL, cURL, Qt5
  • It creates and registers a credential which is needed to compile drivers in Windows.
  • It manages dependencies in the compilation.
  • It compiles VirtualBox binaries.

Requirement

  • Windows 10
  • Python (≥ 3.8)
  • Enough spaces (at least 20GB)

Building

To build VirtualBox via the scripts, you should follow the steps below.

1. Set Up Environment

Before using the scripts, you need to install the followings.

If at least one of them is not installed properly, you could be in trouble with compile errors afterwards. And, we recommend you install them in their default paths.

2. Set Up Privilege

Before going into any steps, you should satisfy the followings:

  • Test Mode
  • Root Privilege

You can turn on the test mode with the following:

bcdedit /set testsigning on

Note that you MUST reboot your PC when you turned on the test mode for the first time.

And, you should execute any scripts in this repository with root-privilege(Administrator). Unless, you will confront unexpected issues afterwards.

3. Download Source of VirtualBox

You should download from the official site the sources of VirtualBox, which you want to compile. And copy the sources into C:/VBoxBuild/VirtualBox. Scripts will use C:/VBoxBuild as a default working directory for compilation.

4, Clone This Repository

Clone this repository via:

git clone https://github.com/VirtualBoBs/build-virtualbox-in-windows.git

5. Run Setup Script

Run script/setup.py.

It will configure all the requirements for your compilation.

6. Run Build Script

Run script/build.py.

Please make sure that the prior setup stage has been accomplished.

It will build the components of VirtualBox. You can find the compiled binaries in C:/VBoxBuild/VirtualBox/out/win.amd64/release/bin.

If you've finished Step 1~5, building the binaries needs Step 6 only.

Usage

Run VirtualBox

When you run the GUI version of VirtualBox(VirtualBox.exe), you need dynamic libraries of both Qt and cURL library. You can run it via:

SET PATH=%PATH%;C:\VBoxBuild\Qt\qt5-x64\bin
SET PATH=%PATH%;C:\VBoxBuild\curl\x64

C:\VBoxBuild\VirtualBox\out\win.amd64\release\bin\VirtualBox.exe

Debug VirtualBox

The default setting provides disabled-hardening on the VirtualBox binary, so you can attach any kind of debugger on the running process of compiled VirtualBox.

FAQ

Q) I keep getting an error in SignTool: Multiple certificates were found that meet all the given criteria.

A) Unfortunately, now our script does not handle multiple certificates being generated during the Setup step. You need to run it only once unlike the Build step. And here is the solution:

  1. Run certmgr.msc
  2. Delete all the certificates named MyTestCertificate in the Certificates - Personal
  3. Start from the Setup step.

Bug Reporting

We use Github Issue as its primary upstream bug tracker. Bugs found when running scripts should be reported via:

Especially, let us know if you can not download files automatically in the scripts. Old URLs in the scripts might be the causes.

Contact

You can contact us via:

  • Send a mail via a leg of bird
  • Use our common telepathy
  • Wish to God your genuine belief

Or, well, just e-mail us :p

License

Copyright (c) 2020 JungHyun Kim & JaeSeung Lee of VirtualBoBs

Released under the MIT license.

build-virtualbox-in-windows's People

Contributors

chrisngyn avatar jidoc01 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.