Jump to content

RPi 3B plus - Armbian_22.08.7 - failed to boot (incorrect boot partition type (ef EFI)


Dave

Recommended Posts

Hello everybody.

I've faced  the issue:
Armbian_22.08.7 official image (Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img)
failed to boot on RPi3B plus.
The same image boots fine on RPi 4B

 

Could not get serial console output (output is empty)

 

Older official image Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img boots on Rpi3B plus just fine.

As I've found out the reason is incorrect boot partition type set for the image.

Armbian_22.08.1 (boots fine) boot partition type is "c" (W95 FAT32 LBA)
Armbian_22.08.7 (doesn't boot) boot partition type is "ef" (EFI)

 

After manually changing boot partiton type to "c" (W95 FAT32 LBA)
for the image Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img
it begins to boot
Please check fdisk output
=====================

"Good" image:

$ fdisk -l Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img
Disk Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img: 3 GiB, 3196059648 bytes, 6242304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x79597c7b

Device                                           Boot  Start     End Sectors  Size Id Type
Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img1        8192  532479  524288  256M  c W95 FAT32 (LBA)
Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img2      532480 6242303 5709824  2,7G 83 Linux

=====================

"Bad" image:

$ fdisk -l Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img
Disk Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img: 2,5 GiB, 2680160256 bytes, 5234688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1d7b3f1b

Device                                                   Boot  Start     End Sectors  Size Id Type
Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img1        8192  532479  524288  256M ef EFI (FAT-12/16/32)
Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img2      532480 5234687 4702208  2,2G 83 Linux

=====================

 

 

The same story is for manual build from the repo (Armbian 22.08.11)
Image build is fine.
Image doesn't boot on RPi3Bplus
Boots fine on RPi4
Manual compile command is:

#!/bin/bash

BOARD_NAME_PARAM="rpi4b"
LINUX_DISTRO_PARAM="jammy"

ARMBIAN_BUILD_OPTIONS="\
BOARD=$BOARD_NAME_PARAM \
BRANCH=current \
FULL_DESKTOP=no \
BUILD_DESKTOP=no \
BUILD_MINIMAL=yes \
INSTALL_HEADERS=no \
KERNEL_ONLY=no \
KERNEL_CONFIGURE=no \
RELEASE=$LINUX_DISTRO_PARAM \
COMPRESS_OUTPUTIMAGE=\"sha,img,xz\" \
ARMBIAN_CACHE_ROOTFS_PATH=/mnt/armbian-cache/rootfs \
ARMBIAN_CACHE_TOOLCHAIN_PATH=/mnt/armbian-cache/toolchain \
"
sudo ./compile.sh $ARMBIAN_BUILD_OPTIONS


---------------------------


As example - please check out notice from
https://github.com/pftf/RPi3
Create an SD card (or USB drive if you plan to use USB Boot) in MBR mode with a single partition of type 0x0c (FAT32 LBA) or 0x0e (FAT16 LBA). Then format this partition to FAT32.
Note: Do not try to use GPT for the partition scheme or 0xef (EFI System Partition) for the type, as these are unsupported by the CPU-embedded bootloader.


 

Link to comment
Share on other sites

Hi. The Raspberry Pi 3B/3B+ isn't a supported board. The images are menth to be used on Raspberry Pi4 and 400 only.
That you can make it work on the 3B+ is just a bonus.
I noticed the devs have been working on RPi4 images, and this will probably be one of the changes made. And I think they will have good reasons for this. Not that I know the reason...

Link to comment
Share on other sites

1) I've made a typo in my original post - my bad:
for Armbian_22.08.7 I've mentioned incorrect image file name Armbian_22.08.1_Rpi4b_jammy_current_5.15.61.img  
 
Correct piece of text should be:
--------------------------------
I've faced  the issue:
Armbian_22.08.7 official image (Armbian_22.08.7_Rpi4b_jammy_current_5.15.74_minimal.img)
failed to boot on RPi3B plus.
--------------------------------

 
2) About your statement: 
"The Raspberry Pi 3B/3B+ isn't a supported board. The images are menth to be used on Raspberry Pi4 and 400 only.
That you can make it work on the 3B+ is just a bonus." 


Official Armbian page for for RPi:
https://www.armbian.com/rpi4b
 
Please check out "Compatible" list:
3A   3B   3B+  4   and etc
 
So RPi 3 family models are officially supported

 

 

3) There is no technical reason for Armbian RPi distro not to work on RPi3 boards
It has all required components: Kernel, device tree, firmware.
The main reason is just incorrect changes for image build procedure
which sets wrong boot partition type.
 
And I can repeat:
Armbian images up to version 22.08.1 inclusively were correct (bootable both on RPi3 and RPi4).
Mistake was introduced into image build procedure somewhere between versions 22.08.1 and 22.08.7

 

By the way "ef" (EFI) partition is the same FAT32 partition just with different partition type code:
https://en.wikipedia.org/wiki/EFI_system_partition

 

Manually changing just boot partition type to "c" (FAT32)
make image bootable on both RPi3 and RPi4

 

4) There is a huge amount of RPi3 boards in the field:
no reason to limit Armbian usage area without any strong cause.

Link to comment
Share on other sites

Latest images are broken due to changes in upstream tool flash-tool (damn Ubuntu) ... previous images from archive or rolling must work. We are working on a new release where this will be fixed. (upcoming weekend). Since release activities are anyway unpaid full time job for several people, this can't be fixed in by the way fashion.

Link to comment
Share on other sites

I've built new image from the trunk (23.02)

The issue is fixed now.
Boot partiton now has correct type "b (W95 FAT32)" compatible for both RPi3 and RPi4.

The image boots fine - checked on RPi3B plus and RPi4

 

fdisk -l Armbian_23.02.0-trunk_Rpi4b_jammy_edge_6.1.10_minimal.img

Disk Armbian_23.02.0-trunk_Rpi4b_jammy_edge_6.1.10_minimal.img: 2.62 GiB, 2810183680 bytes, 5488640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x50838be0

Device                                                     Boot  Start     End Sectors  Size Id Type
Armbian_23.02.0-trunk_Rpi4b_jammy_edge_6.1.10_minimal.img1        8192  532479  524288  256M  b W95 FAT32
Armbian_23.02.0-trunk_Rpi4b_jammy_edge_6.1.10_minimal.img2      532480 5488639 4956160  2.4G 83 Linux

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines