ALT Linux Distributions development
 help / color / mirror / Atom feed
From: Leonid Krivoshein <klark.devel@gmail.com>
To: devel-distro@lists.altlinux.org
Subject: Re: [devel-distro] Несколько ядер в stage1 и stage2
Date: Thu, 27 Feb 2020 04:46:07 +0300
Message-ID: <a57e7088-3345-efd0-efdb-daae9e04fafa@gmail.com> (raw)
In-Reply-To: <fe02e2ba-8302-549e-29c1-ad75c1fb4fa8@ya.ru>


26.02.2020 14:01, Антон Мидюков пишет:
> 26.02.2020 02:31, Leonid Krivoshein пишет:
>>
>> 25.02.2020 21:58, Антон Мидюков пишет:
>>> 26.02.2020 01:31, Leonid Krivoshein пишет:
> [...]
>>> Я застрял на том, что надо как-то ядро выбирать в syslinux, grub и 
>>> rEFInd. Подумай, как можно реализовать выбор ядер в них. В syslinux 
>>> же и поправить название ядра нельзя интерактивно?
>>
>> Интерактивно не нужно. 
>
> Нужно для проверки, работает вообще или нет :-) Я собрал 
> regular-jeos-sysv.iso с grub-efi. Интерактивно поменял имя ядра и 
> propagator.

Интерактивно, в смысле -- в его редакторе?


> Загрузился удачно. Установился тоже удачно. Установились оба ядра.

А initrd? Он в инсталляторе только один создаётся.
И что в меню после установки? Тоже только одно ядро?
Уверен, в установленной системе со вторым ядром не загрузишься, хоть 
пакет и стоит.
И даже, если запускать второй раз make-initrd -k ... , будет искажённый 
plymouth, проверено ни один раз.


> Ин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.



  parent reply	other threads:[~2020-02-27  1:46 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-04 18:02 [devel-distro] Возвращаем возможность задания порядка загрузки ядер Антон Мидюков
2020-02-25 18:31 ` Leonid Krivoshein
2020-02-25 18:58   ` [devel-distro] Несколько ядер в stage1 и stage2 Антон Мидюков
2020-02-25 19:31     ` Leonid Krivoshein
2020-02-26  6:02       ` Nikolai Kostrigin
2020-02-26 10:43         ` Leonid Krivoshein
2020-02-26 10:55           ` Anton V. Boyarshinov
2020-02-26 11:01       ` Антон Мидюков
2020-02-26 12:02         ` Sergey V Turchin
2020-02-27  1:53           ` Leonid Krivoshein
2020-02-27  6:01             ` Sergey V Turchin
2020-02-27 10:06             ` Anton V. Boyarshinov
2020-02-27  1:46         ` Leonid Krivoshein [this message]
2020-02-27 10:04           ` Anton V. Boyarshinov
2020-02-27 11:42             ` Leonid Krivoshein
2020-02-27 11:50               ` Anton V. Boyarshinov
2020-02-27 12:31                 ` Leonid Krivoshein
2020-02-27 12:51                     ` Антон Мидюков
2020-02-27 13:02                       ` Leonid Krivoshein
2020-02-28  3:21                           ` Leonid Krivoshein
2020-02-28  3:35                             ` Антон Мидюков
2020-02-28  3:50                               ` Anton Farygin
2020-02-28  3:52                                 ` Leonid Krivoshein
2020-02-28  3:57                                 ` Антон Мидюков
2020-02-28  4:02                                   ` Anton Farygin
2020-02-28  4:11                                     ` Антон Мидюков
2020-02-28  8:33                                       ` Anton Farygin
2020-02-28 10:32                                   ` Leonid Krivoshein
2020-03-04 16:09                                     ` Антон Мидюков
2020-03-04 17:50                                       ` Leonid Krivoshein
2020-03-04 18:00                                         ` Антон Мидюков
2020-03-04 18:03                                           ` Leonid Krivoshein
2020-03-05  7:50                                         ` Sergey V Turchin
2020-03-11 19:49                                       ` Антон Мидюков
2020-02-27 11:58               ` Антон Мидюков
2020-02-27 12:39                 ` Leonid Krivoshein
2020-02-27 12:48                   ` Антон Мидюков
2020-02-27 13:09                 ` Leonid Krivoshein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a57e7088-3345-efd0-efdb-daae9e04fafa@gmail.com \
    --to=klark.devel@gmail.com \
    --cc=devel-distro@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-distro


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git