[Tinkerphones] LetuxOS for Rasi-Zero-W?

H. Nikolaus Schaller hns at goldelico.com
Thu Sep 9 14:18:50 CEST 2021


Hi David,
thanks for responding!

> Am 09.09.2021 um 13:57 schrieb David Boddie <david at boddie.org.uk>:
> 
> On Mon, 30 Aug 2021 18:42:47 +0200, H. Nikolaus Schaller wrote:
>> Does anyone on this list have experience with
>> building and running mainline kernels for the
>> Raspi-Zero?
> 
> Not really. I only used the Raspbian distribution when running Linux.
> 
> Just looking at the rpi site, I found this note:
> 
>  "Because of a hardware limitation in the Raspberry Pi Zero, 1 and 2, the
>   boot partition on the SD card must be 256GB or less otherwise the device
>   will not boot up."
> 
> [https://www.raspberrypi.org/documentation/computers/getting-started.html#sd-cards]

Ok, interesting to know.

> I imagine that's not a problem for you, but I thought it might be worth
> mentioning.

Wll, LetuxOS uses two partitions. One for the boot system an the other for
rootfs. The boot partition created by makesd is usually 5% of the total µSD.
I.e. with a 32GB SD it is 1.6GB. Obviously this is far too much for the handful
of boot files, but also far below the limit.

Maybe I should add some option to makesd which can limit a partition size
to the smaller of the -s percentage and a given maximum.

> Have you tried booting on other models of the Pi, apart from the Zero-W and
> 3B+?

I do not have other variants to test with. If anyone has and wants to test,
please raise your hands and I can describe what to do. Generally it would
be a nice goal if LetuxOS would support all RasPi devices...

But in the meantime I got another hint: maybe the same reason why the SD size
limits exist.

Pi 0, 1, 2 use an ARMv6 while the others (except Pi 4) use ARMv7.

This finally explained to me why there is kernel.img and kernel7.img...
It is not strictly necessary to have two kernel builds and it turned out
that changing the letux_defconfig from

# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MULTI_V6_V7=y

to

CONFIG_ARCH_MULTI_V6=y
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MULTI_V6_V7=y

makes the kernel start on both :) Well, there are differences
(single core vs. quad core, different memory size etc.) but this
is taken care of by device tree and kernel.

But it fails running the Debian rootfs binaries (at least the
one I have tried so far). The same µSD plugged into the 3b+ boots
and runs fine.

So there must be something special in Raspbian or Debian for ARMv6.

BR and thanks,
Nikolaus



More information about the Community mailing list