Make-initrd development discussion
 help / color / mirror / Atom feed
* [make-initrd] Добавить udev правило в initrd через initrd.mk
@ 2021-09-23 13:37 Антон Мидюков
  2021-09-23 14:05 ` Alexey Gladkov
  0 siblings, 1 reply; 26+ messages in thread
From: Антон Мидюков @ 2021-09-23 13:37 UTC (permalink / raw)
  To: make-initrd

Здравствуйте

Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.
Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в
в enp0s8 подобные названия.

Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
можно и не подключиться (сетевой интерфейс подключен один).

Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.

-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 13:37 [make-initrd] Добавить udev правило в initrd через initrd.mk Антон Мидюков
@ 2021-09-23 14:05 ` Alexey Gladkov
  2021-09-23 14:20   ` Антон Мидюков
  2021-09-23 14:43   ` Arseny Maslennikov
  0 siblings, 2 replies; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-23 14:05 UTC (permalink / raw)
  To: make-initrd

On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
> Здравствуйте
> 
> Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
> Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.

Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules,
которая активна по умолчанию:

PUT_UDEV_RULES += *-net-setup-link.rules

либо просто:

PUT_FILES += /lib/udev/rules.d/80-net-setup-link.rules

> Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в
> в enp0s8 подобные названия.

Это не оно.

> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> можно и не подключиться (сетевой интерфейс подключен один).

Переименовывает systemd или что-то около его. Насколько я помню на это
влияет присутствие dmidecode.

Это не моё дело, но инсталлер неправ, когда использует имена без
последующей привязки имени к mac или businfo.

> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.

initrd как раз ничего не переименовывает. Имя eth* каноническое.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:05 ` Alexey Gladkov
@ 2021-09-23 14:20   ` Антон Мидюков
  2021-09-23 14:36     ` Alexey Gladkov
  2021-09-23 16:12     ` Антон Мидюков
  2021-09-23 14:43   ` Arseny Maslennikov
  1 sibling, 2 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-23 14:20 UTC (permalink / raw)
  To: make-initrd

23.09.2021 21:05, Alexey Gladkov пишет:
> On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
>> Здравствуйте
>>
>> Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
>> Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.
> 
> Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules,
> которая активна по умолчанию:
> 
> PUT_UDEV_RULES += *-net-setup-link.rules
> 

Спасибо!

> либо просто:
> 
> PUT_FILES += /lib/udev/rules.d/80-net-setup-link.rules
> 
>> Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в
>> в enp0s8 подобные названия.
> 
> Это не оно.
> 
>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>> можно и не подключиться (сетевой интерфейс подключен один).
> 
> Переименовывает systemd или что-то около его. Насколько я помню на это
> влияет присутствие dmidecode.
> 
> Это не моё дело, но инсталлер неправ, когда использует имена без
> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
> 
> initrd как раз ничего не переименовывает. Имя eth* каноническое.
> 

Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.


-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:20   ` Антон Мидюков
@ 2021-09-23 14:36     ` Alexey Gladkov
  2021-09-27 15:38       ` Антон Мидюков
  2021-09-23 16:12     ` Антон Мидюков
  1 sibling, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-23 14:36 UTC (permalink / raw)
  To: make-initrd

On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
> >> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> >> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> >> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> >> можно и не подключиться (сетевой интерфейс подключен один).
> > 
> > Переименовывает systemd или что-то около его. Насколько я помню на это
> > влияет присутствие dmidecode.
> > 
> > Это не моё дело, но инсталлер неправ, когда использует имена без
> > последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
> > 
> > initrd как раз ничего не переименовывает. Имя eth* каноническое.
> > 
> 
> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.

Я предлагал наоборот в stage2 добавить аналог цикла:

https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175

или в системе их кто-то всё равно пытается переименовать ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:05 ` Alexey Gladkov
  2021-09-23 14:20   ` Антон Мидюков
@ 2021-09-23 14:43   ` Arseny Maslennikov
  2021-09-23 15:22     ` Alexey Gladkov
  1 sibling, 1 reply; 26+ messages in thread
From: Arseny Maslennikov @ 2021-09-23 14:43 UTC (permalink / raw)
  To: make-initrd

[-- Attachment #1: Type: text/plain, Size: 3108 bytes --]

On Thu, Sep 23, 2021 at 04:05:46PM +0200, Alexey Gladkov wrote:
> On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
> > Здравствуйте
> > 
> > Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
> > Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.
> 
> Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules,
> которая активна по умолчанию:
> 
> PUT_UDEV_RULES += *-net-setup-link.rules
> 
> либо просто:
> 
> PUT_FILES += /lib/udev/rules.d/80-net-setup-link.rules
> 
> > Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в
> > в enp0s8 подобные названия.
> 
> Это не оно.
> 
> > Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> > установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> > имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> > можно и не подключиться (сетевой интерфейс подключен один).
> 
> Переименовывает systemd или что-то около его.

Переименовывает сам udevd, т. е. его встроеннный компонент:
https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_setup_link.c
https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_id.c

>>  % cat /lib/udev/rules.d/80-net-setup-link.rules
>>  # do not edit this file, it will be overwritten on update
>>
>>  SUBSYSTEM!="net", GOTO="net_setup_link_end"
>>
>>  IMPORT{builtin}="path_id"
>>
>>  ACTION=="remove", GOTO="net_setup_link_end"
>>
>>  IMPORT{builtin}="net_setup_link"
                     ^^^^^^^^^^^^^^
Вот здесь этот компонент и вступает в игру.
>>
>>  NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
>>
>>  LABEL="net_setup_link_end"

> Насколько я помню на это
> влияет присутствие dmidecode.
> 
> Это не моё дело, но инсталлер неправ, когда использует имена без
> последующей привязки имени к mac или businfo.
> 
> > Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
> 
> initrd как раз ничего не переименовывает. Имя eth* каноническое.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:43   ` Arseny Maslennikov
@ 2021-09-23 15:22     ` Alexey Gladkov
  2021-09-23 15:39       ` [make-initrd] udev network interface renaming policy Arseny Maslennikov
  0 siblings, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-23 15:22 UTC (permalink / raw)
  To: make-initrd

On Thu, Sep 23, 2021 at 05:43:07PM +0300, Arseny Maslennikov wrote:
> On Thu, Sep 23, 2021 at 04:05:46PM +0200, Alexey Gladkov wrote:
> > On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
> > > Здравствуйте
> > > 
> > > Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
> > > Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.
> > 
> > Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules,
> > которая активна по умолчанию:
> > 
> > PUT_UDEV_RULES += *-net-setup-link.rules
> > 
> > либо просто:
> > 
> > PUT_FILES += /lib/udev/rules.d/80-net-setup-link.rules
> > 
> > > Кажется, именно оно отвечает за то, что сетевые интерфейсы переименовываются в
> > > в enp0s8 подобные названия.
> > 
> > Это не оно.
> > 
> > > Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> > > установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> > > имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> > > можно и не подключиться (сетевой интерфейс подключен один).
> > 
> > Переименовывает systemd или что-то около его.
> 
> Переименовывает сам udevd, т. е. его встроеннный компонент:
> https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_setup_link.c
> https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_id.c

Пытается переименовать именно оно, вы правы. Но делает она по каким-то
полиси:

https://github.com/systemd/systemd/blob/42ffc40ce382dfda5f2a100698673bc252a72194/src/udev/net/link-config.c#L455

> >>  % cat /lib/udev/rules.d/80-net-setup-link.rules
> >>  # do not edit this file, it will be overwritten on update
> >>
> >>  SUBSYSTEM!="net", GOTO="net_setup_link_end"
> >>
> >>  IMPORT{builtin}="path_id"
> >>
> >>  ACTION=="remove", GOTO="net_setup_link_end"
> >>
> >>  IMPORT{builtin}="net_setup_link"
>                      ^^^^^^^^^^^^^^
> Вот здесь этот компонент и вступает в игру.
> >>
> >>  NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
> >>
> >>  LABEL="net_setup_link_end"

Но это правило есть и у меня на системе, но переименования не случается.
Почему этого не происходит у меня я пока не понял.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* [make-initrd] udev network interface renaming policy
  2021-09-23 15:22     ` Alexey Gladkov
@ 2021-09-23 15:39       ` Arseny Maslennikov
  2021-09-23 19:05         ` Alexey Gladkov
  0 siblings, 1 reply; 26+ messages in thread
From: Arseny Maslennikov @ 2021-09-23 15:39 UTC (permalink / raw)
  To: make-initrd

[-- Attachment #1: Type: text/plain, Size: 2885 bytes --]

On Thu, Sep 23, 2021 at 05:22:22PM +0200, Alexey Gladkov wrote:
> On Thu, Sep 23, 2021 at 05:43:07PM +0300, Arseny Maslennikov wrote:
> > On Thu, Sep 23, 2021 at 04:05:46PM +0200, Alexey Gladkov wrote:
> > > On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
> > > > Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> > > > установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> > > > имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> > > > можно и не подключиться (сетевой интерфейс подключен один).
> > > 
> > > Переименовывает systemd или что-то около его.
> > 
> > Переименовывает сам udevd, т. е. его встроенный компонент:
> > https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_setup_link.c
> > https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_id.c
> 
> Пытается переименовать именно оно, вы правы. Но делает она по каким-то
> полиси:
> 
> https://github.com/systemd/systemd/blob/42ffc40ce382dfda5f2a100698673bc252a72194/src/udev/net/link-config.c#L455

...Описанным в systemd.link(5). [1]

> > >>  % cat /lib/udev/rules.d/80-net-setup-link.rules
> > >>  # do not edit this file, it will be overwritten on update
> > >>
> > >>  SUBSYSTEM!="net", GOTO="net_setup_link_end"
> > >>
> > >>  IMPORT{builtin}="path_id"
> > >>
> > >>  ACTION=="remove", GOTO="net_setup_link_end"
> > >>
> > >>  IMPORT{builtin}="net_setup_link"
> >                      ^^^^^^^^^^^^^^
> > Вот здесь этот компонент и вступает в игру.
> > >>
> > >>  NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
> > >>
> > >>  LABEL="net_setup_link_end"
> 
> Но это правило есть и у меня на системе, но переименования не случается.
> Почему этого не происходит у меня я пока не понял.

Может, лежит в нужном месте .link-файл, в котором указано не
переименовывать (см. ман-страницу). Или не лежит, а замазан (т. е.
действительны результаты работы команды `ln -s /dev/null
/etc/systemd/network/99-default.link')

[1] https://man7.org/linux/man-pages/man5/systemd.link.5.html

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:20   ` Антон Мидюков
  2021-09-23 14:36     ` Alexey Gladkov
@ 2021-09-23 16:12     ` Антон Мидюков
  2021-09-23 19:13       ` Alexey Gladkov
  1 sibling, 1 reply; 26+ messages in thread
From: Антон Мидюков @ 2021-09-23 16:12 UTC (permalink / raw)
  To: make-initrd

23.09.2021 21:20, Антон Мидюков пишет:
> 23.09.2021 21:05, Alexey Gladkov пишет:
>> On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
>>> Здравствуйте
>>>
>>> Подскажите, что нужно прописать в initrd.mk, чтобы добавить udev правило в initrd?
>>> Хочу ради эксперимента добавить /lib/udev/rules.d/80-net-setup-link.rules.
>>
>> Это можно сделать двумя способами. Либо с помощью фичи add-udev-rules,
>> которая активна по умолчанию:
>>
>> PUT_UDEV_RULES += *-net-setup-link.rules
>>
> 
> Спасибо!
> 

Этот вариант приводит к проблеме. В initrd не попадают:
/etc/udev/rules.d/50-udev-default.rules
/etc/udev/rules.d/60-persistent-input.rules
/etc/udev/rules.d/60-persistent-storage.rules
/etc/udev/rules.d/80-drivers.rules


-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] udev network interface renaming policy
  2021-09-23 15:39       ` [make-initrd] udev network interface renaming policy Arseny Maslennikov
@ 2021-09-23 19:05         ` Alexey Gladkov
  0 siblings, 0 replies; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-23 19:05 UTC (permalink / raw)
  To: make-initrd

On Thu, Sep 23, 2021 at 06:39:38PM +0300, Arseny Maslennikov wrote:
> On Thu, Sep 23, 2021 at 05:22:22PM +0200, Alexey Gladkov wrote:
> > On Thu, Sep 23, 2021 at 05:43:07PM +0300, Arseny Maslennikov wrote:
> > > On Thu, Sep 23, 2021 at 04:05:46PM +0200, Alexey Gladkov wrote:
> > > > On Thu, Sep 23, 2021 at 08:37:08PM +0700, Антон Мидюков wrote:
> > > > > Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> > > > > установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> > > > > имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> > > > > можно и не подключиться (сетевой интерфейс подключен один).
> > > > 
> > > > Переименовывает systemd или что-то около его.
> > > 
> > > Переименовывает сам udevd, т. е. его встроенный компонент:
> > > https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_setup_link.c
> > > https://github.com/systemd/systemd/blob/main/src/udev/udev-builtin-net_id.c
> > 
> > Пытается переименовать именно оно, вы правы. Но делает она по каким-то
> > полиси:
> > 
> > https://github.com/systemd/systemd/blob/42ffc40ce382dfda5f2a100698673bc252a72194/src/udev/net/link-config.c#L455
> 
> ...Описанным в systemd.link(5). [1]
> 
> > > >>  % cat /lib/udev/rules.d/80-net-setup-link.rules
> > > >>  # do not edit this file, it will be overwritten on update
> > > >>
> > > >>  SUBSYSTEM!="net", GOTO="net_setup_link_end"
> > > >>
> > > >>  IMPORT{builtin}="path_id"
> > > >>
> > > >>  ACTION=="remove", GOTO="net_setup_link_end"
> > > >>
> > > >>  IMPORT{builtin}="net_setup_link"
> > >                      ^^^^^^^^^^^^^^
> > > Вот здесь этот компонент и вступает в игру.
> > > >>
> > > >>  NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
> > > >>
> > > >>  LABEL="net_setup_link_end"
> > 
> > Но это правило есть и у меня на системе, но переименования не случается.
> > Почему этого не происходит у меня я пока не понял.
> 
> Может, лежит в нужном месте .link-файл, в котором указано не
> переименовывать (см. ман-страницу). Или не лежит, а замазан (т. е.
> действительны результаты работы команды `ln -s /dev/null
> /etc/systemd/network/99-default.link')
> 
> [1] https://man7.org/linux/man-pages/man5/systemd.link.5.html

У меня нет systemd вообще. Также нет каталога /etc/systemd/network.
Ну да ладно. Видимо, это частности конкретной системы.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 16:12     ` Антон Мидюков
@ 2021-09-23 19:13       ` Alexey Gladkov
  2021-09-24  4:22         ` Антон Мидюков
  0 siblings, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-23 19:13 UTC (permalink / raw)
  To: make-initrd

On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
> Этот вариант приводит к проблеме. В initrd не попадают:
> /etc/udev/rules.d/50-udev-default.rules
> /etc/udev/rules.d/60-persistent-input.rules
> /etc/udev/rules.d/60-persistent-storage.rules
> /etc/udev/rules.d/80-drivers.rules

# initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules

За их попадание отвечает add-udev-rules.

Расскажите, как собираете образ и какая версия make-initrd ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 19:13       ` Alexey Gladkov
@ 2021-09-24  4:22         ` Антон Мидюков
  2021-09-24  5:37           ` Антон Мидюков
                             ` (2 more replies)
  0 siblings, 3 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-24  4:22 UTC (permalink / raw)
  To: make-initrd

24.09.2021 02:13, Alexey Gladkov пишет:
> On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
>> Этот вариант приводит к проблеме. В initrd не попадают:
>> /etc/udev/rules.d/50-udev-default.rules
>> /etc/udev/rules.d/60-persistent-input.rules
>> /etc/udev/rules.d/60-persistent-storage.rules
>> /etc/udev/rules.d/80-drivers.rules
> 
> # initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
> 2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
> 2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
> 2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
> 2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules
> 
> За их попадание отвечает add-udev-rules.
> 
> Расскажите, как собираете образ и какая версия make-initrd ?
> 

Собираю в mkimage-profiles regular-net-install.iso:

make-initrd 2.24.0-alt1

make-initrd --no-checks AUTODETECT= -v -k 5.13.18-un-def-alt1

В нормальном режиме воспроизвести не получается.
Если добавляю в /etc/initrd.mk:
PUT_UDEV_RULES += *-net-setup-link.rules

В выводе make-initrd:

[00:00:03] Putting udev rules ...
put-rules: Copying udev rules ...
'/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
'/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
find-udev-rule-externals: import{builtin} = path_id
find-udev-rule-externals: import{builtin} = net_setup_link
put-tree: Copying '/tmp/make-initrd.qK7agTPYz/modules' recursively ...

Если не добавляю, то:

[00:00:01] Putting udev rules ...
put-rules: Copying udev rules ...
'/usr/share/make-initrd/features/add-udev-rules/rules.d/50-udev-default.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/50-udev-default.rules'
'/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-input.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-input.rules'
'/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-storage.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-storage.rules'
'/usr/share/make-initrd/features/add-udev-rules/rules.d/80-drivers.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/80-drivers.rules'
put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/50-udev-default.rules
put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/60-persistent-storage.rules
put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/80-drivers.rules
find-udev-rule-externals: run{builtin} = kmod load $env{MODALIAS}
find-udev-rule-externals: run{builtin} = kmod load tifm_sd
find-udev-rule-externals: run{builtin} = kmod load tifm_ms
find-udev-rule-externals: run{builtin} = kmod load ms_block mspro_block
find-udev-rule-externals: run{builtin} = kmod load i2o_block
find-udev-rule-externals: run{builtin} = kmod load ppdev
find-udev-rule-externals: run{builtin} = kmod load sm_ftl
find-udev-rule-externals: import{program} = ata_id --export $devnode
find-udev-rule-externals: import{program} = ata_id --export $devnode
find-udev-rule-externals: import{program} = ata_id --export $devnode
find-udev-rule-externals: import{builtin} = usb_id
find-udev-rule-externals: import{program} = scsi_id --export --whitelisted -d $devnode
find-udev-rule-externals: import{program} = scsi_id --export --whitelisted -d $devnode
find-udev-rule-externals: import{builtin} = path_id
find-udev-rule-externals: import{builtin} = blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}
find-udev-rule-externals: import{builtin} = blkid --noraid
find-udev-rule-externals: import{builtin} = blkid
find-udev-rule-externals: import{builtin} = usb_id
find-udev-rule-externals: import{builtin} = path_id
find-udev-rule-externals: run{program} = $env{REMOVE_CMD}
find-udev-rule-externals: import{builtin} = usb_id
find-udev-rule-externals: import{builtin} = hwdb --subsystem=usb
find-udev-rule-externals: import{builtin} = hwdb --subsystem=$env{SUBSYSTEM}
put-tree: Copying '/tmp/make-initrd.HHFhQe74V/modules' recursively ...


-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24  4:22         ` Антон Мидюков
@ 2021-09-24  5:37           ` Антон Мидюков
  2021-09-24  9:53           ` Alexey Gladkov
  2021-09-24  9:58           ` Alexey Gladkov
  2 siblings, 0 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-24  5:37 UTC (permalink / raw)
  To: make-initrd

24.09.2021 11:22, Антон Мидюков пишет:
> 24.09.2021 02:13, Alexey Gladkov пишет:
>> On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
>>> Этот вариант приводит к проблеме. В initrd не попадают:
>>> /etc/udev/rules.d/50-udev-default.rules
>>> /etc/udev/rules.d/60-persistent-input.rules
>>> /etc/udev/rules.d/60-persistent-storage.rules
>>> /etc/udev/rules.d/80-drivers.rules
>>
>> # initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
>> 2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
>> 2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
>> 2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
>> 2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules
>>
>> За их попадание отвечает add-udev-rules.
>>
>> Расскажите, как собираете образ и какая версия make-initrd ?
>>
> 
> Собираю в mkimage-profiles regular-net-install.iso:
> 
> make-initrd 2.24.0-alt1
> 
> make-initrd --no-checks AUTODETECT= -v -k 5.13.18-un-def-alt1
> 
> В нормальном режиме воспроизвести не получается.
> Если добавляю в /etc/initrd.mk:
> PUT_UDEV_RULES += *-net-setup-link.rules
> 
> В выводе make-initrd:
> 
> [00:00:03] Putting udev rules ...
> put-rules: Copying udev rules ...
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> find-udev-rule-externals: import{builtin} = path_id
> find-udev-rule-externals: import{builtin} = net_setup_link
> put-tree: Copying '/tmp/make-initrd.qK7agTPYz/modules' recursively ...
> 

C make-initrd 2.22.0-alt1 на p10 точно также.


-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24  4:22         ` Антон Мидюков
  2021-09-24  5:37           ` Антон Мидюков
@ 2021-09-24  9:53           ` Alexey Gladkov
  2021-09-24  9:57             ` Антон Мидюков
  2021-09-24  9:58           ` Alexey Gladkov
  2 siblings, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-24  9:53 UTC (permalink / raw)
  To: make-initrd

On Fri, Sep 24, 2021 at 11:22:55AM +0700, Антон Мидюков wrote:
> 24.09.2021 02:13, Alexey Gladkov пишет:
> > On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
> >> Этот вариант приводит к проблеме. В initrd не попадают:
> >> /etc/udev/rules.d/50-udev-default.rules
> >> /etc/udev/rules.d/60-persistent-input.rules
> >> /etc/udev/rules.d/60-persistent-storage.rules
> >> /etc/udev/rules.d/80-drivers.rules
> > 
> > # initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
> > 2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
> > 2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
> > 2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
> > 2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules
> > 
> > За их попадание отвечает add-udev-rules.
> > 
> > Расскажите, как собираете образ и какая версия make-initrd ?
> > 
> 
> Собираю в mkimage-profiles regular-net-install.iso:
> 
> make-initrd 2.24.0-alt1
> 
> make-initrd --no-checks AUTODETECT= -v -k 5.13.18-un-def-alt1

Раз уж вы пришли в эту рассылку, то воспользуюсь случаем! ))

Я хочу ещё раз обратить внимание, что если пользователь отключает
AUTODETECT, по сути переходит в expert mode. Он сам должен добавлять фичи
и модули в зависимости от версии make-initrd.

Отключение AUTODETECT было реализовано для тех кто хочет собрать себе
очень кастомное решение.

> В нормальном режиме воспроизвести не получается.
> Если добавляю в /etc/initrd.mk:
> PUT_UDEV_RULES += *-net-setup-link.rules
> 
> В выводе make-initrd:
> 
> [00:00:03] Putting udev rules ...
> put-rules: Copying udev rules ...
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> find-udev-rule-externals: import{builtin} = path_id
> find-udev-rule-externals: import{builtin} = net_setup_link
> put-tree: Copying '/tmp/make-initrd.qK7agTPYz/modules' recursively ...

Всё верно. Правило добавилось, вызовы утилит нашлись.

> Если не добавляю, то:
> 
> [00:00:01] Putting udev rules ...
> put-rules: Copying udev rules ...
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/50-udev-default.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/50-udev-default.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-input.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-input.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-storage.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-storage.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/80-drivers.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/80-drivers.rules'
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/50-udev-default.rules
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/60-persistent-storage.rules
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/80-drivers.rules

Стоп. Вы хотите сказать, что при указании: 

PUT_UDEV_RULES += *-net-setup-link.rules

не попали вот эти правила ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24  9:53           ` Alexey Gladkov
@ 2021-09-24  9:57             ` Антон Мидюков
  0 siblings, 0 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-24  9:57 UTC (permalink / raw)
  To: make-initrd

24.09.2021 16:53, Alexey Gladkov пишет:
> On Fri, Sep 24, 2021 at 11:22:55AM +0700, Антон Мидюков wrote:
>> 24.09.2021 02:13, Alexey Gladkov пишет:
>>> On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
>>>> Этот вариант приводит к проблеме. В initrd не попадают:
>>>> /etc/udev/rules.d/50-udev-default.rules
>>>> /etc/udev/rules.d/60-persistent-input.rules
>>>> /etc/udev/rules.d/60-persistent-storage.rules
>>>> /etc/udev/rules.d/80-drivers.rules
>>>
>>> # initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
>>> 2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
>>> 2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
>>> 2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
>>> 2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules
>>>
>>> За их попадание отвечает add-udev-rules.
>>>
>>> Расскажите, как собираете образ и какая версия make-initrd ?
>>>
>>
>> Собираю в mkimage-profiles regular-net-install.iso:
>>
>> make-initrd 2.24.0-alt1
>>
>> make-initrd --no-checks AUTODETECT= -v -k 5.13.18-un-def-alt1
> 
> Раз уж вы пришли в эту рассылку, то воспользуюсь случаем! ))
> 
> Я хочу ещё раз обратить внимание, что если пользователь отключает
> AUTODETECT, по сути переходит в expert mode. Он сам должен добавлять фичи
> и модули в зависимости от версии make-initrd.
> 
> Отключение AUTODETECT было реализовано для тех кто хочет собрать себе
> очень кастомное решение.
> 

Да, сборка универсального initrd для загрузки iso как раз такое кастомное решение.

>> В нормальном режиме воспроизвести не получается.
>> Если добавляю в /etc/initrd.mk:
>> PUT_UDEV_RULES += *-net-setup-link.rules
>>
>> В выводе make-initrd:
>>
>> [00:00:03] Putting udev rules ...
>> put-rules: Copying udev rules ...
>> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
>> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
>> find-udev-rule-externals: import{builtin} = path_id
>> find-udev-rule-externals: import{builtin} = net_setup_link
>> put-tree: Copying '/tmp/make-initrd.qK7agTPYz/modules' recursively ...
> 
> Всё верно. Правило добавилось, вызовы утилит нашлись.
> 
>> Если не добавляю, то:
>>
>> [00:00:01] Putting udev rules ...
>> put-rules: Copying udev rules ...
>> '/usr/share/make-initrd/features/add-udev-rules/rules.d/50-udev-default.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/50-udev-default.rules'
>> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-input.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-input.rules'
>> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-storage.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-storage.rules'
>> '/usr/share/make-initrd/features/add-udev-rules/rules.d/80-drivers.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/80-drivers.rules'
>> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/50-udev-default.rules
>> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/60-persistent-storage.rules
>> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/80-drivers.rules
> 
> Стоп. Вы хотите сказать, что при указании: 
> 
> PUT_UDEV_RULES += *-net-setup-link.rules
> 
> не попали вот эти правила ?
> 

Да. Но вне hasher такое повторить не могу.

-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24  4:22         ` Антон Мидюков
  2021-09-24  5:37           ` Антон Мидюков
  2021-09-24  9:53           ` Alexey Gladkov
@ 2021-09-24  9:58           ` Alexey Gladkov
  2021-09-24 13:17             ` Leonid Krivoshein
  2 siblings, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-24  9:58 UTC (permalink / raw)
  To: make-initrd

On Fri, Sep 24, 2021 at 11:22:55AM +0700, Антон Мидюков wrote:
> 24.09.2021 02:13, Alexey Gladkov пишет:
> > On Thu, Sep 23, 2021 at 11:12:35PM +0700, Антон Мидюков wrote:
> >> Этот вариант приводит к проблеме. В initrd не попадают:
> >> /etc/udev/rules.d/50-udev-default.rules
> >> /etc/udev/rules.d/60-persistent-input.rules
> >> /etc/udev/rules.d/60-persistent-storage.rules
> >> /etc/udev/rules.d/80-drivers.rules
> > 
> > # initrd-ls /boot/initrd.img |grep -e udev-default.rules -e persistent-input.rules -e persistent-storage.rules -e drivers.rules
> > 2 -rw-r--r-- 1 0 0    3885 Jan 01 01:00:00 1970 ./etc/udev/rules.d/50-udev-default.rules
> > 2 -rw-r--r-- 1 0 0    2651 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-input.rules
> > 2 -rw-r--r-- 1 0 0    7967 Jan 01 01:00:00 1970 ./etc/udev/rules.d/60-persistent-storage.rules
> > 2 -rw-r--r-- 1 0 0     556 Jan 01 01:00:00 1970 ./etc/udev/rules.d/80-drivers.rules
> > 
> > За их попадание отвечает add-udev-rules.
> > 
> > Расскажите, как собираете образ и какая версия make-initrd ?
> > 
> 
> Собираю в mkimage-profiles regular-net-install.iso:
> 
> make-initrd 2.24.0-alt1
> 
> make-initrd --no-checks AUTODETECT= -v -k 5.13.18-un-def-alt1
> 
> В нормальном режиме воспроизвести не получается.
> Если добавляю в /etc/initrd.mk:
> PUT_UDEV_RULES += *-net-setup-link.rules
> 
> В выводе make-initrd:
> 
> [00:00:03] Putting udev rules ...
> put-rules: Copying udev rules ...
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> '/lib/udev/rules.d/80-net-setup-link.rules' -> '/tmp/make-initrd.qK7agTPYz/modules/etc/udev/rules.d/80-net-setup-link.rules'
> find-udev-rule-externals: import{builtin} = path_id
> find-udev-rule-externals: import{builtin} = net_setup_link
> put-tree: Copying '/tmp/make-initrd.qK7agTPYz/modules' recursively ...
> 
> Если не добавляю, то:
> 
> [00:00:01] Putting udev rules ...
> put-rules: Copying udev rules ...
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/50-udev-default.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/50-udev-default.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-input.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-input.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/60-persistent-storage.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/60-persistent-storage.rules'
> '/usr/share/make-initrd/features/add-udev-rules/rules.d/80-drivers.rules' -> '/tmp/make-initrd.HHFhQe74V/modules/etc/udev/rules.d/80-drivers.rules'
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/50-udev-default.rules
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/60-persistent-storage.rules
> put-rules: WARNING: Found two udev rules with the same name but different content: /lib/udev/initramfs-rules.d/80-drivers.rules
> find-udev-rule-externals: run{builtin} = kmod load $env{MODALIAS}
> find-udev-rule-externals: run{builtin} = kmod load tifm_sd
> find-udev-rule-externals: run{builtin} = kmod load tifm_ms
> find-udev-rule-externals: run{builtin} = kmod load ms_block mspro_block
> find-udev-rule-externals: run{builtin} = kmod load i2o_block
> find-udev-rule-externals: run{builtin} = kmod load ppdev
> find-udev-rule-externals: run{builtin} = kmod load sm_ftl
> find-udev-rule-externals: import{program} = ata_id --export $devnode
> find-udev-rule-externals: import{program} = ata_id --export $devnode
> find-udev-rule-externals: import{program} = ata_id --export $devnode
> find-udev-rule-externals: import{builtin} = usb_id
> find-udev-rule-externals: import{program} = scsi_id --export --whitelisted -d $devnode
> find-udev-rule-externals: import{program} = scsi_id --export --whitelisted -d $devnode
> find-udev-rule-externals: import{builtin} = path_id
> find-udev-rule-externals: import{builtin} = blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}
> find-udev-rule-externals: import{builtin} = blkid --noraid
> find-udev-rule-externals: import{builtin} = blkid
> find-udev-rule-externals: import{builtin} = usb_id
> find-udev-rule-externals: import{builtin} = path_id
> find-udev-rule-externals: run{program} = $env{REMOVE_CMD}
> find-udev-rule-externals: import{builtin} = usb_id
> find-udev-rule-externals: import{builtin} = hwdb --subsystem=usb
> find-udev-rule-externals: import{builtin} = hwdb --subsystem=$env{SUBSYSTEM}
> put-tree: Copying '/tmp/make-initrd.HHFhQe74V/modules' recursively ...

# initrd-diff /tmp/initrd-5.10.62-std-def-alt1.img{.old,}
--- initrd-5.10.62-std-def-alt1.img.old
+++ initrd-5.10.62-std-def-alt1.img
@@ -366,4 +366 @@
-2  xz -rw-r--r-- 1 0 0    3885 ./etc/udev/rules.d/50-udev-default.rules
-2  xz -rw-r--r-- 1 0 0    2651 ./etc/udev/rules.d/60-persistent-input.rules
-2  xz -rw-r--r-- 1 0 0    7967 ./etc/udev/rules.d/60-persistent-storage.rules
-2  xz -rw-r--r-- 1 0 0     556 ./etc/udev/rules.d/80-drivers.rules
+2  xz -rw-r--r-- 1 0 0     295 ./etc/udev/rules.d/80-net-setup-link.rules

Да, это бага. Спасибо!

Пока что кладите это правило PUT_FILES. Там нет вызова внешних утилит и
ничего страшного не будет.

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24  9:58           ` Alexey Gladkov
@ 2021-09-24 13:17             ` Leonid Krivoshein
  2021-09-24 13:52               ` [make-initrd] has_feature() и initrd_release() Leonid Krivoshein
  2021-09-24 14:29               ` [make-initrd] Добавить udev правило в initrd через initrd.mk Alexey Gladkov
  0 siblings, 2 replies; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-24 13:17 UTC (permalink / raw)
  To: make-initrd


24.09.2021 12:58, Alexey Gladkov пишет:
> # initrd-diff /tmp/initrd-5.10.62-std-def-alt1.img{.old,}
> --- initrd-5.10.62-std-def-alt1.img.old
> +++ initrd-5.10.62-std-def-alt1.img
> @@ -366,4 +366 @@
> -2  xz -rw-r--r-- 1 0 0    3885 ./etc/udev/rules.d/50-udev-default.rules
> -2  xz -rw-r--r-- 1 0 0    2651 ./etc/udev/rules.d/60-persistent-input.rules
> -2  xz -rw-r--r-- 1 0 0    7967 ./etc/udev/rules.d/60-persistent-storage.rules
> -2  xz -rw-r--r-- 1 0 0     556 ./etc/udev/rules.d/80-drivers.rules
> +2  xz -rw-r--r-- 1 0 0     295 ./etc/udev/rules.d/80-net-setup-link.rules
>
> Да, это бага. Спасибо!
>
> Пока что кладите это правило PUT_FILES. Там нет вызова внешних утилит и
> ничего страшного не будет.

В этой связи три вопроса:

1. Ничего, что временно откачу изменения с переходом на PUT_UDEV_RULES?
2. Что надо сделать, чтобы заработала has_feature() ? а то сейчас 
command not found.
3. Это нормально, что в /etc/{os,initrd}-release попадает последняя 
апстримная версия (2.24.0), а не та, с которой я собираю образ (2.24.1)?


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* [make-initrd] has_feature() и initrd_release()
  2021-09-24 13:17             ` Leonid Krivoshein
@ 2021-09-24 13:52               ` Leonid Krivoshein
  2021-09-24 14:31                 ` Alexey Gladkov
  2021-09-24 14:29               ` [make-initrd] Добавить udev правило в initrd через initrd.mk Alexey Gladkov
  1 sibling, 1 reply; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-24 13:52 UTC (permalink / raw)
  To: make-initrd


24.09.2021 16:17, Leonid Krivoshein пишет:
> 2. Что надо сделать, чтобы заработала has_feature() ? а то сейчас 
> command not found.

Ой, с command not found явно мой косяк, видимо не подключен 
initrd-sh-functions.
Этого же достаточно или надо явно включать какую-нибудь фичу?


> 3. Это нормально, что в /etc/{os,initrd}-release попадает последняя 
> апстримная версия (2.24.0), а не та, с которой я собираю образ (2.24.1)?
>

И 4) как я понял, initrd_release() в API рантайма пока нет?


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24 13:17             ` Leonid Krivoshein
  2021-09-24 13:52               ` [make-initrd] has_feature() и initrd_release() Leonid Krivoshein
@ 2021-09-24 14:29               ` Alexey Gladkov
  2021-09-24 14:54                 ` Leonid Krivoshein
  1 sibling, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-24 14:29 UTC (permalink / raw)
  To: make-initrd

On Fri, Sep 24, 2021 at 04:17:06PM +0300, Leonid Krivoshein wrote:
> 
> 24.09.2021 12:58, Alexey Gladkov пишет:
> > # initrd-diff /tmp/initrd-5.10.62-std-def-alt1.img{.old,}
> > --- initrd-5.10.62-std-def-alt1.img.old
> > +++ initrd-5.10.62-std-def-alt1.img
> > @@ -366,4 +366 @@
> > -2  xz -rw-r--r-- 1 0 0    3885 ./etc/udev/rules.d/50-udev-default.rules
> > -2  xz -rw-r--r-- 1 0 0    2651 ./etc/udev/rules.d/60-persistent-input.rules
> > -2  xz -rw-r--r-- 1 0 0    7967 ./etc/udev/rules.d/60-persistent-storage.rules
> > -2  xz -rw-r--r-- 1 0 0     556 ./etc/udev/rules.d/80-drivers.rules
> > +2  xz -rw-r--r-- 1 0 0     295 ./etc/udev/rules.d/80-net-setup-link.rules
> > 
> > Да, это бага. Спасибо!
> > 
> > Пока что кладите это правило PUT_FILES. Там нет вызова внешних утилит и
> > ничего страшного не будет.
> 
> В этой связи три вопроса:
> 
> 1. Ничего, что временно откачу изменения с переходом на PUT_UDEV_RULES?

Я уже исправил это. Скоро отправлю в master и сделаю новою сборку пакета.
Мне кажется лучше подождать фикса.

> 2. Что надо сделать, чтобы заработала has_feature() ? а то сейчас command
> not found.

Эта функция есть всегда:

$ git grep has_feature
data/bin/initrd-sh-functions:127:has_feature()

> 3. Это нормально, что в /etc/{os,initrd}-release попадает последняя
> апстримная версия (2.24.0), а не та, с которой я собираю образ (2.24.1)?

Откуда у тебя 2.24.1, если такой версии ещё не было ?
Расскажи как именно ты собираешь ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] has_feature() и initrd_release()
  2021-09-24 13:52               ` [make-initrd] has_feature() и initrd_release() Leonid Krivoshein
@ 2021-09-24 14:31                 ` Alexey Gladkov
  2021-09-24 14:56                   ` Leonid Krivoshein
  0 siblings, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-24 14:31 UTC (permalink / raw)
  To: make-initrd

On Fri, Sep 24, 2021 at 04:52:37PM +0300, Leonid Krivoshein wrote:
> 
> 24.09.2021 16:17, Leonid Krivoshein пишет:
> > 2. Что надо сделать, чтобы заработала has_feature() ? а то сейчас
> > command not found.
> 
> Ой, с command not found явно мой косяк, видимо не подключен
> initrd-sh-functions.
> Этого же достаточно или надо явно включать какую-нибудь фичу?
> 
> 
> > 3. Это нормально, что в /etc/{os,initrd}-release попадает последняя
> > апстримная версия (2.24.0), а не та, с которой я собираю образ (2.24.1)?
> > 
> 
> И 4) как я понял, initrd_release() в API рантайма пока нет?

Видимо я подзабыл про неё. Напомни, эта функция должна возвращать релиз
make-initrd ?

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-24 14:29               ` [make-initrd] Добавить udev правило в initrd через initrd.mk Alexey Gladkov
@ 2021-09-24 14:54                 ` Leonid Krivoshein
  0 siblings, 0 replies; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-24 14:54 UTC (permalink / raw)
  To: make-initrd


24.09.2021 17:29, Alexey Gladkov пишет:
> On Fri, Sep 24, 2021 at 04:17:06PM +0300, Leonid Krivoshein wrote:
>> 24.09.2021 12:58, Alexey Gladkov пишет:
>>> # initrd-diff /tmp/initrd-5.10.62-std-def-alt1.img{.old,}
>>> --- initrd-5.10.62-std-def-alt1.img.old
>>> +++ initrd-5.10.62-std-def-alt1.img
>>> @@ -366,4 +366 @@
>>> -2  xz -rw-r--r-- 1 0 0    3885 ./etc/udev/rules.d/50-udev-default.rules
>>> -2  xz -rw-r--r-- 1 0 0    2651 ./etc/udev/rules.d/60-persistent-input.rules
>>> -2  xz -rw-r--r-- 1 0 0    7967 ./etc/udev/rules.d/60-persistent-storage.rules
>>> -2  xz -rw-r--r-- 1 0 0     556 ./etc/udev/rules.d/80-drivers.rules
>>> +2  xz -rw-r--r-- 1 0 0     295 ./etc/udev/rules.d/80-net-setup-link.rules
>>>
>>> Да, это бага. Спасибо!
>>>
>>> Пока что кладите это правило PUT_FILES. Там нет вызова внешних утилит и
>>> ничего страшного не будет.
>> В этой связи три вопроса:
>>
>> 1. Ничего, что временно откачу изменения с переходом на PUT_UDEV_RULES?
> Я уже исправил это. Скоро отправлю в master и сделаю новою сборку пакета.
> Мне кажется лучше подождать фикса.
>
>> 2. Что надо сделать, чтобы заработала has_feature() ? а то сейчас command
>> not found.
> Эта функция есть всегда:
>
> $ git grep has_feature
> data/bin/initrd-sh-functions:127:has_feature()

Да, уже разобрался.


>> 3. Это нормально, что в /etc/{os,initrd}-release попадает последняя
>> апстримная версия (2.24.0), а не та, с которой я собираю образ (2.24.1)?
> Откуда у тебя 2.24.1, если такой версии ещё не было ?
> Расскажи как именно ты собираешь ?

Локально. А теперь и в таске #285908. Но туда не смотри, я пришлю как 
договорились отдельными патчами. С первой итерацией уложился в 1.5 
суток, тестирование мной прошло успешно. Надеюсь, дальше дело быстрее 
пойдёт.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] has_feature() и initrd_release()
  2021-09-24 14:31                 ` Alexey Gladkov
@ 2021-09-24 14:56                   ` Leonid Krivoshein
  0 siblings, 0 replies; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-24 14:56 UTC (permalink / raw)
  To: make-initrd


24.09.2021 17:31, Alexey Gladkov пишет:
>> 4) как я понял, initrd_release() в API рантайма пока нет?
> Видимо я подзабыл про неё. Напомни, эта функция должна возвращать релиз
> make-initrd ?

У меня аналогичная функция initrd_version() возвращает сейчас строку 
"2.24.0", т.е. читает VERSION_ID из релиз-файла.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-23 14:36     ` Alexey Gladkov
@ 2021-09-27 15:38       ` Антон Мидюков
  2021-09-27 15:59         ` Alexey Gladkov
  2021-09-27 18:25         ` Leonid Krivoshein
  0 siblings, 2 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-27 15:38 UTC (permalink / raw)
  To: make-initrd

23.09.2021 21:36, Alexey Gladkov пишет:
> On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
>>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>>>> можно и не подключиться (сетевой интерфейс подключен один).
>>>
>>> Переименовывает systemd или что-то около его. Насколько я помню на это
>>> влияет присутствие dmidecode.
>>>
>>> Это не моё дело, но инсталлер неправ, когда использует имена без
>>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
>>>
>>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
>>>
>>
>> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
>> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
> 
> Я предлагал наоборот в stage2 добавить аналог цикла:
> 
> https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
> 

Возможно, это хорошая идея.
Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
Загружался с ip=dhcp stop=bootchain
Фича network уже должна была отработать. Сетевые интерфейсы настроены.

> или в системе их кто-то всё равно пытается переименовать ?
> 

Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.
Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
систему. Тогда проблема бы решилась.

-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-27 15:38       ` Антон Мидюков
@ 2021-09-27 15:59         ` Alexey Gladkov
  2021-09-27 18:54           ` Leonid Krivoshein
  2021-09-27 18:25         ` Leonid Krivoshein
  1 sibling, 1 reply; 26+ messages in thread
From: Alexey Gladkov @ 2021-09-27 15:59 UTC (permalink / raw)
  To: make-initrd

On Mon, Sep 27, 2021 at 10:38:40PM +0700, Антон Мидюков wrote:
> 23.09.2021 21:36, Alexey Gladkov пишет:
> > On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
> >>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
> >>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
> >>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
> >>>> можно и не подключиться (сетевой интерфейс подключен один).
> >>>
> >>> Переименовывает systemd или что-то около его. Насколько я помню на это
> >>> влияет присутствие dmidecode.
> >>>
> >>> Это не моё дело, но инсталлер неправ, когда использует имена без
> >>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
> >>>
> >>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
> >>>
> >>
> >> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
> >> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
> > 
> > Я предлагал наоборот в stage2 добавить аналог цикла:
> > 
> > https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
> > 
> 
> Возможно, это хорошая идея.
> Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
> Загружался с ip=dhcp stop=bootchain
> Фича network уже должна была отработать. Сетевые интерфейсы настроены.

Правила /etc/udev/rules.d/60-persistent-net.rules создаются/дополняются
только в случае если пользователь указал ifname=.

Я подумал, что ненужно лезть без спросу куда не просили. Но ничего не
мешает фиксировать интерфейсы в правилах всегда.

Можно даже передавать эту информацию в том или ином виде через
/dev/initramfs/ следующему шагу.

> > или в системе их кто-то всё равно пытается переименовать ?
> > 
> 
> Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.
> Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
> систему. Тогда проблема бы решилась.

Можно передавать правило. Можно передавать более общую информацию, на
основе которой можно сгенерировать не только правило. Например, если был
передан ip=dhcp то initrd может передать на каком интерфейсе отозвался
dhcpd и какой версии.

> -- 
> С уважением, Антон Мидюков <antohami@basealt.ru>
> _______________________________________________
> Make-initrd mailing list
> Make-initrd@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/make-initrd

-- 
Rgrds, legion



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-27 15:38       ` Антон Мидюков
  2021-09-27 15:59         ` Alexey Gladkov
@ 2021-09-27 18:25         ` Leonid Krivoshein
  1 sibling, 0 replies; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-27 18:25 UTC (permalink / raw)
  To: make-initrd


27.09.2021 18:38, Антон Мидюков пишет:
> 23.09.2021 21:36, Alexey Gladkov пишет:
>> On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
>>>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>>>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>>>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>>>>> можно и не подключиться (сетевой интерфейс подключен один).
>>>> Переименовывает systemd или что-то около его. Насколько я помню на это
>>>> влияет присутствие dmidecode.
>>>>
>>>> Это не моё дело, но инсталлер неправ, когда использует имена без
>>>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
>>>>
>>>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
>>>>
>>> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
>>> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
>> Я предлагал наоборот в stage2 добавить аналог цикла:
>>
>> https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
>>
> Возможно, это хорошая идея.
> Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
> Загружался с ip=dhcp stop=bootchain
> Фича network уже должна была отработать. Сетевые интерфейсы настроены.
>
>> или в системе их кто-то всё равно пытается переименовать ?
> Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.

Проблема в другом: когда мы грузимся с сетевыми параметрами, runtime 
make-initrd настраивает сетевую карту, даже если не переименовывает 
интерфейс, в другом случае он ничего не делает, так как нет сетевых 
параметров, тогда это делается в stage2.

Как я понял, ты хочешь, чтобы независимо от сетевых параметров настройки 
интерфейсов были одинаковы в stage1 и stage2, для этого в stage1 нужны 
правила, которые будут попадать в initramfs и отрабатывать независимо от 
включенности фичи network. С этим может возникнуть одна проблема: если 
эти правила не успеют отработать до того, как будет найден корень, 
данное решение не поможет. К слову, фича network переименовывает 
интерфейс только если её об этом попросить, лишь в этом случае создаётся 
60-persistent-net.rules.


> Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
> систему. Тогда проблема бы решилась.

Ни в коем случае. Потому что суммарный набор правил в stage2 всё равно 
будет непредсказуемым, stage1 об этом ничего не знает.

Наверное, правильное направление -- разместить в stage1 те же udev rules 
около 8?-network-*, которые есть в stage2, для явного переименования 
интерфейса может отработать фича network, избежать рейса с тем, кто 
раньше -- найдётся корень или применятся правила к интерфейсам можно 
лишь опять же включив явно настройки ip.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-27 15:59         ` Alexey Gladkov
@ 2021-09-27 18:54           ` Leonid Krivoshein
  2021-09-29  4:18             ` Антон Мидюков
  0 siblings, 1 reply; 26+ messages in thread
From: Leonid Krivoshein @ 2021-09-27 18:54 UTC (permalink / raw)
  To: make-initrd


27.09.2021 18:59, Alexey Gladkov пишет:
> On Mon, Sep 27, 2021 at 10:38:40PM +0700, Антон Мидюков wrote:
>> 23.09.2021 21:36, Alexey Gladkov пишет:
>>> On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
>>>>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>>>>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>>>>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>>>>>> можно и не подключиться (сетевой интерфейс подключен один).
>>>>> Переименовывает systemd или что-то около его. Насколько я помню на это
>>>>> влияет присутствие dmidecode.
>>>>>
>>>>> Это не моё дело, но инсталлер неправ, когда использует имена без
>>>>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
>>>>>
>>>>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
>>>>>
>>>> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
>>>> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
>>> Я предлагал наоборот в stage2 добавить аналог цикла:
>>>
>>> https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
>>>
>> Возможно, это хорошая идея.
>> Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
>> Загружался с ip=dhcp stop=bootchain
>> Фича network уже должна была отработать. Сетевые интерфейсы настроены.
> Правила /etc/udev/rules.d/60-persistent-net.rules создаются/дополняются
> только в случае если пользователь указал ifname=.
>
> Я подумал, что ненужно лезть без спросу куда не просили. Но ничего не
> мешает фиксировать интерфейсы в правилах всегда.
>
> Можно даже передавать эту информацию в том или ином виде через
> /dev/initramfs/ следующему шагу.
>
>>> или в системе их кто-то всё равно пытается переименовать ?
>>>
>> Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.
>> Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
>> систему. Тогда проблема бы решилась.
> Можно передавать правило. Можно передавать более общую информацию, на
> основе которой можно сгенерировать не только правило. Например, если был
> передан ip=dhcp то initrd может передать на каком интерфейсе отозвался
> dhcpd и какой версии.

Насколько я понял, проблема затрагивает только stage2 с универсальной 
загрузкой, даже точнее инсталлятор, который настраивает eth0, если мы 
грузимся изначально по сети, а в установленной системе после 
перезагрузки там оказывается какой-нибудь enp0s3 с настройкой etcnet для 
eth0.

Тут вопрос в том, что конкретно в systemd/udevd отвечает за данное 
переименование, почему оно не срабатывает в том случае, если мы уже 
подняли сеть в stage1 и как сделать, чтобы если сеть поднималась в 
stage1, интерфейсу давалось аналогичное имя? Или наоборот: чтобы если мы 
его уже настроили как eth0, то чтобы оно не переименовывалось? Кстати, 
ведь тут можно генерировать тот же 60-persistent-net.rule для целевой 
системы.


-- 
Best regards,
Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [make-initrd] Добавить udev правило в initrd через initrd.mk
  2021-09-27 18:54           ` Leonid Krivoshein
@ 2021-09-29  4:18             ` Антон Мидюков
  0 siblings, 0 replies; 26+ messages in thread
From: Антон Мидюков @ 2021-09-29  4:18 UTC (permalink / raw)
  To: make-initrd

28.09.2021 01:54, Leonid Krivoshein пишет:
> 
> 27.09.2021 18:59, Alexey Gladkov пишет:
>> On Mon, Sep 27, 2021 at 10:38:40PM +0700, Антон Мидюков wrote:
>>> 23.09.2021 21:36, Alexey Gladkov пишет:
>>>> On Thu, Sep 23, 2021 at 09:20:44PM +0700, Антон Мидюков wrote:
>>>>>>> Обнаружил, что сетевой интерфейс включенный в initrd остаётся с именем eth0 при сетевой
>>>>>>> установке. Что приводит к тому, что в инсталяторе настраиваем eth0, а в установленной системе
>>>>>>> имеем его с именем enp0s8 подобным без конфигурации. Так что к установленной системе по сети после установки уже
>>>>>>> можно и не подключиться (сетевой интерфейс подключен один).
>>>>>> Переименовывает systemd или что-то около его. Насколько я помню на это
>>>>>> влияет присутствие dmidecode.
>>>>>>
>>>>>> Это не моё дело, но инсталлер неправ, когда использует имена без
>>>>>> последующей привязки имени к mac или businfo>> Соответственно, появилась мысль, что нужно отработать в initrd udev-правило переименования интерфейса.
>>>>>>
>>>>>> initrd как раз ничего не переименовывает. Имя eth* каноническое.
>>>>>>
>>>>> Это я знаю. Но проблема в том, что уже поднятый интерфейс не переименовывается в stage2.
>>>>> Отсюда мысль, что нужно переименовать его ещё в initrd до его поднятия.
>>>> Я предлагал наоборот в stage2 добавить аналог цикла:
>>>>
>>>> https://github.com/osboot/make-initrd/blob/master/features/network/data/lib/initrd/cmdline.d/network#L165-L175
>>>>
>>> Возможно, это хорошая идея.
>>> Но почему-то я не увидел /etc/udev/rules.d/60-persistent-net.rules в initrd.
>>> Загружался с ip=dhcp stop=bootchain
>>> Фича network уже должна была отработать. Сетевые интерфейсы настроены.
>> Правила /etc/udev/rules.d/60-persistent-net.rules создаются/дополняются
>> только в случае если пользователь указал ifname=.
>>
>> Я подумал, что ненужно лезть без спросу куда не просили. Но ничего не
>> мешает фиксировать интерфейсы в правилах всегда.
>>
>> Можно даже передавать эту информацию в том или ином виде через
>> /dev/initramfs/ следующему шагу.
>>
>>>> или в системе их кто-то всё равно пытается переименовать ?
>>>>
>>> Настроенные в initrd интерфейсы никто не переименовывает в stage2. Отсюда и проблема.
>>> Мне кажется, нужно передавать правило udev в stage2, чтобы при установке скопировать в устанавливаемую
>>> систему. Тогда проблема бы решилась.
>> Можно передавать правило. Можно передавать более общую информацию, на
>> основе которой можно сгенерировать не только правило. Например, если был
>> передан ip=dhcp то initrd может передать на каком интерфейсе отозвался
>> dhcpd и какой версии.
> 
> Насколько я понял, проблема затрагивает только stage2 с универсальной загрузкой, даже точнее инсталлятор, который настраивает eth0, если мы грузимся изначально по сети, а в установленной системе после перезагрузки там оказывается какой-нибудь enp0s3 с настройкой etcnet для eth0.
> 
> Тут вопрос в том, что конкретно в systemd/udevd отвечает за данное переименование, почему оно не срабатывает в том случае, если мы уже подняли сеть в stage1 и как сделать, чтобы если сеть поднималась в stage1, интерфейсу давалось аналогичное имя? Или наоборот: чтобы если мы его уже настроили как eth0, то чтобы оно не переименовывалось? Кстати, ведь тут можно генерировать тот же 60-persistent-net.rule для целевой системы.
> 

Наконец-то разобрался. Нужно в /etc/initrd.mk дописать:
PUT_UDEV_RULES += *-net-setup-link.rules *-net-description.rules
PUT_FILES += /lib/systemd/network/99-default.link

Только нужен исправленный make-initrd-2.24.0-alt2.

На этом варианте и остановлюсь.

-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2021-09-29  4:18 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-23 13:37 [make-initrd] Добавить udev правило в initrd через initrd.mk Антон Мидюков
2021-09-23 14:05 ` Alexey Gladkov
2021-09-23 14:20   ` Антон Мидюков
2021-09-23 14:36     ` Alexey Gladkov
2021-09-27 15:38       ` Антон Мидюков
2021-09-27 15:59         ` Alexey Gladkov
2021-09-27 18:54           ` Leonid Krivoshein
2021-09-29  4:18             ` Антон Мидюков
2021-09-27 18:25         ` Leonid Krivoshein
2021-09-23 16:12     ` Антон Мидюков
2021-09-23 19:13       ` Alexey Gladkov
2021-09-24  4:22         ` Антон Мидюков
2021-09-24  5:37           ` Антон Мидюков
2021-09-24  9:53           ` Alexey Gladkov
2021-09-24  9:57             ` Антон Мидюков
2021-09-24  9:58           ` Alexey Gladkov
2021-09-24 13:17             ` Leonid Krivoshein
2021-09-24 13:52               ` [make-initrd] has_feature() и initrd_release() Leonid Krivoshein
2021-09-24 14:31                 ` Alexey Gladkov
2021-09-24 14:56                   ` Leonid Krivoshein
2021-09-24 14:29               ` [make-initrd] Добавить udev правило в initrd через initrd.mk Alexey Gladkov
2021-09-24 14:54                 ` Leonid Krivoshein
2021-09-23 14:43   ` Arseny Maslennikov
2021-09-23 15:22     ` Alexey Gladkov
2021-09-23 15:39       ` [make-initrd] udev network interface renaming policy Arseny Maslennikov
2021-09-23 19:05         ` Alexey Gladkov

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