You are not logged in.
This tutorial describes a unified method I use to prepare and install beowulf for various ARM boards. The tutorial works for me but might miss some important steps - please consider it WIP.
Requirements and assumptions:
ARM board supported by Kernel 4.19 (check dtb directory). This tutorial assumes you have a 32bit (armhf) board but might work with slight adaptations for arm64 as well.
working U-Boot (U-Boot is not covered in this tutorial) that is not ancient (able to boot kernels directly from ext4 partitions, support for extlinux.conf)
working serial console attached to your ARM board
Why not use the provided images on the Devuan mirrors?
there are no images for beowulf yet (installing ascii and upgrading is not what I wanted)
the images for ascii use a hard-coded, unmaintained kernel without any security updates
the images for ascii are shipped with proprietary blobs and the sources.list file includes non-free sources as well.
the images for ascii include packages not installed in the base setup that everybody might want (e.g. screen, openssh-server)
the images for ascii assume you have a separate boot partition (I don't use this installation style for ARM boards)
the images for ascii use the old-style U-Boot configuration (boot.scr and boot.cmd) that is hard to maintain.
All data and information provided in this tutorial is for informational purposes only. The author makes no representations as to accuracy, completeness, currentness, suitability, or validity of any information on this tutorial and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis.
In no event, the author or this forum will be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this tutorial.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License.
I used a devuan live environment to prepare the rootfs.
Install dependencies:
apt install binfmt-support qemu qemu-user-static debootstrap
Create directory to hold your chroot:
mkdir devuan_armhf_beowulf
Run debootstrap (might take a while):
qemu-debootstrap --arch armhf beowulf devuan_armhf_beowulf http://deb.devuan.org/merged/
After it finished, chroot into the environment:
chroot devuan_armhf_beowulf
Install the kernel package:
apt install linux-image-armmp-lpae
Create extlinux dir:
mkdir -p /extlinux
Create extlinux config file (change DEVICETREEDIR to match current kernel; TODO: Hardcoding this sucks, it's not a nice solution yet):
cat <<'EOF' >> /extlinux/extlinux.conf
TIMEOUT 20
PROMPT 1
DEFAULT devuan
LABEL devuan
MENU LABEL Linux devuan
KERNEL /vmlinuz
INITRD /initrd.img
DEVICETREEDIR /usr/lib/linux-image-4.19.0-4-armmp-lpae
APPEND root=/dev/mmcblk0p1
EOF
Activate the serial console (if your machine has a console other than ttyS0 adapt it):
echo "T1:12345:respawn:/sbin/agetty -L ttyS0 115200 vt100" >> /etc/inittab
Set the root password:
passwd
Basically, that's it for building the chroot.
To boot the system, create a primary partition on your storage (e.g. microSD card) and copy the stuff from the chroot directory in there. Put the microSD card in your ARM machine and boot it.
Not covered here, but you probably want to do this after booting:
configure network
configure sources.list to include security-updates etc.
configure timezone settings
configure locale
configure fstab, so filesystem is remounted read-only in case of a boot after a crash
install an ssh server
install your favorite packages
Last edited by kuleszdl (2019-04-14 14:04:13)
Offline