[make-initrd] Добавить udev правило в initrd через initrd.mk
Alexey Gladkov
gladkov.alexey at gmail.com
Thu Sep 23 18:22:22 MSK 2021
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
More information about the Make-initrd
mailing list