Evaluate the building of an ARMv7

I was not able to install the ARM DevBox on my RaspberryPI ARMv7. Indeed, launching the arm devbox image, it breaks with the following:

standard_init_linux.go:219: exec user process caused: exec format error

Probably this is because of my older ARM architecture (I own a Raspberry 3 1.2).

What about to evaluate the building of an ARMv7 image as well?

Here it is my /proc/cpuinfo:

processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 2
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 3
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2835
Revision	: a22082
Serial		: 000000007a89c91c
Model		: Raspberry Pi 3 Model B Rev 1.2

Unfortunately, there are some complications with ARM7 support:

  • There are no readily available OpenJDK images without significant security issues
    (see https://snyk.io/docker-images/ - this lists x86 architecture, but ARM versions reflect same operating systems).
    Therefore, we would need to customize the build pipeline significantly to ensure we release a safe ARM7 image.
  • librocksdbjni (Maven Repository: org.rocksdb » rocksdbjni), which is required for KafkaStreams components to work, doesn’t include an out-of-the-box 32-bit ARM version. Thus, we would need to customize it as well.

Due to these obstacles, ARM7 support isn’t currently in our roadmap.

Hi Ubaldo.

You can try to set arm_64bit=1 on /boot/config.txt. If you do this, check if you have on /boot the kernel8.img installed. If you have a Raspberry PI OS 32 (buster) and a /boot partition with size > 128MB, I hope you have it already.
You don’t need Raspberry PI OS 64 bit which is actually in testing.
With arm_64bit=1 you set the kernel to operate on arm64v8 and the processor run without problems statically linked arm64v8 programs.

On rpi3 I think that you can “start” the devbox but it is unusable because rpi3 have only 1GB RAM.
I have successefully run devbox latest (1.3.17) on my rpi4 Raspberry PI OS 32 bit (with kernel arm64v8) with 8GB RAM, it run seamless.
I think that it run on also on rpi4 4GB, I’ll try it.
I run it with containerd runtime container not docker but I think it run also with docker with this configuration.

1 Like