Files
2026-06-15 19:20:24 +02:00

3.0 KiB

Building Linux for ReviveSparc

This guide covers building and booting a Linux kernel on the ReviveSparc emulator.

Supported Kernels

Kernel Version Status Notes
6.12+ Full All features working
6.6 LTS Full Recommended for production
6.1 LTS Full Older but stable
5.15 LTS Partial No SMP support

Cross-Compilation Setup

Install a SPARC64 cross-compiler:

# Debian/Ubuntu
sudo apt install gcc-sparc64-linux-gnu

# Fedora
sudo dnf install cross-gcc-sparc64-linux-gnu

# Build from source (see toolchain guide)
./tools/build-toolchain.sh --target=sparc64-linux-gnu

Building the Kernel

Get the Source

git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git checkout v6.12

Apply ReviveSparc Patches

# From the ReviveSparc repository
./tools/apply-kernel-patches.sh /path/to/linux

Configure

make ARCH=sparc64 CROSS_COMPILE=sparc64-linux-gnu- revivesparc_defconfig

Or customize:

make ARCH=sparc64 CROSS_COMPILE=sparc64-linux-gnu- menuconfig

Build

make ARCH=sparc64 CROSS_COMPILE=sparc64-linux-gnu- -j$(nproc)

The kernel image is at arch/sparc64/boot/image and vmlinux (ELF).

Building an Initramfs

Create a minimal root filesystem:

# Create a simple init script
cat > init << 'EOF'
#!/bin/busybox
/bin/busybox --install -s
mount -t proc proc /proc
mount -t sysfs sysfs /sys
echo "Welcome to ReviveSparc Linux!"
exec /bin/sh
EOF

# Create the initramfs
mkdir -p rootfs/{bin,proc,sys,dev,etc}
cp init rootfs/
cp /path/to/busybox rootfs/bin/

# Package it
cd rootfs
find . | cpio -H newc -o | gzip > ../initramfs.gz

Booting

./sparc-emu \
    -kernel vmlinux \
    -initrd initramfs.gz \
    -append "console=ttyS0,115200 root=/dev/ram rdinit=/init" \
    -nographic

Command-Line Options

Option Description
-kernel Path to the kernel vmlinux
-initrd Path to the initramfs image
-append Kernel command line
-nographic No graphical output (serial console)
-m Memory size (e.g., -m 512M)
-smp Number of cores (e.g., -smp 4)
-net Network backend (e.g., -net user)

Booting with Device Tree

ReviveSparc provides a device tree blob (DTB) for the emulated platform:

./sparc-emu \
    -kernel vmlinux \
    -dtb revivesparc.dtb \
    -initrd initramfs.gz \
    -append "console=ttyS0,115200" \
    -nographic

Building for NetBSD

# Build a SPARC64 NetBSD kernel
cd /usr/src
./build.sh -m sparc64 -U kernel=GENERIC

# Run under ReviveSparc
./sparc-emu \
    -kernel netbsd-sparc64 \
    -append "console=com0" \
    -nographic

Building for OpenBSD

# Build a SPARC64 OpenBSD kernel
cd /usr/src
make -C sys/arch/sparc64/conf GENERIC
config GENERIC
cd ../compile/GENERIC
make

# Run under ReviveSparc
./sparc-emu \
    -kernel bsd.sparc64 \
    -nographic