[make-initrd] Добавить udev правило в initrd через initrd.mk

Антон Мидюков antohami at basealt.ru
Fri Sep 24 12:57:52 MSK 2021


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 at basealt.ru>


More information about the Make-initrd mailing list