Не загружается OS, какой бы ни была

kouler

New member
11.06.2024
3
1
3
Хотел сначала портировать ARM'ный Arch linux на свою относительно старенькую Repka pi 3 VER 1.2, ибо сам пользуюсь арчом, Ubuntu уже давным давно должна быть у всех на помойке, а на сайте очень кстати со временем появился "Загрузчик Repka OS", с которым можно просто портировать свой дистрибутив в отличие от таких бессмертных мира сего. Скачал, запустил (исправил микро-косяк в Makefile (моя issue по этому на гитфлик), т.к. штука собирается в докере (вот, вроде, зависима сборка от пакетов Ubuntu - взяли и в докер запихнули - респект парням)).


КАК Я ДЕЛАЛ

смотрите сразу след. оглавление "ПРОБЛЕМА", если не особо интересно
1. Собираю загрузчик
Bash:
git clone https://gitflic.ru/project/npo_rbs/repka-os_boot-loader.git
cd repka-os_boot-loader
git submodule update --init --recursive
make REPKA_MODEL=pi3 build-loader

2. Через fdisk создаю два раздела на 512М и второй - оставшееся, делаю раздел boot fat32 и root ext4 (btrfs)
У меня SD-карта, это /dev/mmcblk0
Bash:
sudo mkfs.vfat -F 32 -n BOOT /dev/mmcblk0p1
Bash:
sudo mkfs.ext4 -L rootfs /dev/mmcblk0p2

3. Монтирую и копирую загрузчик
Bash:
sudo dd if=src-pi3/spl/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0p1 bs=1024 seek=8 conv=notrunc

потом ещё много рутины
Bash:
sudo cp src-pi3/repka-pi.dtb mnt/boot/ #копирую .dtb,
sudo cp -r src-pi3/overlays mnt/boot/ #...оверлеи
sudo bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C mnt/root #распаковываю файловую систему арча на SD-карту
sudo mv mnt/root/boot/* mnt/boot/ #перемещаю ядро линуха
sudo mkdir -p mnt/boot/dtbs/allwinner #остальные .dtb, хоть и не понятно, зачем, если только один нужен, бл....
sudo cp mnt/boot/repka-pi.dtb mnt/boot/dtbs/allwinner/sun50i-h5-repka-pi3.dtb #выношу нужный единственный как раз

fstab тоже редачу:
Код:
LABEL=BOOT  /boot   vfat    defaults        0       0
LABEL=rootfs /       ext4    defaults        0       1

сделал даже extlinux.conf в `[boot-раздел]/extlinux/` с таким содержимым
Код:
DEFAULT arch
MENU TITLE Boot Menu
PROMPT 0
TIMEOUT 50

LABEL arch
    MENU LABEL Arch Linux ARM
    LINUX /Image
    INITRD /initramfs-linux.img
    FDT /dtbs/allwinner/sun50i-h5-repka-pi3.dtb
    APPEND root=LABEL=rootfs rw console=ttyS0,115200 console=tty0

Я очень много тыканий (то есть очень-очень много) пропустил, это уже как сжатый туториал получился...
---

ПРОБЛЕМА

В итоге запускаю - моник не успевает что-либо отобразить из-за каких-то глюков и вечных перезапусков.
Благо имеется cp2102, тыкаю эти ваши 3.3V, смотрю через UART `screen /dev/ttyUSB0 115200`

Система то
1. крашится
Bash:
...
[    3.490163]  mount_root+0x170/0x190
[    3.493672]  prepare_namespace+0x1d4/0x238
[    3.497790]  kernel_init_freeable+0x2a4/0x2c4
[    3.502168]  kernel_init+0x20/0x148
[    3.505679]  ret_from_fork+0x10/0x20
[    3.509279] SMP: stopping secondary CPUs
[    3.513223] Kernel Offset: disabled
[    3.516721] CPU features: 0x000000,00100000,40004000,0400421b
[    3.522480] Memory Limit: none
[    3.525554] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

я это исправляю,
2. то просто падает в вечный цикл перезапусков в разное непредсказуемое время, мигая на секунду зелёным power-led, иногда мигая синими по два раза, иногда просто три перезагрузки подряд с питанием (это когда ещё при запуске Ethernet 3 раза мигает своими светодиодами - короче реально перезагрузка)), то иногда вообще выключается и не подаёт признаков жизни (ну естественно вытаскиваю провод, вставляю - всё по новой).
Ручной режим с подключенными оверлеями не помогают - систему проверяю, вроде всё правильно стоит.

Выкидываю на это два дня, посылаю всё к херам и такой "ублюнтить, так ублюнтить" - качаю ваш несчастный Repka OS aka. "Ubuntu" (я любя, не подумайте - просто в моём контексте я делал это уже с ненавистью и кипящими штанами🙃).
Делаю одну единственную детскую ерунду, как и подобает:
Bash:
sudo dd if=~/Downloads/предварительно_unpacked_ваш_этот_zip_несчастный/arm64_ubuntu_20.04.6_desktop_09.08.23_1.2GHz.img of=/dev/mmcblk0 bs=1M status=progress iflag=direct oflag=direct

нихрена. То же поведение. Вспоминаю, что 1.5 года назад писал диплом - сервис для миникампухтера Repka pi3, и была такая же проблема (тогда ещё Ubuntu использовал), а когда поставил эту уродскую balena Etcher на винду, то она волшебным и неизвестным мне образом правильно всё сделала, SD вставил и запустил. Вспомнив это, переключаюсь на винду, качаю balen'у, делаю с вашим скачанным образом - никакой магии не происходит - то же самое поведение, ядро до 8 пункта доходит и в сброс-перезагрузку, где опять творит какую-то херню, всё короче и короче, и вообще либо зависает, либо вырубает питание.

Питание подключено от адаптеров на 15Ватт (5V 3A, два разных на такой вывод пробовал).

В общем у меня подозрения, помимо всех остальных, что на мою версию платы забили огромного болта и подходящие ему .dtb выкинули на помойку.
Сам мини-компьютер, пока не пользовался, был оставлен в исправном виде (с исправными картой и операционкой) в личном сухом герметичном контейнере.

Чё делать не знаю, помогите😭😭😭🙏🏻🙏🏻🙏🏻