Bug 39978

Summary: Не грузится система с u-boot-rpi3 2021.04 на Raspberry Pi 3 B+
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: u-boot-rpi3Assignee: Sergey Bolshakov <sbolshakov>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, jqt4, jqt4, sbolshakov
Version: unstable   
Hardware: arm   
OS: Linux   
Bug Depends on:    
Bug Blocks: 33000    

Description Антон Мидюков 2021-04-23 07:53:55 MSK
Загрузка регулярок armh с новым u-boot 2021.04 зависает на этапе загрузки fdt. Следующей строкой должна начаться загрузка ядра linux. Но дальше загрузка не идёт.
Если заменить на u-boot 2021.01, то загрузка этого же rootfs проходит успешно.
Проблему можно воспроизвести на:
http://nightly.altlinux.org/sisyphus-armh/snapshots/20210421/regular-mate-20210421-armh.tar.xz

extlinux.conf стандартный:
menu title ALTLinux Boot Options

default linux
timeout 50

label linux
	kernel /boot/vmlinuz
	initrd /boot/initrd.img
	fdtdir /boot/dtb
	append root=LABEL=ROOT ro   console=tty1

label 5.10.29-std-def-alt1
	kernel /boot/vmlinuz-5.10.29-std-def-alt1
	initrd /boot/initrd-5.10.29-std-def-alt1.img
	fdtdir /lib/devicetree/5.10.29-std-def-alt1
	append root=LABEL=ROOT ro   console=tty1

label 5.11.15-un-def-alt1
	kernel /boot/vmlinuz-5.11.15-un-def-alt1
	initrd /boot/initrd-5.11.15-un-def-alt1.img
	fdtdir /lib/devicetree/5.11.15-un-def-alt1
	append root=LABEL=ROOT ro   console=tty1

LABEL=ROOT заменяется на UUID=<UUID> при записи на флешку при помощи alt-rootfs-installer.
Comment 1 Repository Robot 2021-04-23 12:45:45 MSK
u-boot-rpi3-2021.04-alt2 -> sisyphus:

 Fri Apr 23 2021 Sergey Bolshakov <sbolshakov@altlinux.ru> 2021.04-alt2
 - resync defconfig for rpi_3_b_plus_32b (closes: 39978)
Comment 2 Антон Мидюков 2021-04-26 18:31:52 MSK
Проблема всё ещё есть, но она не всегда воспроизводится, что и сбило меня с толку.

Проблема выглядит так:
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
676 bytes read in 6 ms (109.4 KiB/s)
ALTLinux Boot Options
1:	linux
2:	5.10.29-std-def-alt1
3:	5.11.15-un-def-alt1
Enter choice: 1:	linux
Retrieving file: /boot/initrd.img
6640084 bytes read in 281 ms (22.5 MiB/s)
Retrieving file: /boot/vmlinuz
6623744 bytes read in 281 ms (22.5 MiB/s)
append: root=UUID=b97b8bc9-9653-4148-92f0-054e2ce00051 ro   console=tty1
Retrieving file: /boot/dtb/bcm2837-rpi-3-b-plus.dtb
14622 bytes read in 77 ms (184.6 KiB/s)
Kernel image @ 0x080000 [ 0x000000 - 0x651200 ]
## Flattened Device Tree blob at 02600000
   Booting using the fdt blob at 0x2600000

А нормальная загрузка так:
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
676 bytes read in 3 ms (219.7 KiB/s)
ALTLinux Boot Options
1:	linux
2:	5.10.29-std-def-alt1
3:	5.11.15-un-def-alt1
Enter choice: 1:	linux
Retrieving file: /boot/initrd.img
6640084 bytes read in 278 ms (22.8 MiB/s)
Retrieving file: /boot/vmlinuz
6623744 bytes read in 278 ms (22.7 MiB/s)
append: root=UUID=83a3f071-6dc2-470e-b810-905df80d852e ro   console=tty1
Retrieving file: /boot/dtb/bcm2837-rpi-3-b-plus.dtb
14622 bytes read in 38 ms (375 KiB/s)
Kernel image @ 0x080000 [ 0x000000 - 0x651200 ]
## Flattened Device Tree blob at 02600000
   Booting using the fdt blob at 0x2600000
   Using Device Tree in place at 02600000, end 0260691d

Starting kernel ...
Comment 3 Sergey Bolshakov 2021-04-26 18:38:16 MSK
проблема в том, что загрузка не идёт дальше ?
u-boot для обычной rpi_3_32b как себя поведёт ?
Comment 4 Антон Мидюков 2021-04-26 18:41:33 MSK
(Ответ для Sergey Bolshakov на комментарий #3)
> проблема в том, что загрузка не идёт дальше ?

Да

> u-boot для обычной rpi_3_32b как себя поведёт ?

Я оба пробовал. Изначально rpi_3_32b. Пока не могу установить никаких закономерностей, почему иногда грузится. Пробовал на разных флешках, разные rootfs. И с usb и с sd-карты.
Comment 5 Sergey Bolshakov 2021-04-26 19:09:59 MSK
я не могу повторить -- дюжина попыток на двух rpi3 были удачными.
поскольку u-boot для 3-b-plus отличается только именем файла с dtb,
я не вижу, что бы я мог тут предпринять.
Comment 6 jqt4 2021-04-27 12:08:36 MSK
Протестировал загрузку RPi3B V1.2 c u-boot-rpi3-2021.04-alt2
С файлом из rpi_3_32b 3 из 10 попыток загрузилась, 7 раз повисла на этапе загрузки fdt.
С файлом из rpi_3b_plus_32b повисла все 10 раз, причём выглядит зависание так же.
Comment 7 Sergey Bolshakov 2021-04-27 12:31:31 MSK
а на 64 битах что ?
Comment 8 Антон Мидюков 2021-04-27 12:34:27 MSK
(Ответ для Sergey Bolshakov на комментарий #7)
> а на 64 битах что ?

У меня проблем нет.
Comment 9 Sergey Bolshakov 2021-04-27 12:52:02 MSK
(In reply to jqt4 from comment #6)
> Протестировал загрузку RPi3B V1.2 c u-boot-rpi3-2021.04-alt2
> С файлом из rpi_3_32b 3 из 10 попыток загрузилась, 7 раз повисла на этапе
> загрузки fdt.
> С файлом из rpi_3b_plus_32b повисла все 10 раз, причём выглядит зависание
> так же.

это обычная или плюс ?
Comment 10 jqt4 2021-04-27 12:56:33 MSK
(Ответ для Sergey Bolshakov на комментарий #9)
> это обычная или плюс ?

Обычная, без плюса.
Comment 11 Sergey Bolshakov 2021-04-27 13:24:17 MSK
хм. регулярка по ссылке действительно виснет, любопытно.
Comment 12 jqt4 2021-04-27 13:43:21 MSK
Я использовал при тестировании другую регулярку:
http://nightly.altlinux.org/sisyphus-armh/snapshots/20210421/regular-jeos-systemd-rpi-20210421-armh.img.xz
Она "из коробки" грузиться с помощью firmware.
Переключил на загрузку с u-boot командой:
 rpi4-boot-uboot

После этого проблема воспроизводиться, как описано выше.
Comment 13 Sergey Bolshakov 2021-04-27 15:35:38 MSK
а каких размеров sd-карта ?
у меня работает на 8G и сбоит (не всегда) на 64G
Comment 14 jqt4 2021-04-27 15:41:24 MSK
(Ответ для Sergey Bolshakov на комментарий #13)
> а каких размеров sd-карта ?
> у меня работает на 8G и сбоит (не всегда) на 64G

16G
Comment 15 Sergey Bolshakov 2021-04-27 15:44:33 MSK
(In reply to jqt4 from comment #14)
> (Ответ для Sergey Bolshakov на комментарий #13)
> > а каких размеров sd-карта ?
> > у меня работает на 8G и сбоит (не всегда) на 64G
> 
> 16G

что произойдёт, если сделать основной раздел размером в 8G ?
Comment 16 Антон Мидюков 2021-04-27 17:05:15 MSK
(Ответ для Sergey Bolshakov на комментарий #15)
> (In reply to jqt4 from comment #14)
> > (Ответ для Sergey Bolshakov на комментарий #13)
> > > а каких размеров sd-карта ?
> > > у меня работает на 8G и сбоит (не всегда) на 64G
> > 
> > 16G
> 
> что произойдёт, если сделать основной раздел размером в 8G ?

Проверил на 8 ГБ флешке. Проблема воспроизводится.
Comment 17 jqt4 2021-04-27 17:16:11 MSK
(Ответ для Sergey Bolshakov на комментарий #15) 
> что произойдёт, если сделать основной раздел размером в 8G ?
Сделал 2 эксперимента:

Взял флешку 8G, основной раздел на ней расширился автоматически примерно до 7G.
С помощью firmware загружается нормально.
Проблема воспроизвелась - 10 раз из 10 не загрузилась с u-boot.

Взял флешку 16G, вручную расшинил основной раздел до 8G, отключил автоматическое расширение на всю флешку.
Результат тот же.
Comment 18 Repository Robot 2021-04-27 19:55:48 MSK
u-boot-rpi3-2021.04-alt3 -> sisyphus:

 Tue Apr 27 2021 Sergey Bolshakov <sbolshakov@altlinux.ru> 2021.04-alt3
 - fix usb keyboard handling (closes: 39978)
Comment 19 Антон Мидюков 2021-04-29 17:44:37 MSK
Проверено на регулярках. Исправлено.