Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/redox-os/redox/llms.txt

Use this file to discover all available pages before exploring further.

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.