[2025-jun-17] The SlackDocs Wiki has moved to a new server, in order to make it more performant.
Table of Contents
Slackware ARM project web site | Forum | Slackware ARM development documentation | Slackware ARM installation guides
Raspberry Pi5: Slackware AArch64 Installation
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.