The officially official Devuan Forum!

You are not logged in.

#1 Freedom Hacks » autopkgtest qemu test » 2021-05-08 09:42:31

Replies: 0

autopkgtest is a tool for automated tests of Debian derivatives, as explained at … ime-tests/

The upstream (Debian/Ubuntu) autopkgtest assumes upstart or systemd as /sbin/init,
and some trick is needed to run automated tests on Devuan packages.
The following is steps to build a qemu testbed (other methods for running testbeds are lxc and schroot).

1. Install Devuan Chimaera (I tested only on amd64). Beowulf probably does not work.

apt-get install autopkgtest vmdb2 qemu-system-x86 qemu-system-gui qemu-utils ovmf seabios ipxe-qemu dosfstools autodep8 arch-test


 autopkgtest-build-qemu --arch amd64 --mirror --script /root/ --size 25G ceres /var/tmp/ceres-amd64.qcow2

A testbed of Devuan Ceres amd64 is made. This command should produce the following output:

Load spec file /tmp/tmprmuimhb9/vmdb2.yaml
Exec: ['dpkg', '--print-architecture']
Exec: ['qemu-img', 'create', '-f', 'raw', '/var/tmp/ceres-amd64.qcow2.raw', '25G']
Exec: ['parted', '-s', '/var/tmp/ceres-amd64.qcow2.raw', 'mklabel', 'msdos']
Exec: ['parted', '-m', '/var/tmp/ceres-amd64.qcow2.raw', 'print']
Exec: ['parted', '-s', '/var/tmp/ceres-amd64.qcow2.raw', '--', 'mkpart', 'primary', 'ext2', '0%', '100%']
Exec: ['parted', '-m', '/var/tmp/ceres-amd64.qcow2.raw', 'print']
Exec: ['kpartx', '-asv', '/var/tmp/ceres-amd64.qcow2.raw']
remembering /dev/mapper/loop0p1 as root
Exec: ['/sbin/mkfs', '-t', 'ext4', '/dev/mapper/loop0p1']
Exec: ['mount', '/dev/mapper/loop0p1', '/tmp/tmpqwh8w58o']
Exec: ['debootstrap', '--variant', '-', 'ceres', '/tmp/tmpqwh8w58o', '']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'apt-get', 'update']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'apt-get', 'update']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'apt-get', '-y', '--no-show-progress', 'install', 'eatmydata']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'eatmydata', 'apt-get', 'update']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'eatmydata', 'apt-get', '-y', '--no-show-progress', 'install', 'linux-image-amd64', 'ifupdown']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'apt-get', 'clean']
Installing GRUB for BIOS
Exec: ['mount', '--bind', '/dev', '/tmp/tmpqwh8w58o/dev']
Exec: ['mount', '--bind', '/sys', '/tmp/tmpqwh8w58o/sys']
Exec: ['mount', '--bind', '/proc', '/tmp/tmpqwh8w58o/proc']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'apt-get', '-y', '--no-show-progress', 'install', 'grub-pc']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'grub-mkconfig', '-o', '/boot/grub/grub.cfg']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'grub-install', '--target=i386-pc', '--no-nvram', '--force-extra-removable', '--no-floppy', '--modules=part_msdos part_gpt', '--grub-mkdevicemap=/boot/grub/', '/dev/loop0']
Exec: ['chroot', '/tmp/tmpqwh8w58o', 'sh', '-ec', "passwd --delete root\nuseradd --home-dir /home/user --create-home user\npasswd --delete user\necho host > /etc/hostname\necho '\thost' >> /etc/hosts"]
Exec: ['sh', '-ec', 'rootdev=$(ls -1 /dev/mapper/loop* | sort | tail -1)\nuuid=$(blkid -c /dev/null -o value -s UUID "$rootdev")\necho "UUID=$uuid / ext4 errors=remount-ro 0 1" > "$ROOT/etc/fstab"']
Exec: ['sh', '-ec', '/usr/share/autopkgtest/setup-commands/setup-testbed "$ROOT"']
Exec: ['sh', '-ec', '/root/ "$ROOT"']
Exec: ['kpartx', '-dsv', '/var/tmp/ceres-amd64.qcow2.raw']
All went fine.

4. Run test scripts in a selected package on the made testbed, e.g.

 autopkgtest -u user -B gpsd  -- qemu /var/tmp/ceres-amd64.qcow2 


The script in Step 3 is

chroot $1 apt-get -q -y update
chroot $1 apt-get -q -y --purge --autoremove install sysvinit-core sysvinit sysvinit-utils sysv-rc init initscripts devuan-keyring debian-keyring gpg libpam-elogind eudev
echo 'S0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100' >>$1/etc/inittab

#2 ARM Builds » Playing YouTube on RPi4B with task-xfce-desktop » 2021-03-27 03:07:35

Replies: 0

Dear Devuan ARM users,

As the upstream Bullseye almost frozen, I have seen if I can play YouTube video on my RPi4B 8GB with Devuan Chimaera. It was essentially a success with some tricks as follows:

  • 5GHz WiFi becomes unusable with firmware-brcm80211 version 20210208-1 and newer, as reported Debian bug #985632. 2.4GHz WiFi works fine even with Bluetooth (resolved Debian bug #984844).

  • task-gnome-xfce is installed.

  • Pulseaudio does not work with ALSA sinks brought by vc4.ko, e.g. after logging into an Xfce session, in

    set -x
    while true; do
      pacmd stat
      pacmd list-sinks
      pacmd exit
      pulseaudio --start --log-target=syslog

    every command gets stuck or fails (Debian bug #985928). A workaround is preventing pulseaudio from touching the ALSA sinks brought by vc4.ko. In /etc/pulse/

    • Comment out load-module module-udev-detect and load-module module-detect.

    • Add load-module module-alsa-card device_id=2 assuming snd_bcm2835 has device ID 2 in /proc/asound/cards.

  • A YouTube video can be played by the Firefox ESR with unnoticeable drop of frames and unnoticeable degradation of textures. Audio is fine with HDMI output. Load average is around 4. 1.3 GB of memory is used by all the processes and 1.1 GB memory is used by buffer cache. So, 4GB model should be enough.

Devuan is booted from USB SSD, and installation was done by … and …

I hope this being somewhat interesting to the Devuan ARM users.

#3 Hardware & System Configuration » disabling suspend and hibernation » 2021-02-08 01:31:47

Replies: 0

As the upstream Debian 11 is almost "soft-freezed", yesterday I tried Devuan ceres on my Raspberry Pi 4B. It seems already production-quality! Impressive. (I installed Devuan ceres by then run apt-get install task-xfce-desktop.) But I saw a small inconvenience. When I push "logout" button of Xfce, I have options of "suspend" and "hibernation" as shown in the below screenshot. But neither suspend nor hibernation works. I submitted a report to the upstream Debian kernel package as … bug=982167.

For a while, it may be better to disable system-wide suspend and hibernation on hardwares on which suspend or hibernation is broken. I found a method to disable them on Debian wiki as … ibernation, but it does not apply to Devuan. Although I met this issue on RPi, it is not an RPi specific issue.

My question is: What is a proper Devuan way to disable suspend and hibernation, for example, on Xfce?

Screenshot of suspend and hibernation

#4 Re: ARM Builds » Is any work planned for devuan on the raspberry pi 4? » 2020-12-02 23:18:17

but wasn't able to connect to it again after update.

The recent version of raspi-firmware has a bug deleteing arm_64bit=1 from config.txt in its upgrade and installation, as reported at … bug=975943. This bug makes linux-image-arm64 completely unbootable. Manually adding arm_64bit=1 to config.txt in the first DOS partition of an SD card make it bootable again...

#5 Devuan » QEMU autopkg testbed for Devuan » 2020-11-20 09:32:59

Replies: 0

Hi everyone,

For me it has been a bit difficult to build QEMU autopkg testbed for Devuan
(and Debian with sysvinit-core as /sbin/init).
Is it easy for you??

I made my own shell script to build a QEMU autopkg testbed for Devuan at … u-debiansh

A built image is placed at … md64.qcow2
(400 MB qcow2 image of 25 GB disk image).

With the above image and after installing ovmf and qemu-system-x86 packages,
I was able to test Devuan Ceres's apt as

autopkgtest-5.15 -B -u debci apt -- qemu --efi -q qemu-system-x86_64 --qemu-options "-machine q35" /var/tmp/autopkgtest-ceres-amd64.qcow2

It gave no error!

#6 ARM Builds » QEMU Image Builder » 2020-11-03 06:32:23

Replies: 0

I made a shell script for building Devuan image usable by QEMU (qemu-system-aarch64 or qemu-system-arm) at
I was able to build and boot images of Devuan Chimaera armel and Devuan Beowulf arm64. Other combinations of releases and architectures should also work. Host CPU can be anything, but recent ARM CPUs allow much faster QEMU emulation by KVM. The script just apt-get linux-image-arm64 (or linux-image-armmp-lpae) and grub-efi-aarch64 (or grub-efi-arm) to the image. It does nothing special.

#7 Re: ARM Builds » beowulf Raspberry Pi build, not responding » 2020-10-14 00:01:44

By the help of raspi3-firmware Devuan package, building an SD card image
has become much easier than before, for example  (can build Devuan image) … sh;hb=HEAD

Building one's own image may be a good alternative to download an image and write it to an SD card.

By the way, as far as I know, u-boot.bin can be bypassed with recent versions of mainline Devuan/Debian kernels.

#8 Re: ARM Builds » beowulf Raspberry Pi build, not responding » 2020-10-12 21:07:45

I and C0rnelious,
told you about it not being honouring the bootargs..
Tha's why we went with a udev rule..
But I haven't found a better way

FYI, Devuan Chimaera linux-image-rpi, linux-image-armmp, linux-image-armmp-lpae,
and linux-image-arm64 packages allows almost the same boot process with Rasibian OS,
by the help of raspi3-firmware package (in Devuan).
Thus  they use cmdline.txt.

Devuan Beowulf should be the same except Raspberry Pi 4, which needs
very recent kernels (e.g. 5.8).

To make a bootable filesystem, qemu-debootstrapping the following packages is enough:


#9 Re: ARM Builds » beowulf Raspberry Pi build, not responding » 2020-10-11 00:55:59

Hi hoopdriver, thank you for your reply and sorry for my comment being of no help.
It is beyond my understanding how cmdline.txt has no effect...
A possibility is that /boot/cmdline.txt and cmdline.txt in the first FAT partition of your SD card are different.
What is the output of "df"?? Where the first FAT partition is mounted?

If you don't mind Devuan Chimaera, you can try another image … mal.img.xz
with the minimal set of packages, empty /etc/network/interfaces
and root password=root. cmdline does have an effect and exists in /boot/firmware/cmdline.txt

#10 Re: ARM Builds » beowulf Raspberry Pi build, not responding » 2020-10-10 00:41:48

The major problem I had with the beowulf build was the network interface.  The target machine is remote and dead and I don't know what the MAC address is so I have had to fiddle with /etc/udev to name the interfaces to something sensible rather than base the name on the mac address.

Adding net.ifnames=0 to cmdline.txt should solve the problem, as written at … et_it_back

Raspberry Pi OS and Debian SD card images have net.ifnames=0 in cmdline.txt.
I am wondering why Devuan dropped it...

Devuan SD card images built by my script
also have net.ifnames=0, as the Devuan raspi-firmware package adds net.ifnames=0 to cmdline.txt.

#11 Re: ARM Builds » Is any work planned for devuan on the raspberry pi 4? » 2020-10-08 00:28:50

I posted an SD card image builder script for RPi series at
A created SD card works fine on RPi 4B 8GB model.

Edit: Built SD card images are available at … sp=sharing

#13 Re: ARM Builds » unofficial SD card images and their builder for RPi series (inc. RPi4) » 2020-10-07 05:37:39

I have no experience with ARM 32-bit computers, but Devuan Chimaera (arm64) seems to work fine on RPi 4B 8GB model.

#14 Re: ARM Builds » unofficial SD card images and their builder for RPi series (inc. RPi4) » 2020-10-06 23:35:41

I mean, if you are on x86, debootstraping for lets say arm64?

Thanks for your interest. Yes. mmdebstrap can handle different host and target architectures.
I am using an Intel laptop, and I can build a bootable filesystem of arm64 (and armhf, armeb etc...).
It is similar to qemu-debootstrap.

mmdebstrap can also install 64-bit kernel linux-image-arm64 and 32-bit armhf binaries by
giving --arcitectures=armhf,arm64. But due to the bug (?) in raspi-firmware … bug=971748
the resulting SD card does not boot (manual fix required to the SD card).

On the other hand, armhf emulation on Intel had been a bit buggy. One might
need a newer versions of qemu-user-static for armhf emulation.
Devuan qemu-user-static 5.1 or later are fine.

#15 ARM Builds » unofficial SD card images and their builder for RPi series (inc. RPi4) » 2020-10-06 08:25:57

Replies: 6

Edit: A bug-fixed version is available at
Edit: Built images are available at … sp=sharing

Hi everyone,

I made an automated shell script for building an SD card image
of pure Devuan Chimaera for Raspberry Pi 4 (and maybe 0, 1, 2, and 3)
as follows. It runs on a (Intel/AMD) computer with an SD card slot running Devuan
(or Debian or Ubuntu) with recent versions of qemu-user-static and
mmdebstrap packages. I tested it only on Raspberry Pi 4B (8GB model).
Created SD card does not have GUI, and it can be installed by tasksel etc.

An SD card should be accessible as /dev/mmcblk0, otherwise change the script.
The following script should be run as root.


apt-get -q -y install mmdebstrap qemu-user-static binfmt-support
mkdir /mnt /mnt2 2>/dev/null

echo -n "Swap partition size in GB, 0 means no swap partition: "

#dd if=/dev/zero of=$IMGFILE count=1 seek=`expr 4096 \* 1024 - 1`
#losetup -l
fdisk $DEVFILE <<EOF


partx $DEVFILE
if [ $SWAPGB -gt 0 ]; then
  fdisk $DEVFILE <<EOF

partx $DEVFILE
  mkswap -f -L RASPISWAP ${DEVFILE}p3
echo -n "Filesystem type of the root partition (ext4 or btrfs): "

echo -n "Variant of mmdebstrap (apt, required, important, or standard): "
cat <<EOF
Explanation of architectures:
armeb for Raspberry Pi Zero, Zero W and 1,
armhf for Raspberry Pi 2,
arm64 for Raspberry Pi 3 and 4.
32-bit kernel is unsupported on 64-bit ARM CPUs.
#echo -n 'Architecture ("armeb", "armhf", "arm64", or "armhf,arm64"):'
echo -n 'Architecture ("armeb", "armhf", or "arm64"):'
if [ $MMDEBARCH == armeb ]; then
elif [ $MMDEBARCH == armhf ]; then
echo "Selected kernel package is $KERNELPKG."
mount -o async,lazytime,discard,noatime ${DEVFILE}p2 /mnt
mmdebstrap --architectures=$MMDEBARCH --variant=$MMVARIANT --components="main contrib non-free" --include=${KERNELPKG},eudev,kmod,e2fsprogs,btrfs-progs,sysvinit-core,locales,tzdata,apt-utils,whiptail,ifupdown,wpasupplicant,crda,raspi-firmware,firmware-brcm80211,firmware-linux-free,firmware-misc-nonfree,keyboard-configuration,console-setup chimaera /mnt

mkfs.vfat -v -F 32 -n RASPIFIRM ${DEVFILE}p1
mount -o async,discard,lazytime,noatime ${DEVFILE}p1 /mnt2
cp -Rp /mnt/boot/firmware/* /mnt2
rm -rf /mnt/boot/firmware/*
umount /mnt2
mount -o async,discard,lazytime,noatime ${DEVFILE}p1 /mnt/boot/firmware

echo -n "Choose hostname: "
echo "$YOURHOSTNAME" >/mnt/etc/hostname
cat >/mnt/etc/fstab <<EOF
LABEL=RASPIROOT / ${FSTYPE} rw,async,lazytime,discard 0 1
LABEL=RASPIFIRM /boot/firmware vfat rw,async,lazytime,discard 0 2
if [ $SWAPGB -gt 0 ]; then
  echo 'LABEL=RASPISWAP none swap sw,discard 0 0' >>/mnt/etc/fstab

echo "IPv4 DHCP is assumed. Otherwise edit /etc/network/interfaces"
echo -n "Name of the primary network interface (eth0, wlan0, none): "
read NETIF

if [ $NETIF != none ]; then
  cat >>/mnt/etc/network/interfaces <<EOF
auto $NETIF
iface $NETIF inet dhcp
  if [ $NETIF == wlan0 ]; then
    echo -n "Your Wireless LAN SSID: "
    read SSID
    echo -n "Your Wireless LAN passphrease: "
    read PSK
    cat >>/mnt/etc/network/interfaces <<EOF
    wpa-ssid $SSID
    wpa-psk $PSK

set -x
#chroot /mnt pam-auth-update
chroot /mnt passwd root
chroot /mnt dpkg-reconfigure tzdata
chroot /mnt dpkg-reconfigure locales
chroot /mnt dpkg-reconfigure keyboard-configuration

#chroot /mnt apt-get -y --purge --autoremove purge python2.7-minimal

echo 'console=tty0 console=ttyS1,115200 root=LABEL=RASPIROOT rw net.ifnames=0 rootwait' >/mnt/boot/firmware/cmdline.txt

umount /mnt/boot/firmware/
umount /mnt

Board footer

Forum Software