From: Alexey Gladkov <gladkov.alexey@gmail.com> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] udhcpc script в фиче network Date: Fri, 24 Sep 2021 21:00:28 +0200 Message-ID: <20210924190028.6g45na2ufxjk7stz@example.org> (raw) In-Reply-To: <d328e906-e6fc-603e-2bcb-c764a1393566@gmail.com> On Fri, Sep 24, 2021 at 08:31:50PM +0300, Leonid Krivoshein wrote: > Привет! > > > 23.09.2021 14:38, Alexey Gladkov пишет: > > On Thu, Sep 23, 2021 at 05:40:10AM +0300, Leonid Krivoshein wrote: > > > > Этот репозитории повторяет стратегию make-initrd-propagator, который > > > > как-то встраивался в make-initrd. И то и другое отдельно стоящие вещи в > > > > себе. Новый, правда, интегрирован с основным кодом лучше. > > > Я так понимаю, это всё из-за интеграции с network. Но посуди сам: pipeline и > > > network, плюс ещё несколько новых фич, это и есть тот набор, что ты сделал > > > на замену пропагатора, я лишь приделываю к этому диалоги и совместимость с > > > нынешним stage2. Если что-то не так приделываю, можно же это предметно > > > обсуждать. Да, я сначала думал делать полный или частичный форк фичи > > > network, потому что были большие сомнения, что удастся с ней > > > интегрироваться. Но это последнее, что нужно было altboot, чтобы быть больше > > > похожим на propagator (по возможностям) и удалось обойтись без форка, в > > > отличии от pipeline. Ты можешь сказать, чем плоха такая интеграция? http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918 > > > -- работает просто идеально. > > Тут надо пояснить, что о работе и интеграции говорилось с учётом ранее > сказанного и того факта, что waitnet времянка снаружи, а не заапстримленный > код внутри make-initrd. При создании waitnet ставилась совершенно > определённая цель и в этом плане она выполнена на 100%, далее объясню, > почему... > > > > К вопросу о ревью: вот и как предполагается комментировать код с git.alt ? > > Ок, буду по ссылкам. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l12 > > Уже понял, что лучше отдельными патчами в рассылку. Просто, когда-то давно > ты и так принимал. > > > > Про это я уже писал. Это проверяется не так. > > С has_feature() я разобрался. И в новой версии уже она. Но пока код не > заапстримлен, полагаться на API в make-initrd и тем более привязываться > жёстко к каким-то фичам весьма рисково: любая твоя новая сборка с таким > изменением сможет поломать работу ещё не заапстримленного altboot, поэтому я > иду по пути минимальной привязки на данном этапе. Поэтому и: > > > Остальной интегрируется так, что не использует ничего из того с чем > > интегрируется. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l32 > > > > В network-sh-functions есть ipv4_enabled. > > Разумеется, я внимательно изучил код фичи и видел эту функцию. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l51 > > > > Теряются абсолютно все ошибки. Ошибки в ip=, в macaddr, в указании масок. > > Вместо всего этого будет "can't reconfigure network settings". Этого быть > > не должно. > > Тут я полностью согласен. Но уже говорил, что код не финальный. waitnet -- > времянка для выяснения конкретной возможности. Если выкинуть этот код, > выкинуть шаг waitnet из цепочки загрузки, все 4 сетевых метода сейчас будут > работать без него. Надо будет указывать ip=dhcp в /proc/cmdline или задавать > другие сетевые настройки. Поэтому отправка в /dev/null сейчас сделана чисто > чтобы не портить внешний вид диалога, наверное, лучше отправлять в 1>&2 в > этом месте. > > > > Также я уже говорил, что я думаю про дёргание /lib/initrd/cmdline.d/network. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l56 > > > > Этот шаг можно выполнить лишь один раз. > > Не согласен! :-) Ты делаешь внутри условия запись: if [ ! -s "$NETBOOT_IFNAME" ]; then ... echo "$netdev" >"$NETBOOT_IFNAME" fi Больше ты этот файл нигде не пишешь: http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git&a=search&h=0b2522e81ea6279295bae02a8aa77e84c86d3918&st=grep&s=NETBOOT_IFNAME то есть после записи в этот файл этот if никогда больше не выполнится. Этот шаг можно выполнить лишь один раз. > И waitnet демонстрирует это без чистки предыдущей > конфигурации. Объясню почему. Сейчас waitnet смотрит, была ли выполнена > конфигурация. И если конфигурировался только lo, то повторный запуск без > чистки ни на что не повлияет. Он же не создаст дублирующего правила udev, > т.к. перед дёрганием явно задаётся IFNAME="0". > > > > Это не вяжется у меня с > > > > "Can't bridge up network interface. Try with other network settings, wired > > connection and/or cable." > > > > Если пользователь попробует тот же интерфейс с другими настройками, то > > второй раз проверки не будет ??? > > На этом диалоге ранее выполнялся перезапуск машины, в версии 0.1.5-alt3 > решил в этом месте перезапустить altboot -- сейчас тут возврат в начальное > меню, где можно выбрать другой метод загрузки, не по сети. Т.е., прошло 16 > секунд, сеть так и не поднялась. Если этого мало, пользователь дойдёт сюда > снова. Но может и другой путь выбрать для загрузки. > > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l65 > > > > Хардкод имени интерфейса. is_loopback(). > > Не только, это ещё и break loop / защита от пустого каталога. Обычно я тут > ставлю "_". Тогда так и нужно писать: for d in /sys/class/net/*; do [ -d "$d" ] || continue ... done И не нужно отдельно вписывать lo. Он всегда там есть. > > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l67 > > > > Для чего эта проверка ? > > Чтобы предотвратить дальнейшую работу цикла, если мы имеем дело не с сетевым > интерфейсом. В этом каталоге только сетевые интерфейсы. > И ещё проверка того факта, что с момента вышестоящей команды ls > интерфейс не исчез. Это бессмысленно т.к. интерфейс может исчезнуть сразу после этой проверки. > > http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l73 > > > > Я полагаю это проверка на то что интерфейс поднят ? Если да, то is_link_up > > Если проверка на присутствие адреса, то "/.initrd/online/$NET_IF". > > Да, разумеется, про более тесную интеграцию я уже выше написал. Где-то ранее > мы как раз обсуждали, ты же сам и говорил, что надёжнее не дёргать > внутренности make-initrd, а проверять через ip. Эм. Кажется, ты меня неправильно понял. Где я такое писал ? > waitnet -- "проверка боем" того факта, что внутри make-initrd можно повторно > дёрнуть фичу network, выполнив конфигурирование в том случае, если его ещё > не было, возможность передать ему вполне конкретные настройки. Правильное > название этой фичи -- bootchain-network, правильное название шага с > диалогами (!) -- neconfig или netsetup, основная цель -- "не делать форк > фичи network" достигнута. > > Разумеется, netconfig/netsetup при апстириме нужно будет интегрировать с > фичей network более жёстко, но тогда тебе придётся следить в обеих местах, > чтобы не разъезжалось. Собственно, именно это и было целью эксперимента > "waitnet", и целью одной из так и не состоявшихся встреч -- обсудить > принципиальную возможность интеграции существующих фич с > bootchain/interactive. > > > > > > Кроме того, если тебе нужно поведение propagator, то он уже есть и незачем > > > > его переизобретать. > > > Выше озвучивались не просто общие слова -- у нас куча граблей и нет способа > > > быстро перейти на make-initrd + pipeline с ними. Вот простейший пример, мы > > > готовимся избавиться от isolinux для legacy/x86, но сколько это будет > > > тянуться -- неизвестно. Он сам (его брэндинг) добавляет опции пропагатора в > > > загрузку и на это приходится ориентироваться, так как если не работает, > > > сразу баг. > > Я уж не знаю вашей кухни, но вообще-то, да, это сразу бага. > > Бага на брэндинг. Он передаёт устаревшие параметры. > > Всё так, но надо учитывать, что их куча, и нет цели и возможности исправить > это всё сразу. Это не оправдание для костылей любой ценой в новом коде. > > [...] > > А тут ты про некую последовательность коммитов говорил, но где они ??? > > Я до сих пор не получил ни одного коммита. Все эти разговоры пустая > > болтовня какая-то. > > И с этим вроде разобрались, а то github, ещё PR какой-то. Я предложил несколько альтернативных вариантов. В целом, github это всё тот же git репозиторий, только в дополнение он сам вызывает некоторые мои тесты. -- Rgrds, legion
next prev parent reply other threads:[~2021-09-24 19:00 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 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 [this message] 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=20210924190028.6g45na2ufxjk7stz@example.org \ --to=gladkov.alexey@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