From: Leonid Krivoshein <klark.devel@gmail.com> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] udhcpc script в фиче network Date: Thu, 23 Sep 2021 01:06:33 +0300 Message-ID: <b5a40877-30a3-6d5b-8664-a53e85528594@gmail.com> (raw) In-Reply-To: <20210922190348.rrn3cjywjwwcrhbl@example.org> 22.09.2021 22:03, Alexey Gladkov пишет: > On Wed, Sep 22, 2021 at 07:12:06PM +0300, Leonid Krivoshein wrote: >> [...] Поэтому >> я бы предпочёл не менять нынешнюю конструкцию, конфигурировать в диалогах >> после запуска udev то, что не было сконфигурировано в командой строке, на >> худой конец, прибегать к технике повторного сканирования, реализованной в >> пропагаторе. И пусть параллельно с этим отрабатывают эвенты udev. > А то что хочешь делать ты не ложится в текущую архитектуру. Во многих > местах код рассчитывает, что конфигурация уже задана. Настройка сети одно > из таких мест. Эвенты от интерфейса будут проигнорированы если нет > конфигурации. В сегодняшней версии 0.1.5-alt3 эту проблему устранили, благодаря тебе, конечно лучше глянуть код. Уже проверил и скоро выгружу. Теперь сеть идеально взлетает без диалогов и без форка фичи network. Без диалогов -- временная мера, просто сделан задел на будущее. Если сравнивать altboot с propagator, то один из минусов первого -- отсутствие диалогов конфигурирования сети. Но благодаря фиче network в самом make-initrd это можно пережить, хотя лучше, чтобы эти диалоги тоже были. Другой минус, я надеюсь, мы тоже почти преодолели -- он в теме. Теперь все те же опции мы можем брать по протоколу DHCP. А других минусов нет, остаются только плюсы, их становится всё больше. > То есть придётся понимать такую ситуацию и ставить очередь network на > паузу в ueventd. Это решит одну проблему, но все. Как раз я представлял себе работу всего pipeline/bootchain с диалогами, в целом, как полноценную программу, работающую в обычной среде. Мы же не останавливаем в stage2 работающий udev каждый раз, когда нам что-то нужно. Propagator работает параллельно с udev, такое же поведение у altboot. Главное, как мне кажется, это две вещи: make-initrd при root=pipeline/bootchain ни при каких обстоятельствах не должен найти корень раньше, чем ему об этом скажет pipeline/bootchain, какие бы эвенты ему не пришлось параллельно обрабатывать. И второе: код самих pipeline/bootchain/altboot должен быть готовым работать в ситуации готовности к начальной загрузке, чтобы сканировать, ждать, если устройств ещё нет, при этом не создавать рейсов. Тогда эта концепция будет работать. Про диалоги и опции конфигурирования отдельно скажу. > Если ты хочешь вернуться в начало, то нужно будет уметь откатываться на > исходное состояние и начинать с начала. К этому некоторый код вообще не > готов. К этому всегда должен быть готов код в altboot. Сейчас он пишется с таким расчётом. Сеть там просто единожды опрашивается, поднятый интерфейс запоминается. При перезапуске altboot используется ранее созданная конфигурация. Пока так... > Начало происходить то чего я опасался. Не начало и не начнёт. Напротив, ждём не дождёмся, когда это закончится! Вот и Антон Мидюков вчера настаивал, чтобы я приступил к процессу апстрима, т.к. почти все его замечания были устранены, а он проверяет на всех мыслимых кейсах и регулярках, на разных архитектурах. Не начнёт, потому что мне эту ношу не потянуть, я лишь помогу в той части, что обещал, но не более. > Ты где-то отдельно пишешь код Код отправляю пока в Сизиф и в локальную гитовницу: git.altlinux.org/people/klark/packages/make-initrd-bootchain.git > вместо того чтобы обсуждать и порциями добавлять. Если бы работы по обсуждённому ранее плану были завершены, мне бы только и оставалось, что добавлять порциями. Но к сожалению работы ещё много. Ты сам настаивал, чтобы продукт был тщательно проверен до того, как он поедет в апстрим. Находятся замечания, предложения, приходится их устранять и учитывать. А из-за этого у меня откладывается работа по автоматизации тестового стенда. Конечно лучше, чтобы в апстрим поехал безупречно работающий продукт. Ты и сам уже можешь посмотреть код в Сизифе, пощупать очередные регулярки с разными опциями и методами загрузки. Лично мне кажется, что ни один пакет у нас так пристально не проверялся, попадая в обычные продукты. Но altboot -- важное звено в процессе загрузки и моя задача учесть совместимость с уже сделанным в Альте за многие годы. > В итоге ты уверенно > движешься к форку уже самого make-initrd (именно это ты и делаешь, > поверь). Поверь, этому не бывать! ;-) > Ты уже спроектировал и реализовал свою систему так с чем я не > могу согласиться. Предлагаю не делать поспешных выводов. Фичи pipeline и network ты спроектировал. propagtor проектировал не я, но мне приходится во многом повторять его и его поведение, при этом я стараюсь не делать форк фич там, где это возможно, мы решаем задачу по избавлению от propagator и запихиванию его функционала в make-initrd. Всё это проделано зря, если вместо propagator предложить в чистом виде pipeline или иную новую концепцию загрузки, которая будет идеальной с точки зрения make-initrd, но непригодной для реального применения без переделки всего остального. Как раз я старался учесть возможность перехода в будущем на более правильные концепции. Но сейчас и тебе надо принять, как данность, что пусть "функционал пропагатора" с твоей точки зрения не идеален, лучше чтобы он был внутри make-initrd и работал как 1/80 часть его рантайма, а не наоборот, чтобы настоящий propagator полностью выкидывал и заменял собой все 100% рантайма make-initrd. Можно и нужно обсуждать, как лучше сделать это, не ломая совместимости, и учитывая потребности перехода на что-то более правильное в перспективе. > И я до сих пор не видел ни одного патча. Поэтому для > меня каждая твоя проблема является большим сюрпризом. Кажется, несколько попыток я уже делал, в частности, отдельно предлагал bootchain-interactive. Но, как я понял, ты хочешь принять всё одним разом, и только после тщательной проверки всей связки. Так мы этой проверкой сейчас занимаемся. После этого мне ещё README для каждой фичи писать и только потом делать коммиты в апстрим -- таков был план. > [...] > Я говорил про удаление всей конфигурации не только из-за IFNAME. Если у > тебя был dhcp на интерфейсе, а теперь пользователь хочет статику, то dhcp > нужно аккуратно остановить. В текущей простой ситуации, которую нельзя назвать финальным/идеальным вариантом, у пользователя нет шансов что-либо захотеть. :-) http://git.altlinux.org/gears/m/make-initrd-bootchain.git?p=make-initrd-bootchain.git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=5a1a8d2acd09c06d8091b921803850ea313de2ed;hb=9305bcd041b50b018d7fa4c11cebac4123514b26#l24 Т.е. в версии 0.1.5-alt2 тут вообще диалог о том, что "перезагрузись и сконфигурируй сеть через /proc/cmdline". В версии 0.1.5-alt3 этот же диалог и перезагрузка будет только в случае, если недоступен протокол IPv4. > [...] > Сначала я хочу понять зачем так в принципе делать т.к. cmdline.d/network > не для этого вообще. Мне кажется странным пытаться сконфигурировать сеть > путём эмуляции указания /proc/cmdline. /proc/cmdline удобен тем, что можно что-то подлатать на лету, обойти проблемы, но это не лучшее место для хранения конфигурации. Даже ядерщики дожили до bootconfig. Я понимаю, что когда ты писал код фич, ты не рассчитывал на их повторный запуск. Но как мне быть, если нужно не сконфигурированную фичу сконфигурировать и перезапустить? Не делать же очередной форк! Твоя фича рассчитывает на параметры из /proc/cmdline. А полная совместимость с пропагатором требует другого синтаксиса, который я мог бы расширить. В общем, я прикладываю усилия, чтобы использовать твою готовую фичу. И кажется, это удалось! Я же как раз не хочу делать форк всей или даже части фичи network, хотя и она "часть замены пропагатора", напротив, есть желание пристроится к уже готовому. > [...] > Я с самого начала обсуждения диалогов говорил, что они должны быть сделаны > на системном уровне, чтобы весь код был готов к изменению параметров, но > почему-то меня не услышали. Тебе видней, как это реализовать на системном уровне, разве кто-то будет возражать! Я не так хорошо пока знаю архитектуру make-initrd, но предлагал перетащить на верхний уровень bootchain-interactive. Кстати, только сегодня думал, что может как раз не стоит перетаскивать, а лучше оставить в составе пошаговой загрузки на отдельном терминале. Потому что разные фичи (запущенные демоны) должны выстраиваться в очередь, диалоги не должны мешаться, они не всегда бывают диалогами ввода. Про перевод всех параметров /proc/cmdline в форму диалогов я правда слышу в первый раз. Мне кажется сомнительной такая возможность. Но пристраивание диалогов к имеющимся фичам мы тоже хотели с тобой обсудить и возможно нам сегодня удалось это реализовать, ниже-то речь как раз об этом: >>>> Если удастся найти рабочий вариант с диалогами настройки сети "вдогонку", у >>>> нас снимется много вопросов о том, как интегрировать bootchain/interactive с >>>> уже имеющимися фичами make-initrd. Будет хороший пример, как это можно >>>> сделать. P.S.: Если хочешь, давай остановимся на версии 0.1.5-alt3 и начнём её апстримить. Вот прямо сегодня! :-) А там уже будем обсуждать изменения, необходимые сразу и после апстрима. Я уверен, что хуже от этого никому не станет. Даже если что-то там ещё окажется не идеальным, наличие altboot внутри make-initrd не помешает никому собирать образы с проверенным пропагатором. И никто не заставляет ставить фичи типа make-initrd-bootchain в свою систему. К тому же эта версия последняя, исправляющая замечания, две следующие планировались по "хотелкам", которые можно отложить на полгода. Самое жёсткое пересечение -- это форк фичи pipeline в bootchain, только оно может затронуть нынешних пользователей pipeline, коих не так много. -- Best regards, Leonid Krivoshein.
next prev parent reply other threads:[~2021-09-22 22:06 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-17 20:48 Leonid Krivoshein 2021-09-17 22:08 ` Alexey Gladkov 2021-09-19 21:50 ` Leonid Krivoshein 2021-09-21 22:51 ` Leonid Krivoshein 2021-09-22 0:16 ` Leonid Krivoshein 2021-09-22 10:01 ` Alexey Gladkov 2021-09-22 10:09 ` Alexey Gladkov 2021-09-22 10:56 ` Leonid Krivoshein 2021-09-22 11:41 ` Alexey Gladkov 2021-09-22 12:06 ` Leonid Krivoshein 2021-09-22 13:08 ` Alexey Gladkov 2021-09-22 14:46 ` Alexey Gladkov 2021-09-22 16:12 ` Leonid Krivoshein 2021-09-22 19:03 ` Alexey Gladkov 2021-09-22 22:06 ` Leonid Krivoshein [this message] 2021-09-23 0:45 ` Alexey Gladkov 2021-09-23 2:31 ` Антон Мидюков 2021-09-23 8:59 ` Alexey Gladkov 2021-09-23 20:40 ` Leonid Krivoshein 2021-09-23 21:15 ` Alexey Gladkov 2021-09-23 21:55 ` Arseny Maslennikov 2021-09-23 22:41 ` Alexey Gladkov 2021-09-23 22:51 ` Leonid Krivoshein 2021-09-23 22:56 ` Leonid Krivoshein 2021-09-23 23:31 ` Alexey Gladkov 2021-09-23 2:40 ` Leonid Krivoshein 2021-09-23 11:38 ` Alexey Gladkov 2021-09-24 17:31 ` Leonid Krivoshein 2021-09-24 18:35 ` Leonid Krivoshein 2021-09-24 19:00 ` Alexey Gladkov 2021-09-24 20:09 ` Leonid Krivoshein 2024-03-07 19:18 ` Leonid Krivoshein 2024-03-12 17:42 ` Alexey Gladkov
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=b5a40877-30a3-6d5b-8664-a53e85528594@gmail.com \ --to=klark.devel@gmail.com \ --cc=make-initrd@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
Make-initrd development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/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 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \ make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com public-inbox-index make-initrd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.make-initrd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git