EFI в MagOS

EFI-magos.tar.gz - https://cloud.mail.ru/public/3Kih/5dVtnsdsk

  1. BOOTx64.efi (от MagOS) переименовал в BOOTx64.EFI
    Иначе в терминале от grub2 не проходила команда videoinfo
    А знать инфу о мониторе порою очень даже необходимо.
    И терминал был меньшего размера чем при запуске в bios
    Что однако очень неудобно
    BOOTx64.EFI запускает /boot/grub
  2. Добавил bootia32.efi
    Взял из - https://forum.ubuntu.ru/index.php?topic=286975.0
    Это запускал один планшет. Его efi только так запустился
    Но grub.cfg нужен только для bootia32.efi

Пробую EFI загрузку в нетбуке DIGMA CITI E401 Ubuntu Edition
Все удачно и работает, но с флэшки.
При попытке установить MagOS на eMMC uird не “видит” этого диска.
Тут загрузка в UIRD зависает, но если в этот момент подключить флэшку, то загрузка продолжится только с флэшки.
Вот подключенные диски, при загрузке с флэшки :

magos ~ # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 674M 1 loop /memory/bundles/05-m7b3mm9-1-
loop1 7:1 0 24,3M 1 loop /memory/bundles/12-drivers.pf
loop2 7:2 0 76,3M 1 loop /memory/bundles/14-x-base.pfs
loop3 7:3 0 61,5M 1 loop /memory/bundles/16-multimedia
loop4 7:4 0 296,1M 1 loop /memory/bundles/18-drakmga.pf
loop5 7:5 0 197,6M 1 loop /memory/bundles/22-x-Plasma.p
loop6 7:6 0 238,3M 1 loop /memory/bundles/30-x-utilitie
loop7 7:7 0 268,6M 1 loop /memory/bundles/31-x-network.
loop8 7:8 0 276M 1 loop /memory/bundles/33-office.pfs
loop9 7:9 0 21,6M 1 loop /memory/bundles/39-syspach.pf
loop10 7:10 0 8M 1 loop /memory/bundles/45_save-base.
loop11 7:11 0 26M 1 loop /memory/bundles/55-magosm-1.x
loop12 7:12 0 54,9M 1 loop /memory/bundles/60-uird-1_0_5
loop13 7:13 0 16K 1 loop /memory/bundles/63-add-lxqt-s
sda 8:0 1 29,1G 0 disk
├─sda1 8:1 1 256M 0 part
├─sda2 8:2 1 2M 0 part
├─sda3 8:3 1 7,8G 0 part
└─sda4 8:4 1 21,1G 0 part /memory/data/mounts/0
mmcblk0 179:0 0 28,9G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part
├─mmcblk0p2 179:2 0 2M 0 part
├─mmcblk0p3 179:3 0 7,8G 0 part
└─mmcblk0p4 179:4 0 20,9G 0 part
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
zram0 251:0 0 2,7G 0 disk [SWAP]

Здесь :
Находятся в /dev
mmcblk0 - сам диск eMMC
mmcblk0p3 - раздел диска на NTFS для Windows
mmcblk0p4 - раздел диска на EXT4 для Linux
mmcblk0p1 - раздел диска на FAT32 для загрузчика EFI
mmcblk0p2 - раздел диска для BIOS_boot

Windows, в виде WinPE для Windows 10 на EFI, прекрасно стартует
Но UIRD, как уже писал, не видит mmcblk0 (это диск eMMC)
Можно ли как то это исправить ?

Инфа - http://fliplinux.com/dev-mmcblk0-2.html

Предположительно в uird.MagOS.cpio.xz отсутствует модуль :
/usr/lib/modules/$KERNEL/kernel/drivers/mmc/core/mmc_block.ko.xz
Отсутствуют модули : mmc_test.ko.xz и sdio_uart.ko.xz

Виноватым оказался uird. Доустановил нужные модуля все заработало.
Непонятно почему ядро нельзя просто скопировать в загрузчик uird.MagOS.cpio.xz
Пробовал MagOS-Linux запускать с загрузчиком initrd.gz, так там вообще нет модулей для eMMC

Добавим эти модули. Спасибо!
Все модули не используются по причине большого объема.

Только это еще не все модули.
Вот изменения в mkuird.cfg :

KM_base="loop pata_acpi ata_generic ahci xhci-hcd xhci-pci xhci-plat-hcd ohci-pci usb-storage uhci-hcd lockd evdev af_packet
hid usbhid ehci-hcd ohci-hcd ehci-pci ehci-platform hid-generic sr_mod sd_mod scsi_mod jbd jbd2 sunrpc cbc mmc_block mmc_test sdio_uart
mmc_spi mtk-sd rtsx_pci_sdmmc rtsx_usb_sdmmc via-sdmmc sdhci-acpi cb710-mmc alcor sdhci-pci
=drivers/ide =drivers/ata =drivers/usb/storage =drivers/usb

Добавил модули как в инфе но не заработало.
Добавил :slight_smile:

mmc_spi mtk-sd rtsx_pci_sdmmc rtsx_usb_sdmmc via-sdmmc sdhci-acpi cb710-mmc alcor sdhci-pci

И все ок !
Только добавлял по принципу “кашу маслом не испортишь”
Может что и лишнее. Но все работает и ничего делать больше не хочется.
Надо бы, для верности, добавить всю папку /usr/lib/modules/$KERNEL/kernel/drivers/mmc/host Но не получилось. А расписывать загрузку по модулям как то хлопотно

PS :

А вообще EFI загрузка это класно ! Все упрощается.
Для EFI применил refind - https://www.bootdev.ru/2017/02/Ustanovka-rEFInd.html
Только конечно обновленный.

  • Ничего делать не надо. Сам находит efi загрузчики. Остается только нажать на кнопку
  • Это же и минус. Подкорректировать не получилось
    И refind запускает grub2 и там уже можно все корректировать

А не пробовали так:

=drivers/mmc

?

Странно но все получилось. Спасибо
Странно то что много чего пробовал, но по видимому кроме этого варианта.
И папка mmc скопировалась в полном объеме !

Внёс изменения в текущую сборку:

  • переименовал BOOTx64.EFI
  • добавил bootia32.efi
  • добавил в initrd.gz драйверы mmc/core/* mmc/card/*

Спасибо за сообщение

Я добавил папку drivers/mmc ( =drivers/mmc) в ядре загрузчика uird
На initrd.gz к сожалению не проверял, в виду его отсутствия в Магее
Проверил только загрузку MagOS-Linux с загрузчиком initrd.gz на планшете с диска eMMC и MagOS не загрузился.

На планшете с диском eMMC была предустановлена Ubuntu.
Конечно весьма интересно , но по функционалу это посмотреть видео, послушать музыку ну в браузер запустить.
Что то до устанавливать систему мне стало не интересно и удалил Ubuntu и установил свою сборку.
Что можно отметить. Конечно круто.

  • Сборку на диске eMMC сделал за 1 час 20 мин
  • Так на домашнем компе ( Pentium, 2 ядра, 3 Мгц) уходило 4 - 5 часов

Но вместе с тем появились и проблнмы :wink:

  1. При попытке записать полученную сборку на флэшку, система вероятно думает что флэшка это диск eMMC и записывает на очень большой скорости.
    Но так как это флэшка и скорость записи гораздо меньше, то после того как запись закончилась, приходится ждать когда закончится действительная запись.
    Похоже, что запись ведется куда то в память, а потом уже перезаписывается на флэшку

  2. Все конечно хорошо, но как теперь записать на флэшке bios загрузку для grub2 ?
    Запускал grub2-install и он пытается записать загрузку для x86_64-efi
    Естественно ничего не получается.
    Конечно это мелочь и я могу на обычном компе записать на флэшке bios загрузку
    Но это не совсем удобно.

По пункту 1. Это обычное поведение. Зависит от доступной оперативы и настроек ядра. После копирования запускайте sync и ждите, ждите, ждите… В инсталляторе магоса так и сделано, случалось до пяти минут ожидание при установке на флешку.

Задал sync “адрес монтирования флэшки” и вроде нормально.
Но и не так уж долго приходится ждать больше паника.

По пункту 2
Записать на флэшке bios загрузку для grub2 на эфи-нетбуке возможно :blush:

GRUBINST="$MYMNT1/sbin/grub2-install"
PLFRM="$MYMNT1/sbin/i386-pc"
$GRUBINST --no-floppy --recheck --root-directory=$MYMNT0 --directory=$PLFRM $MBR

Надо в опциях задать платформу (/i386-pc)
Причем grub2 из системы был удален. Получилась чистая загрузка.
Но проблема
grub2-install пишет в /boot/grub2
планшет загружается из /boot/grub
Пока сделал ссылку /boot/grub2 на /boot/grub
Т е все теперь пишется в /boot/grub и читается из /boot/grub
Работа ок !
Что то путанница с именами.

PS :slight_smile:

grub - https://www.gnu.org/software/grub/grub-download
Или

git clone git://git.savannah.gnu.org/grub.git

Скомпилировал нормальный grub а не grub2. Интересно почему не grub3 или grub5
Полученный grub-install нормально устанавливает и работает с /boot/grub
Теперь refind и grub (бывший grub2) разговаривают на одном языке.
Тем более, что имя данное разработчиками все таки grub
И другие имена не запрещаются, но и не приветствуются