Skip to content

Latest commit

 

History

History
157 lines (110 loc) · 3.74 KB

building.md

File metadata and controls

157 lines (110 loc) · 3.74 KB

Build Guide

Table of content

Supported environment

Building skiftOS requires

  • A good Linux distribution
  • nasm
  • gcc
  • binutils
  • grub
  • ImageMagick

And for testing and debugging

  • qemu
  • gdb
# On Debian or Debian-based distributions
$ sudo apt install nasm gcc make binutils grub-pc-bin qemu-system-x86 xorriso mtools imagemagick
# On Arch or Arch-based distributions
$ sudo pacman -S nasm gcc make binutils grub qemu libisoburn mtools imagemagick

About WSL

It's possible to build skiftOS WSL1 and WSL2 but it's not well tested. If you have any problems consider upgrading to a GNU/linux distribution.

Building skiftOS

1. Get the source code

Clone the repository with all its submodules.

$ git clone --recursive https://github.com/skiftOS/skift

$ cd skift

Or if you have already cloned this repo without --recursive do:

$ cd skift

$ git submodule init

2. Setting up

Building the toolchain is pretty straight-forward, first make sure you have all GCC and binutils dependencies:

  • build-essential
  • bison
  • flex
  • libgmp3-dev
  • libmpc-dev
  • libmpfr-dev
  • texinfo

You can run the following command on ubuntu:

# On Debian or Debian-based distributions
$ sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo
# On Arch or Arch-based distributions
$ sudo pacman -S base-devel bison flex mpc mpfr texinfo

Then for building the toolchain run the build-it.sh script

## Build the tool chain
$ toolchain/build-it.sh

## Then wait for completion

The script will do the following operation without installing anything to the host system nor requiering root access:

  • Download gcc and binutils from the GNU project
  • Patch them using binutils.patch and gcc.patch which are located in the toolchain directory.
  • Then configure and build

3. Building

From the root of this repo do:

$ make all

This command will build all the components of the operating system and generate an ISO bootable in QEMU or VirtualBox.

The compatibility with virtual box is not guaranteed, as we use QEMU primarly for debuging and testing the system.

4. Running in a virtual machine

The build system allows you to create and start a virtual machine of skiftOS by using one of the following commands:

$ make run CONFIG_VMACHINE=qemu # for QEMU
# or
$ make run CONFIG_VMACHINE=vbox # for Virtual Box

5. Tips

If you made any modification to the source code or the content of the sysroot/ directory, the build system should be able to rebuild the project from step 3 automagically :^)

You can change the default keyboard layout by passing CONFIG_KEYBOARD_LAYOUT="fr_fr" to make.

6. Using the system

How to change the keyboard layout?

µ keyboardctl en_us

How to change display resolution?

µ displayctl -s 1920x1080

How to change to wallpaper?

µ wallpaperctl /Files/Wallpapers/paint.png

7. Contributing

A bug? A Missing feature? Please consider contributing to the project 🤗 ❤️

See contributing.md