* [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