Skip to main content

Compilation

Before you begin your compilation, you must setup the prerequisites for Ethereal's build environment

Ethereal's build environment is annoying to setup,` but once it's ready you won't have to do it again.

note

The Ethereal build environment does not officially support Linux or MacOS.

Preparing the Environment

Before you begin, you must have the Ethereal GNU Compiler Toolchain installed.
To install the toolchain, see the instructions at its repository

As well as installing the toolchain, Ethereal has a few additional requirements:

  • xorriso
  • grub, grub-pc-bin, or grub-common
  • python3
  • meson
  • ninja
  • git
caution

GRUB packages are very hit or miss. Ethereal requires the grub-mkrescue command, which is known to be faulty on some packages.

If your image does not boot, try another package.

You can use these all-in-one commands to install the prerequisites

sudo apt-get install xorriso grub-pc-bin python3 meson ninja-build git

Preparing Ethereal repository

Clone and prepare Ethereal with the following commands:

git clone https://github.com/sasdallas/Ethereal
cd Ethereal
git submodule init
git submodule update

ACPICA

ACPICA is the ACPI framework in Ethereal, created by Intel.
It allows Ethereal to shutdown the computer properly (and more but that's all it's used for it at the current moment)

caution

By default, ACPICA is enabled in Ethereal's build environment.

To enable/disable ACPICA edit conf/build/TARGET.mk (replacing TARGET with your desired build target) and change the following line:

# ACPICA settings
USE_ACPICA = 1

If you wish to use ACPICA, download the latest source here and extract it to external/acpica/acpica-src/

Additional Configuration

See buildscripts/config.sh for additional build configuration

Building Ethereal

Running make all will generate a new Ethereal image in build-output/hexahedron.iso.

Running Ethereal

Launch the ISO with the command (x86_64, 2 cores, KVM):

qemu-system-x86_64 -cdrom build-output/hexahedron.iso -enable-kvm -smp 2