The officially official Devuan Forum!

You are not logged in.

#1 2019-04-14 13:47:38

kuleszdl
Member
Registered: 2018-11-03
Posts: 107  

Base Install beowulf for ARM with packaged Kernel (WIP)

Motivation

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.

Disclaimer

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.

Steps

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.

Post-installation steps

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

Board footer