Skip to main content
This guide provides comprehensive installation instructions for setting up the Redox OS build environment on various platforms.

System Requirements

Disk Space

At least 10-20 GB free for build artifacts

RAM

Minimum 4 GB, 8 GB+ recommended

CPU

Multi-core processor recommended for faster builds

Network

Stable internet for downloading sources

Supported Platforms

Redox can be built on:
  • Linux: Arch, Ubuntu, Debian, Fedora, openSUSE, Gentoo, Solus
  • BSD: FreeBSD, macOS (Homebrew or MacPorts)
  • Experimental: Redox OS itself (bootstrapping)
macOS Users: Native builds require kernel extensions (FUSE). The Podman build method is strongly recommended for macOS.

Installation Methods

Build System Architecture Selection

Use build.sh for architecture-specific builds:
# x86_64 (default)
./build.sh -X -c desktop qemu

# ARM64 / aarch64  
./build.sh -A -c desktop qemu

# i586 (32-bit x86)
./build.sh -5 -c desktop qemu

# RISC-V 64-bit
./build.sh -R -c desktop qemu

Configuration Profiles

  • desktop: Full desktop environment with COSMIC apps
  • server: Server configuration, minimal GUI
  • demo: Demonstration configuration
Custom configs are in config/<ARCH>/<CONFIG>.toml

Makefile Targets Reference

make all              # Build harddrive.img
make live             # Build bootable ISO (redox-live.iso)
make popsicle         # Create bootable USB with Popsicle
make image            # Clean and rebuild images
make rebuild          # Full rebuild (removes repo.tag)
make clean            # Remove build artifacts
make distclean        # Clean including fetched sources
make pull             # Update repository
make repo             # Build repository tag
make env              # Enter build environment shell
make qemu             # Run in QEMU
make virtualbox       # Run in VirtualBox
make gdb              # Debug kernel with GDB
make wireshark        # Analyze network capture

Configuration Variables

Edit .config or set as environment variables:
# Build method
PODMAN_BUILD?=1        # Use Podman (1) or native (0)

# Binary packages for faster builds
REPO_BINARY=1

# SELinux support (Fedora/RHEL)
USE_SELINUX=1          # Set to 0 if not using SELinux

# Architecture (auto-detected or override)
ARCH=x86_64            # x86_64, aarch64, i586, riscv64gc

# Configuration name
CONFIG_NAME=desktop    # desktop, server, demo, or custom

# Filesystem configuration
FILESYSTEM_CONFIG=config/x86_64/desktop.toml

Troubleshooting

If you encounter build errors on non-SELinux systems:
make all USE_SELINUX=0
Or add to .config:
echo 'USE_SELINUX?=0' >> .config
Manual Rustup installation:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default stable
Linux: Ensure FUSE 3 is installed
# Ubuntu/Debian
sudo apt install fuse3 libfuse3-dev

# Fedora
sudo dnf install fuse3 fuse3-devel
FreeBSD: Load kernel module
sudo kldload fuse
Add user to Podman group (Linux):
sudo usermod -aG podman $USER
# Log out and back in
Clean build artifacts:
make clean
Remove all downloaded sources:
make distclean
Native macOS builds are not recommended. The toolchain requires FUSE kernel extensions.Solution: Use Podman build instead:
bash podman_bootstrap.sh -e qemu

Development Best Practices

Keep Build System Updated

cd redox
git pull upstream master

Log Build Errors

make all 2>&1 | tee build.log

Local Recipe Changes

Disable auto-updates for modified recipes:See Configuration Settings

Update initfs

After modifying drivers or system components:See Coding and Building

Debugging the Build

GDB Integration

Debug the kernel:
make qemu &  # Start QEMU with GDB stub
make gdb     # Connect debugger
The debugger connects to localhost:1234 and loads symbols from:
recipes/core/kernel/target/<TARGET>/build/kernel.sym
Set RUST_GDB=gdb-multiarch when debugging for architectures different from your host.

Network Analysis

Capture and analyze network traffic:
make qemu  # QEMU creates network.pcap
make wireshark

Advanced Configuration

Custom Filesystem Config

Create custom TOML configuration:
cp config/x86_64/desktop.toml config/x86_64/myconfig.toml
# Edit myconfig.toml
./build.sh -X -f config/x86_64/myconfig.toml all

Environment Shell

Enter build environment with correct PATH:
make env
This spawns a shell with:
  • Cross-compiler tools in PATH
  • All build dependencies accessible
  • Environment variables configured

Next Steps

Quick Start

Fast-track guide to building Redox

Contributing

Contribute to Redox development

Build System Reference

Detailed build system documentation

Developer FAQ

Common development questions

Getting Support

If you encounter issues:
  1. Check logs: Always save build output with 2>&1 | tee log.txt
  2. Search issues: GitLab Issues
  3. Ask on chat: Matrix or Discord
  4. Read docs: Redox Book
Post issue links in the Dev or Support chat rooms to avoid them being forgotten due to email notification noise.

Build docs developers (and LLMs) love