How to install Devuan on a Raspberry Pi


Neofetch of an overclocked Raspberry Pi 2B running Devuan with 6.0.10 kernel

Download the Devuan Raspberry Pi Image

The Devuan community regularly builds headless images for the ARM architectures, they also provide images for all Raspberry Pi models. You can download them at: https://arm-files.devuan.org/RaspberryPi Latest Builds/

As far as I know, these come with the runit init system.

Flash the image

I recommend using the official Raspberry Pi Imager (source code), but you are free to use whatever you like.

1. Open the Raspberry Pi Imager

Raspberry Pi Imager

2. Select the Devuan Image

Raspberry Pi Imager Raspberry Pi Imager

3. Select the micro SD card

Raspberry Pi Imager Raspberry Pi Imager

4. Flash the drive

Raspberry Pi Image Raspberry Pi Image

After the flashing has finished, just pop back the micro SD card into your Raspberry Pi, and it should boot normally.

To enable SSH you need to create an empty file named ssh in the boot partition.

Post Install

You can log into the system as root or as the devuan sudoer using toor and devuan as passwords, respectively, although you can only SSH as devuan.

After logging in, you should get a screen similar to this:

$ ssh devuan@devuanpi
devuan@devuanpi's password:
   Devuan GNU/Linux 4 (chimaera) 6.0.10 #1 Thu Dec 1 21:23:45 EST 2022 armv7l

 ___                           ___ _
|   \ _____ ___  _ __ _ _ _   | _ (_)
| |) / -_) V / || / _` | ' \  |  _/ |
|___/\___|\_/ \_,_\__,_|_||_| |_| |_|


== DISK
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2   30G  1.3G   27G   5% /
/dev/mmcblk0p1  256M   46M  211M  18% /boot

== NETWORK
Hostname:    devuanpi
Wired:       eth0 UP 192.168.1.158

== SYSTEM
Processor:   Cortex-A7 @ 1000MHz 49.2°C
Governor:    performance
Memory:      922M 51M
Entropy:     256
Uptime:      13:28:59 up 14 min, 1 user, load average: 0.00, 0.00, 0.00

Last login: Fri Feb  3 01:17:39 2023
devuan@devuanpi:~$

You should also run the following command:

devuan@devuanpi:~$ menu-config

It presents you with a menu, from which you can quickly configure things such as the timezone, network, or the kernel governor.

Edit#0 | Feb 4 2023

Some time after flashing the rpi-2+3-devuan-chimaera-5.10.110-armhf-ext4-2023-02-02.zip image I have experienced kernel panics, random system freezes, dpkg compression errors, network errors, and weird text console behavior over SSH, these might’ve been caused by:

After having experienced these errors I deemed the system as unusable and tried installing Devuan Daedalus (testing) as opposed to Chimaera using the following image: rpi-2+3-devuan-daedalus-5.18.19-armhf-ext4-2023-01-15.zip

All the problems are gone as of now, and the only warning I got was after an apt upgrade:

(Reading database ... 70014 files and directories currently installed.)
Preparing to unpack .../dpkg_1.21.19_armhf.deb ...
Unpacking dpkg (1.21.19) over (1.21.17) ...
Setting up dpkg (1.21.19) ...
dpkg: warning: This system uses merged-usr-via-aliased-dirs, going behind dpkg\'s
dpkg: warning: back, breaking its core assumptions. This can cause silent file
dpkg: warning: overwrites and disappearances, and its general tools misbehavior.
dpkg: warning: See <https://wiki.debian.org/Teams/Dpkg/FAQ#broken-usrmerge>.

Let’s hope it’s harmless in the long run.

Edit#0 | Feb 4 2023

The dpkg problems have returned, it seems like multiple armhf packages have been corrupted in such a way that dpkg can’t unpack them (dpkg-deb curiously works though). I tried switching to a mirror (http://sledjhamr.org/devuan/merged) and changing the suite to Chimaera (because Daedalus had the same corrupted packages). This seemed to work fine for the time being, but ended up failing because /var/lib/dpkg/status had a couple of random characters inserted throughout it (how does that even happen?!). Anyway, halfway through the bug report, I tried fixing up the status file and removing nala (a pretty apt wrapper), after that and switching back to the “faulty” package repository, I once again tried installing and upgrading stuff and it surprisingly worked, couple minutes passed and the problems made themselves known again, I don’t know what happened or why some archives are still getting corrupted.

In the meantime I’ve switched to Alpine Linux, where the packages are handled by the apk package manager. I installed Alpine in sys mode (default is diskless) with the help of the Alpine Linux wiki article on how to do just that.

Everything seems to be running just fine, let’s just hope it stays that way.

Edit#1 | July 23 2024

I switched to Raspberry Pi OS, because the packages available are more up to date compared to Alpine’s arm repository.