Доброго времени суток Я собрал пакет с UEFI firmware (EDK2) для Raspberry Pi 3B, 3B+, 4B: https://packages.altlinux.org/ru/sisyphus/srpms/edk2-rpi EFI на Raspberry Pi запускается также как запускается ядро или u-boot фирмварью Broadcom'а. Соответственно, сохраняются требования для разметки файловой системы: 1. Таблица разделов MBR 2. Первый раздел FAT32 или FAT16, никакого ESP 3. На разделе с FAT размещается firmware и UEFI. При использовании EFI добавляется ещё одно требование: загрузка EFI должна осуществляться с micro-SD карты, так как на данный момент загрузка с USB не поддерживается. Для того, чтобы желающие могли попробовать я сделал zip-архив, который необходимо распаковать на FAT-раздел micro-SD карты: http://nightly.altlinux.org/sisyphus-aarch64/alpha/RPi_EFI.zip После распаковки откройте Readme.ru и прочтите инструкцию. Также я собрал два пробных образа для записи на флешку: http://nightly.altlinux.org/sisyphus-aarch64/alpha/regular-jeos-systemd-efi-mbr-20200127-aarch64.img.xz (без графики) http://nightly.altlinux.org/sisyphus-aarch64/alpha/regular-lxqt-efi-mbr-20200127-aarch64.img.xz (с рабочим столом LXQt) Для Raspberry Pi 3 образ можно записать на micro-SD карту и затем распаковать архив на раздел FAT. Для Raspberry Pi 4 загрузка Linux с micro-SD происходит почему-то катастрофически медленно, так что она почти всегда останавливается на одном из ранних этапов. Поэтому на micro-SD нужно создать только раздел FAT и распаковать туда RPi_EFI.zip А сам образ записать на USB-флешку. Примечательно, что грузятся наши стандартные ядра std-def, un-def, mp, lts, но не грузятся rpi-def и rpi-un, собранные для Raspberry Pi 4 специально. Секрет, думаю, в том, что в UEFI приходится вместо dtb использовать ACPI (для того, чтобы заработал USB , которое совсем неполное). Использование ACPI также ограничивает видимую зону оперативной памяти 3 ГБ. При загрузке, что Raspberry Pi 3, что Raspberry Pi 4 наблюдается проблема с KMS, так что не только 3D недоступно, но и хоть какие-то приемлемые разрешения экрана. На Raspberry Pi 4 этим проблемы не заканчиваются. Не заработали ни Ethernet, ни wi-fi. Но зато работает перезагрузка и выключение, благодаря EFI :-) Так что для повседневного использования EFI не годится, но для экспериментов вполне. -- С уважением, Антон Мидюков <antohami@altlinux.org>
On 2020-01-27 23:12:03 +0700, Антон Мидюков wrote: > На Raspberry Pi 4 этим проблемы не заканчиваются. Не заработали > ни Ethernet, ни wi-fi. Но зато работает перезагрузка и выключение, > благодаря EFI :-) Это не EFI, это DTB. Благодарю за "деление горизонта" - теперь можно исключить сразу целый класс возможных корявостей с MXL7704. -- Alexey V. Vissarionov gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
Добрый день всем.
27.01.2020 19:12, Антон Мидюков пишет:
>
> http://nightly.altlinux.org/sisyphus-aarch64/alpha/RPi_EFI.zip
>
> После распаковки откройте Readme.ru и прочтите инструкцию.
>
Не повторите моей ошибки: после записи образа на первом разделе, который
fat, будет одинокий каталог "EFI". Его трогать не надо, он нужен. В
архиве, напротив - подкаталог RPi_EFI. Файлы ИЗ него надо ДОписать в
корень раздела fat, рядом с каталогом EFI. И конечно, не забыть
переименовать один из файлов config*.txt в зависимости от вашей модели
RPi, как указано в инструкции.
Пробовал на RPi3B, подтверждаю, всё заявленное - работает. Перезагрузка,
выключение - ok. Что заявлено как (пока) неработающее - не работает, что
логично. Записал образ *jeos* на SD и *lxqt* на USB - грузятся оба на выбор.
Теперь бы с видеорежимами разобраться, затем с wi-fi и прочей
переферией. По-моему основа отличная, с ней можно работать.
--
С уважением, Павел Исопенко
тел. +79165329582
email: master@pauli.ru
XMPP: pavelri@jabber.credoaudit.ru
31.01.2020 1:50, Павел Исопенко пишет: > Добрый день всем. > > 27.01.2020 19:12, Антон Мидюков пишет: >> >> http://nightly.altlinux.org/sisyphus-aarch64/alpha/RPi_EFI.zip >> >> После распаковки откройте Readme.ru и прочтите инструкцию. >> > Не повторите моей ошибки: после записи образа на первом разделе, > который fat, будет одинокий каталог "EFI". Его трогать не надо, он > нужен. В архиве, напротив - подкаталог RPi_EFI. Файлы ИЗ него надо > ДОписать в корень раздела fat, рядом с каталогом EFI. И конечно, не > забыть переименовать один из файлов config*.txt в зависимости от вашей > модели RPi, как указано в инструкции. > > Пробовал на RPi3B, подтверждаю, всё заявленное - работает. > Перезагрузка, выключение - ok. Что заявлено как (пока) неработающее - > не работает, что логично. Записал образ *jeos* на SD и *lxqt* на USB - > грузятся оба на выбор. > Теперь бы с видеорежимами разобраться, затем с wi-fi и прочей > переферией. По-моему основа отличная, с ней можно работать. > На RPi3B+ wi-fi работает. Проблема с видео и все другие проблемы заключаются в том, что в bcm2710-rpi-*.dtb видео vc4 и многое другое (i2c, spi) выключено. При помощи overlay'ев у меня ничего включить не получилось. Брал с https://github.com/raspberrypi/firmware Может проблема в том, что они 32-битные? Или битность на оверлеи не распространяется? Если в grub прописать: devicetree /lib/devicetree/<конкретное_ядро>/bcm2835-rpi-3-b-plus.dtb То грузится и работает. Но как-то нестабильно совсем. Также необходимо иметь ввиду, что сообщения ядра будут сыпаться в UART, который согласно bcm2835-rpi-3-b-plus.dtb подключен к bluetooth, поэтому в cmdline нужно дописать console=tty1 тогда пойдут на экран. Пробовал подкладывать другой dtb, затем сохранял /proc/devicetree в dts файл. Сохранённые dts выглядят одинаково. Непонятно на кого грешить, то ли на EFI, то ли на grub. Надо будет проверить прямую загрузку из EFI. -- С уважением, Антон Мидюков <antohami@altlinux.org>