The officially official Devuan Forum!

You are not logged in.

#1 2019-11-27 15:03:08

Registered: 2019-11-14
Posts: 171  

[ ARMEL ] Builds, for RPi's Boards

Hello All,
This is the arm32( armel ) counterpart, for RaspBerryPi's, Using ARMv6 'arm1176jzf-s'..
Suported Boards:

In the next Iterations, will be also there  a 'Desktop' build type..

In this case, there is a v0.3beta Server build.

Features & Versions:

1) - U-boot boot-loader       - v201910 ( built for for armel BUT with Floating Point support )
2) - Linux Kernel                - Stable 5.3.13-1 ( built for armel BUT with Floating Point support )
3) - UserSpace                  - Devuan beowulf ( for armel )
4) - Changelog                   - Beowulf, Leds

1) BootLoader( RPi binaries plus u-boot )
'bootcode.bin', starts the board, calls 'config.txt', were it knows about uboot, then the Videocore4 executes 'start.elf', and will bring-up, the kernel specified in 'uboot.cmd'

Disk Partitioning scheme:

# parted /dev/mmcblk0
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  273MB   268MB   primary  fat32        lba
 2      273MB   1321MB  1049MB  primary  ext4

a)   - Bootloader( U-Boot ), is in the 1st partition
  a1) - The Bootloader will search for a file called 'boot.scr', and after initialise the u-boot environment, will execute that script..
  a2) - In  'boot.scr', for this image, it will point to 'RaspBerry Pi1 B v1.0' Device Tree Binary File by default( was tested there.. )..
  a3) - IF you have other board than  'RaspBerry Pi1 B v1.0', please Read Bellow in the 'Notes Section'..   
b)   - 1st Partition is mounted as  '/boot'
c)   - 2nd Partition is mounted as rootfs '/'

The Bootloader in a) usually takes ~600KiB..

If you have Other Board than 'RaspBerry Pi1 B v1.0', situation described in a3):
The 'boot.cmd' script( format, Human Readable ):

setenv bootdelay 3
#setenv baudrate 115200
# Send debug info to uart, and also display
setenv stdout serial,vga
setenv stderr serial,vga

mmc dev 0
# Set fdtfile envvar to corresponding dtb file
setenv fdt_addr 0x02400000
setenv fdtfile bcm2835-rpi-b.dtb
# 64bits Kernels loads at kernel_addr_r 0x80000
setenv kernel_addr 0x08000
setenv bootargs earlyprintk=serial,ttyAMA0,115200n8 console=ttyAMA0,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootfstype=ext4 elevator=noop rootwait smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyAMA0,115200 selinux=0 noinitrd
load mmc 0:2 ${fdt_addr} usr/lib/linux-image-5.3.13/${fdtfile} || load mmc 0:1 ${fdt_addr} ${fdtfile} || load mmc 0:1 ${fdt_addr} boot/${fdtfile}
load mmc 0:1 ${kernel_addr} vmlinuz-5.3.13 || load mmc 0:1 ${kernel_addr} zImage || load mmc 0:1 ${kernel_addr} boot/vmlinuz-5.3.13 || load mmc 0:1 ${kernel_addr} boot/zImage
bootz ${kernel_addr} - ${fdt_addr}

Write this Image, to a sd-card.
Mount 1st Partition in '/mnt',

mount /dev/sdb1 /mnt

Then change the 'boot.cmd' script to point to your board..
# You can find a list of supported boards 'dtb' files in: '/usr/lib/linux-image-5.3.13'( or in the beguining of this article smile )
# Edit the file 'boot.cmd', with 'vi' for example.
# change the line:

setenv fdtfile bcm2835-rpi-b.dtb


setenv fdtfile your_board.dtb

Save the file,
# Generate the real script file( binary ), 'boot.scr'

mkimage -C none -A arm -T script -d boot.cmd boot.scr


2) - Linux Kernel


There are 3 packages installed:

# dpkg -l |grep -E "(linux-.*(headers|image|libc-dev))"
ii  linux-headers-5.3.13:armhf 5.3.13-1        armhf        Linux kernel headers for 5.3.13 on armhf
ii  linux-image-5.3.13:armhf   5.3.13-1        armhf        Linux kernel, version 5.3.13
ii  linux-libc-dev:armhf       5.3.13-1        armhf        Linux support headers for userspace development

The target will be to improving the Device Tree Bindings, for each board, when possible..

3) - UserSpace -Users & Passwords:

a) root      - password 'toor'
b) devuan - password 'devuan'

SSH is enabled, so that you can login, but root login, is disabled, you should login as 'devuan', only then switch to 'root', if you want to.. for that,
After Login as 'devuan', issue:

sudo su -

And type your 'devuan' password, that's it..

4) - ChangeLog
Migration to beowulf
Led 'ACK' driver changed to 'cpu0', to reflect CPU usage

~# echo cpu0 > /sys/class/leds/ACT/trigger

For this image, to reach more Supported Hardware and Users, your help is also needed smile
Testing this Image, posting your feedback, and improvements..

~$ sha256sum devuan-ascii-rpi-armel-0.3-beta.img.xz 
eadf5b2e94e9953c80467ea3f2e8c1b962e6459a7f712d8bf817e4bb56c3ea64  devuan-ascii-rpi-armel-0.3-beta.img.xz

Last edited by tuxd3v (2020-03-31 18:01:54)

Best Regards,


#2 2020-11-07 20:39:31

Registered: 2019-11-14
Posts: 171  

Re: [ ARMEL ] Builds, for RPi's Boards

1) Check if DHT22, AM2302  humidity/Temperature sensors are available in mainline,

If so,
Build kernel modules for them( in next kernel revision.. ).

2) Check if its possible to get: userspace libraries for EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG,

To use directly in devuan image in '/opt/vc/lib'..

Last edited by tuxd3v (2020-11-09 23:32:01)

Best Regards,


#3 2020-11-10 00:11:15

Registered: 2020-05-14
Posts: 16  

Re: [ ARMEL ] Builds, for RPi's Boards

They are moving away from /opt/vc/lib and to a more normal of /usr


#4 2020-11-10 01:33:07

Registered: 2019-11-14
Posts: 171  

Re: [ ARMEL ] Builds, for RPi's Boards

ShorTie wrote:

They are moving away from /opt/vc/lib and to a more normal of /usr

hello ShorTie, thanks,
When you install them, I believe they are still copied to /opt/vc/lib?
If they are moving away, to  /opt, its a good sign smile

Best Regards,


Board footer