Skip to content

Latest commit

 

History

History
93 lines (72 loc) · 2.84 KB

Building-Lemon-OS.md

File metadata and controls

93 lines (72 loc) · 2.84 KB

Building the toolchain can take an extremely long time. Consider building with Docker

Contents

Prerequisites

NOTE: Building on WSL2 is doable, however I strongly recommend an actual UNIX system.

  • A UNIX-like build system
  • Root access (to build the disk image)
  • The following packages OR Docker

Standard Setup

NOTE: It is recommended that you install meson from pip, some distributions (e.g. Ubuntu) offer outdated meson packages

Arch Linux

sudo pacman -S base-devel git cmake autoconf python3 ninja wget python-pip nasm help2man gettext gperf flex rsync git-lfs

Debian, Ubuntu, etc.

sudo apt install build-essential git cmake curl autoconf libtool python3 python3-pip ninja-build nasm help2man gettext autopoint gperf texinfo wget flex rsync git-lfs

Install pip packages

Install xbstrap through pip. meson can also be installed through pip.

python3 -m pip install xbstrap meson

Initialize xbstrap

Create a new directory called Build and run xbstrap init .. inside it.

mkdir Build
cd Build
xbstrap init ..

Toolchain

The next step is to build the toolchain.

xbstrap install-tool --all

This will build binutils, LLVM, automake, libtool and limine for Lemon OS. This will take quite a long time (Can take from 20 minutes to an hour) so you may want to go and do something else.

You may run out of RAM whilst building LLVM (especially during the linking stage), so I recommend no more than 12 compile jobs (default determined by ninja, based on CPU thread count) on 16GB of RAM I have changed the default amount parallel of linker jobs to 2. If you run out of RAM, close some memory hungry applications and re-run the command. See host-llvm in bootstrap.yml

Docker Setup

Run Scripts/docker-init.sh

Scripts/docker-init.sh

This will do the following:

  • Pull docker image
  • Initialize xbstrap
  • Extract prebuilt toolchain
  • Install toolchain

Build and run

In Build/, run xbstrap install --all, or xbstrap install lemon-base to only install the core applications and libraries.

xbstrap install lemon-base # Build and install base applications and libraries

OR

xbstrap install --all # Build and install everything

OR

xbstrap install lemon-base lemondoom # Build and install the packages you want

To build the disk image (requires root privileges) run

xbstrap run build-disk

Running with QEMU/KVM

To run with QEMU run Scripts/run.sh

Scripts/run.sh

Running with VirtualBox

To run with VirtualBox create a vm called "LemonOS". You'll need to symlink or rename Disks/Lemon.img to Disks/Lemon.hdd as VirtualBox cannot use .img files.

Scripts/run.sh vbox