[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

Raspberry Pi5: Slackware AArch64 Installation

The official Raspberry Pi support is complete for the Raspberry Pi 3, Raspberry Pi 4, Raspberry Pi 5. The project offers a first-party tailored Slackware Installer image for the Raspberry Pi to streamline the installation process.

The Installation guide for Slackware Linux AArch64 for the Raspberry Pi.

Raspberry Pi5: Slackware AArch64 integration - development notes

The following are the integration notes made during development. These are preserved for posterity as they are useful for future Hardware Model integrations.

Document RPi5 integration notes for SlackAArch64
Authors mozes@slackware, el0226@slackware

RPi5 hardware for development

This is the provisional hardware list for the RPi5 that will be used to develop and test Slackware AArch64 on the RPi5.

Requirements
  • A case that accommodates the fan
  • A suitable cooling fan to handle continuous workload (it's part of the build farm - hours of compiling, utilizing all cores)
  • NVMe storage
Item Specification/Type Notes
Raspberry PI 5 16GB RAM
PSU 27W USB-C PSU
RTC battery
Micro HDMI to HDMI adapter Micro → standard HDMI adapter
Storage
Item Specification/Type Notes
NVME board SupTronics X1001 NVMe SSD Add-on for Raspberry Pi 5 supports 2280/2260/2242/2230 SSDs over PCIe 2.0/3.0 with speeds up to 8Gbps. Designed to fit with the official Active Cooler, it includes mounting hardware, an activity LED, and supports SSD booting. Will pair with the active cooler
NVME Storage Module Minimum useful size (contains OS and user data): 30GB
Cases - integrated

I need a case that has space for the NVME and cooler to support the RPi under heavy workloads.

Item Specification/Type Notes
Includes space for NVME board NVME case
Official/standard cooler This cooler would pair with the NVME board & the case in the row above ..but is it sufficient for heavy workloads?

Integration milestones

Milestone 0: RPi5 Hardware

Test / Dev item Status
Purchase RPi5 hardware Complete
Assemble hardware & boot test

Milestone 1: Native BL - Test booting mainline Slackware Kernel

Test / Dev item Status
Boot OS with mainline Linux Kernel Done
Boot OS with RPi Slackware Kernel fork package Done
Boot Installer with mainline Linux Kernel Done
Why ?
  • RPi5's with an older BL31 in EEPROM can't boot U-Boot. Using the native BL to boot the Slackware Installer enables a frictionless experience.
  • Onboard new RPi Hardware Models quickly: no need to wait for U-Boot support nor upstream Kernels. SAIR can be used to create an experimental image.
  • Helps with troubleshooting any issues caused by the Boot Loader - rule out one boot loader or the other
Implementation notes

During post installation, the user will be provided the opportunity with a strong suggestion that they upgrade the firmware in order to boot. This enables us to boot U-Boot and use the common Slackware booting workflow.

U-Boot remains configured correctly during installation, and a few commands will be required to migrate to U-Boot later.

Milestone 2: Migrate RPi4 to native BL

Why ?

The native BL must boot on the RPi4 as we want consistency between Hardware Models. It's only needed on the RPi5 at the moment but we want consistency.

Test / Dev item Status
Create post install native BL configurator. Done
Implementation notes
  • Run after the U-Boot configurator, pull the APPEND line from u-boot extlinux.conf to populate the cmdline.txt
  • Configurator will also enable configuring to boot Slackware with the native BL - Kernel cmdline + feature flag in installer

Milestone 3: Build bootloader flash wrapper for the RPi eeprom update tool

Test / Dev item Status
Build bootloader flash wrapper for the RPi eeprom update tool Not needed
Test tool within the OS Not needed
Test tool within the Installer Not needed

* No need to do this now as we'll migrate to the nativeBL which means we don't need to flash from the installer. users can use the regular tool from the shell.

Milestone 4: Release new AiO images

Note: Not strictly necessary, but I want the images we'll use to create the RPi5 installer to have the latest package set. By the time we reach this milestone, it'll be a few months out of date.

Test / Dev item Status
Release new AiO images Done
Update documentation to reflect the lack of U-Boot in the initial Installer screen. Done

Milestone 5: Install Slackware on RPi5

Test / Dev item Status
Create Installer variant using SAIR (RPi Kernel fork) Done
Install RPi5 Done

Milestone 6: Continued R&D on OS packages

Test / Dev item Status
Review all package and changes required for the RPi5 - update this document
Boot Loader config tweaks

Milestone 7: Build system updates

Rename RPi assets bcm_xxxx if the RPi4 and 5 can share an Installer image, which they should.

Test / Dev item Status
Update source tree Done
Update install guide Done

If divergence is required, we can create separate images easily again.

Milestone 8: Migrate to mainline Kernel & Release officially

Test / Dev item Status
Migrate to mainline Kernel
Update install guide, Release
Instructions to migrate to mainline Kernel & U-Boot

Milestone 9: Update RPi install guide

If the RPi4 guide can serve as a generic RPi guide for other models,

  • Adjust instances of RPi4 → RPi
  • Rename document URL, make a redirect page for the old one

Future Explorations

Operate without an SD card

  • Investigate how to install without an SD card. The Installer would be delivered on an SD card, but the user could install onto other storage such as NVME, SSD, remove the SD card and boot.

I don't anticipate making the Installer assist with this in any way - the documented and supported approach will be as it currently is (Installer delivered on SD card, converts one of the partitions to the OS's /boot, and the system boots the native BL from the fat partition; OS lives on other storage), but it shouldn't inhibit someone from manually doing this. See LQ forum for brain dump on this topic

Operating System R&D

Packages that integration work

k: os-initrd-mgr - copy the OS InitRD to the RPi's native bootware partition, as we'll no longer use the version in /boot. This ideally would be done in a scalable way but presently isn't. I'll change if it necessary.

List to be done.

RPi5 Firmware already complete

a: sysvinit-scripts: add some commented code to make the battery charge on the RPi5.

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