You are not logged in.
Pages: 1
autopkgtest is a tool for automated tests of Debian derivatives, as explained at
https://www.kali.org/docs/development/c … 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.
2.
apt-get install autopkgtest vmdb2 qemu-system-x86 qemu-system-gui qemu-utils ovmf seabios ipxe-qemu dosfstools autodep8 arch-test
3.
autopkgtest-build-qemu --arch amd64 --mirror http://deb.devuan.org/merged --script /root/setup-devuan-autopkgtest.sh --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', 'http://deb.devuan.org/merged']
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/device.map', '/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 '127.0.1.1\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/setup-devuan-autopkgtest.sh "$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 setup-devuan-autopkgtest.sh in Step 3 is
#!/bin/sh
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
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
#!/bin/sh
set -x
while true; do
pacmd stat
pacmd list-sinks
pacmd exit
pulseaudio --start --log-target=syslog
done
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/default.pa
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 https://youtu.be/NCqNDjntd3E 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
https://github.com/emojifreak/debian-rp … builder.sh and
https://github.com/emojifreak/debian-rp … -devuan.sh.
I hope this being somewhat interesting to the Devuan ARM users.
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 https://github.com/emojifreak/debian-rpi-image-script 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 https://bugs.debian.org/cgi-bin/bugrepo … 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 https://wiki.debian.org/Suspend#Disable … 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?
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 https://bugs.debian.org/cgi-bin/bugrepo … 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...
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
https://github.com/emojifreak/qemu-arm- … u-debiansh
A built image is placed at
http://153.240.174.134:64193/tmp/autopk … 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!
I made a shell script for building Devuan image usable by QEMU (qemu-system-aarch64 or qemu-system-arm) at
https://github.com/emojifreak/qemu-arm-image-builder
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.
By the help of raspi3-firmware Devuan package, building an SD card image
has become much easier than before, for example
https://raspi.debian.net/daily-images/
https://github.com/emojifreak/debian-rpi-image-script (can build Devuan image)
https://evolvis.org/plugins/scmgit/cgi- … 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.
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:
linux-image-rpi,
sysvinit-core,
eudev,
kmod,
e2fsprogs,
raspi3-firmware,
firmware-brcm80211
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
http://153.240.174.134:64193/devuan-chi … 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
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
https://wiki.debian.org/NetworkInterfac … 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 https://github.com/emojifreak/debian-rpi-image-script
also have net.ifnames=0, as the Devuan raspi-firmware package adds net.ifnames=0 to cmdline.txt.
I posted an SD card image builder script for RPi series at
http://dev1galaxy.org/viewtopic.php?id=3871
A created SD card works fine on RPi 4B 8GB model.
Edit: Built SD card images are available at https://drive.google.com/drive/folders/ … sp=sharing
I forgot to include isc-dhcp-client package in my above script. A corrected one is available at https://github.com/emojifreak/debian-rpi-image-script
I have no experience with ARM 32-bit computers, but Devuan Chimaera (arm64) seems to work fine on RPi 4B 8GB model.
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
https://bugs.debian.org/cgi-bin/bugrepo … 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.
Edit: A bug-fixed version is available at https://github.com/emojifreak/debian-rpi-image-script
Edit: Built images are available at https://drive.google.com/drive/folders/ … 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.
#!/bin/bash
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: "
read SWAPGB
DEVFILE=/dev/mmcblk0
#DEVFILE=/dev/loop2
#rm $IMGFILE
#dd if=/dev/zero of=$IMGFILE count=1 seek=`expr 4096 \* 1024 - 1`
#losetup -P $DEVFILE $IMGFILE
#losetup -l
fdisk $DEVFILE <<EOF
o
n
p
1
+256M
a
t
c
n
p
2
-${SWAPGB}GiB
p
w
EOF
partx $DEVFILE
if [ $SWAPGB -gt 0 ]; then
fdisk $DEVFILE <<EOF
n
p
3
t
3
82
p
w
EOF
partx $DEVFILE
mkswap -f -L RASPISWAP ${DEVFILE}p3
fi
echo -n "Filesystem type of the root partition (ext4 or btrfs): "
read FSTYPE
eval mkfs.${FSTYPE} -L RASPIROOT ${DEVFILE}p2
echo -n "Variant of mmdebstrap (apt, required, important, or standard): "
read MMVARIANT
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.
EOF
#echo -n 'Architecture ("armeb", "armhf", "arm64", or "armhf,arm64"):'
echo -n 'Architecture ("armeb", "armhf", or "arm64"):'
read MMDEBARCH
if [ $MMDEBARCH == armeb ]; then
KERNELPKG=linux-image-rpi
elif [ $MMDEBARCH == armhf ]; then
KERNELPKG=linux-image-armmp-lpae
else
KERNELPKG=linux-image-arm64
fi
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 http://deb.devuan.org/merged/
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: "
read YOURHOSTNAME
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
EOF
if [ $SWAPGB -gt 0 ]; then
echo 'LABEL=RASPISWAP none swap sw,discard 0 0' >>/mnt/etc/fstab
fi
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
EOF
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
EOF
fi
fi
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 fsck.repair=yes net.ifnames=0 rootwait' >/mnt/boot/firmware/cmdline.txt
umount /mnt/boot/firmware/
umount /mnt
Pages: 1