Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 4.1 KB

File metadata and controls

70 lines (50 loc) · 4.1 KB

XenevaOS Build Instructions

Prerequisites

Before building XenevaOS, make sure all dependencies are installed and all steps are performed in the sequential order mentioned in this document. XenevaOS is built purely in a Windows environment.

Visual Studio 2019 Community edition

Visual Studio 2019 Community Edition is required to open and edit XenevaOS projects. The Community Edition is a free version of Microsoft Visual Studio. You can also use any paid edition of 2019. If a later version of Visual Studio is used, projects need to be configured manually to meet compiler version requirements. This is done by going to:

  • Open Visual Studio and open the desired solution
  • Select the desired Project from Solution Explorer and right click
  • Project -> Properties -> General -> Platform Toolset

Netwide Assembler (NASM)

Download and install Netwide Assembler (NASM) from NASM Official website. NASM needs to be integrated with Visual Studio to compile assembly source code. This can be done by following steps:

  • Go to the Resources directory in the XenevaOS repository, then copy and extract nasmprops.zip.
  • Copy "nasm.props", "nasm.targets", "nasm.xml" from nasmprops.zip to C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations


Setting up USB Flash Drive

Format a USB Flash drive (Minimum 2 GiB space required) with a GPT partition and FAT32 filesystem. You can use Rufus to format the USB Flash drive (by downloading Rufus) or diskpart to format the disk (available by default on Windows):

  • Open cmd.exe with Run as administrator mode
  • type diskpart press Enter
  • type list disk press Enter
  • Identify your USB disk number from the list
  • type select diskX replace X with USB disk number
  • type clean to clean the disk
  • type convert gpt create partition primary press Enter
  • type format fs=fat32 unit=4096 quick
  • type assign X replace 'X' with a drive letter

Setting up Environment Variables

Required Environment Variables are:

  • XENEVA_BUILDS with the variable value pointing to the location of the USB Flash Drive.

Add a User Environment Variable with "Variable Name: XENEVA_BUILDS" and "Variable Value" as the location of the USB Flash Drive. This can be done simply by clicking the "Browse Directory" button.

Copying required resources

Please make sure that all files from the resource directory inside the XenevaOS repository are copied as they are to the XENEVA_BUILDS PATH (i.e., to the USB Flash Drive) and make sure they are copied prior to starting the build process.

XenevaOS requires resource files to run. Some important resource files are:

  • "audrv.cnf" contains PCI/PCIe class-subclass codes with driver file paths, required by the 'Kernel'
  • "ftlst.cnf" contains font names and their location paths
  • "lnch.cnf" contains Application entries and their location paths for the AppTray to recognize and display installed applications. Go to _Resources\resources_ directory in the repository and copy all the resource files as it is, to "XENEVA_BUILDS" PATH (i.e to the USB Flash Drive)

Building the Solution

Before opening the solution, please make sure that Netwide Assembler (NASM) is installed and configured as mentioned above. Open the "Aurora.sln" file from the repository and everything should get automatically configured.

  • In the Solution Explorer, select the solution. It should be named 'Solution Aurora'
  • Right Click on 'Solution Aurora' from Solution Explorer, then click "Rebuild Solution"
  • This should rebuild the entire solution and produce the binaries in the "Build" folder of the XenevaOS repository.
  • The solution will automatically copy all the binaries to the "XENEVA_BUILDS" PATH (i.e., the USB Flash Drive).

More Information

At this point you should see all the necessary files inside your "XENEVA_BUILDS" PATH. Now you need to setup VM for XenevaOS. You can visit Testing environment setup instructions.