[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