[devel-distro] Несколько ядер в stage1 и stage2
Anton V. Boyarshinov
boyarsh at altlinux.org
Thu Feb 27 13:04:37 MSK 2020
> А initrd? Он в инсталляторе только один создаётся.
> И что в меню после установки? Тоже только одно ядро?
> Уверен, в установленной системе со вторым ядром не загрузишься, хоть
> пакет и стоит.
> И даже, если запускать второй раз make-initrd -k ... , будет искажённый
> plymouth, проверено ни один раз.
Ничто не мешает сделать initrd, в котором будут модули для двух ядер. Тем более, что в установщике они всё равно в отдельном cpio chank, а не в том, который делается make-initrd
>
> > Инcталлятор править не нужно, если такое поведение устраивает, то
> > только livecd-install нужно исправить.
> >
> > Так что осталось только выбор ядер организовать при загрузке в
> > syslinux, grub и rEFInd.
> >
>
> Пока начал с syslinux. Самое простое -- текстовое меню. В m-p оно
> собирается из кусочков. Действия по изменению в целевом
> /syslinux/isolinux.cfg тривиальные:
>
> label linux
> kernel alt0/vmlinuz
> append initrd=alt0/full.cz ...
>
> Обращаем внимание на /syslinux/gfxboot.cfg (mainmenu.entries=8) и тут же
> bootlogo, ru.hlp, ru.tr.
>
> bootlogo -- это cpio-архив с бинарём и дублем файла languages из
> /syslinux. В ru.hlp и ru.tr -- выводимое на экран. По клавише F5
> выбирается архитектура ядра -- 32 бит или 64 бит на Альт Workstation 9,
> т.е два ядра в меню syslinux поддерживалось издревле, этот 4-й syslinux
> -- та ещё поросль мха.))
>
> Содержимое этих файлов к пакету syslinux не имеют отношения. Полагаю,
> отрыть источник можно где-то в брэндинге.
>
>
> >> То есть, кажется, в syslinux это было уже реализовано генерацией
> >> отдельных пунктов и завязано на какую-то клавишу, типа F3, F4, F5.
> > По F5 можно выбрать опции загрузки ядра: Default, Safe Settings, No
> > ACPI, No Local APIC. Не уверен, что это то место, где нужно сделать
> > выбор ядер.
>
> Выгрыз из /syslinux/ru.hlp
>
> F5 Ядро: выбор профиля параметров ядра.
> bits
> Выбор архитектуры
> Вы должны выбрать, устанавливать 32-разрядную или 64-разрядную версию
> ALT Workstation 9.0.
>
> Есть гипотеза: в /syslinux/isolinux.cfg после gfxboot указывается
> message, скорее всего, он тоже с брэндингом приезжает (тема "ALTLinux")
> и вероятно не стыкуется с данным хэлпом по клавише F5. Нужно
> поковыряться в истории гита на предмет изменений того, что этот файл
> генерирует.
>
>
>
> >> В grub'е тоже возможна завязка на горячие клавиши, но там структура
> >> меню всё равно другой будет.
> > Можешь ссылками какими-нибудь поделиться? Я ничего нужного не нашёл.
>
> https://www.gnu.org/software/grub/manual/grub/html_node/menuentry.html#menuentry
> https://www.gnu.org/software/grub/manual/grub/html_node/submenu.html#submenu
>
> menuentry 'ALT Workstation 9' --hotkey=i ...
>
> Гоша говорил... но вот оказывается это всё. Ещё есть vendors keys, но
> это немного о другом. Возможно, заработает на скрытых пунктах подменю, а
> там и целые скрипты писать можно.
>
>
> >> Там ещё нет локализации и брэндинга, так что на grub я бы пока не
> >> ориентировался, хотя все очень ратуют ЗА него, ещё лучше к 9.1.
> >
> > Да, можно и нужно сделать. Но на aarch64 похоже этого не сделать.
>
> На aarch64 пока не нужно. Хотя с брэндингом начать никогда не поздно,
> только графика для aarch64 д.б. опцией в m-p. Согласен с shaba@, что
> язык тут не нужен. Нет клиентов у этого интерфейса. Сейчас выбор языка
> всё равно делается на других шагах.
>
>
> >
> >> В случае refind используется конгломерат загрузчиков, как там делать
> >> -- лучше спросить у Николая Костригина и Михаила Шигорина, вроде эту
> >> мешанину собирались упорядочить и перетащить в m-p из mkimage. Если
> >> не изменяет память, второй уровень из текстовых строк в refind
> >> строить можно (типа подменю), а на первый уровень места для значков
> >> может не хватить.
> >>
> > Подменю нормальный вариант, что для rEFInd, что для grub.
>
> Для grub -- да. В refind'е там странная конструкция сейчас, что-то типа
> языков руками захардкорено, но языки тут и не нужны. И есть что-то про
> iMac'и, но боюсь давно не проверялось и может не работать. По крайней
> мере, недавно жалоба была, а это субменю всё равно никто не видит.
>
>
> >>
> >>>
> >>> Но и актуализировать надо патчи, сейчас они не наложатся. Я начну их
> >>> воскрешать. Потом нужно ещё livecd-install поправить (знаю где).
> >>>
> >>> По инсталлятору вопрос, как он их будет ставить? Его тоже надо будет
> >>> смотреть и править (в него не заглядывал).
> >>>
> >>
> >> Инсталлятор ставит всё одним-двумя apt-get'ами по выбранному профилю
> >> (alterator-pkg). По-минимуму, здесь придётся поправить лишь одно:
> >> чтобы автоматически в этот выбор попадало то ядро, на котором
> >> загрузились. Иначе последующий make-initrd приведёт к не очень
> >> красивому бутсплэшу, а может, и железо будет определяться не совсем
> >> корректно, что приведёт машину к окирпичиванию. Лучше ставить все
> >> ядра и класть более универсальные initrd (у нас такой только с
> >> пропагатором идёт), а вот выбор дефолтного (симлинком в /boot)
> >> оставить пост-установочному скрипту. Это в идеале, чтобы "работало
> >> везде", но на initrd времени уйдёт больше, конечно.
> >>
> > 1. Я считаю, что по дефолту должно ставиться только то ядро, с которым
> > загрузились. Остальные должны удаляться до установки загрузчика. Можно
> > какую-нибудь галочку сделать, чтобы изменить это поведение. Ядра то
> > могу быть под какую-нибудь особую железку, которой другие ядра не
> > подходят. Да и не нужны пользователю кучи ядер. Нужно одно, которое
> > будет работать.
> >
>
> Одна задача: не взлетели с std-def, ребутаемся и пробуем с un-def.
> Вторая задача: запихиваем на один ISO-диск несколько загрузочных систем
> или даже архитектур (mike@ такое делал для Эльбрусов, кстати, но m-p не
> заточен под такое сейчас, только через ISO-data или переупаковкой
> руками). Хотя, сейчас он вернётся, и скажет своё веское...))
>
>
> > 2. Универсальный initrd делается добавлением нужных фич. Нужно
> > определиться какие нам фичи нужны, и сделать их
> > платформо-независимыми. Но это другая задача.
>
> Платформо-зависимого там тоже немало. Мы же конкретными модулями должны
> забить его и скрипт как раз в mkimage это умеет делать, и список модулей
> там же вроде рядышком. Только пропагатор туда, если не пихать, получится
> вполне штатный initrd.
>
>
> >>> Работы много, быстро не взлететь.
> >>
> > Первые испытания обнадёживают :-)
> >
>
> Твоими стараниями! Спасибо!!!
>
>
> --
> Best regards,
> Leonid Krivoshein.
>
> _______________________________________________
> devel-distro mailing list
> devel-distro �� lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel-distro
More information about the devel-distro
mailing list