[2025-jun-17] The SlackDocs mailing lists at https://lists.alienbase.nl/mailman/listinfo have been retired. No one has been using these lists for years and it's time to say goodbye. The list archives remain available at https://scalzi.slackware.nl/mailman/listinfo/slackdocs

[2025-jun-17] The SlackDocs Wiki has moved to a new server, in order to make it more performant.

Welcome to the Slackware Documentation Project

Slackware ARM project web site | Forum | Slackware ARM development documentation | Slackware ARM installation guides

Work in progress

Installing Slackware: U-Boot-based AArch64 Hardware Model

Platform AArch64/ARM64
Hardware Model Any unsupported AArch64 Hardware Model that uses the U-Boot Boot Loader
Document Version 1.00, May 2026
Author Stuart Winter <mozes@slackware>

Before Proceeding

Please check the Slackware ARM installation guides first to see if your Hardware Model is supported. If it is, refer to its installation guide.

Limitations

  • This document describes installing Slackware AArch64 to any system that uses the U-Boot Boot Loader (typically located in the SPI flash), which isn't directly supported. It's not 100% guaranteed that it'll work, but it's worth having a go :-)
  • This document does not cover installing the U-Boot Boot Loader to your Hardware Model - it assumes you already have a working version of U-Boot that is capable of locating an extlinux.conf file from SD card.

Supporting the Slackware ARM Project

If you like what we're doing here, please consider becoming a patron.

Background

U-Boot is one of the most mature and widely-used bootloaders on the ARM platform.

For supported Hardware Models, Slackware ARM provides a complete boot lifecycle: flashing a suitable version of U-Boot (configured for the particular Hardware Model) to the system's SPI flash, and supplying a Slackware Installer image that U-Boot can boot directly.

The Installers themselves are generic, but each contains targeted support for specific Hardware Models — loading the minimal set of kernel modules needed to bring the system to life (graphics, storage, networking, etc.) and applying any hardware-specific configuration (serial console access, CPU fan control, and so on).

On unsupported Hardware Models, the Installer will often still boot, but getting it fully working will require some manual effort. This document aims to help bridge the gap.

Technical Basics

The Slackware AArch64 installation guide for U-Boot-enabled Hardware Models leaves you with the U-Boot boot loader to the SPI flash, from where it is executed by the first stage boot loader.

Slackware uses the SPI flash to hold the bootloader. SPI flash devices are small in capacity — limiting their utility for other purposes — and are typically the first storage device U-Boot searches during its boot sequence.

U-Boot discovers an extlinux.conf on the storage it is able to address, and processes it. It has a hard coded list of storage devices to scan:

=> printenv boot_targets
boot_targets=mmc1 mmc0 nvme0 scsi0 usb0 pxe dhcp sf0

If U-Boot can locate an extlinux.conf on non-MMC (SD card) storage, it'll work. If not, it won't.

For more information, see this thread on the Slackware ARM forum.

Installation Procedure

You should follow the installation documentation for an existing Hardware Model.

1. To download the Slackware Installer, jump to section Software and Network Environment Setup. You can skip the section Write the Initialisation Bootware to the SD Card

2. Jump to section Write the Slackware Installer image onto the MicroSD card and follow the remaining instructions.

Wrapping up the Installation

After the installation completes, you'll be asked whether you want to enter a shell, reboot or power off the machine.

Choose shell.

Configuration Changes

Since your system is not directly supported, you will need to manually configure some elements of it.

At the Installer's shell, change directory into the OS's root file system:

$ cd /mnt

Kernel module loader

If your system booted into the Installer and was able to access your storage and light up the display, there's a good chance that you only need to make a minor configuration change:

$ nano /boot/extlinux/extlinux.conf

Locate the config line that begins with APPEND (and contains parameters such as root=LABEL=SLKroot). To the end of that line, add:

platwalk

This will load the entire set of Kernel modules for all supported Hardware Models (which is how the Installer boots). Later, you may need to create a Kernel Module Loader script for your machine if it requires modules that aren't already loaded. Please ask on the Slackware ARM forum if you need help understanding how it works.

Serial console access

The Slackware package a/sysvinit-scripts automatically configures a getty on the correct serial port.

$ nano etc/inittab

Locate the following configuration lines:

# Local serial lines:

Add this line:

s0:12345:respawn:/sbin/agetty --keep-baud 115200,38400,9600 ttyXXXX vt100

Replace ttyXXXX with the appropriate device name for your Hardware Model. Often it's ttyS2 or ttyAMA0.

Feeding Back Upstream

If you make progress that is worth sharing, please drop a note to the Slackware ARM forum and we may be able to bundle it into the project to help others and reduce the effort you need to reinstall next time!

QR Code
QR Code slackwarearm:inst_sa64_genericuboot (generated for current page)