[d-kernel] Как правильно перейти с blacklist на использование каталога updates (всегда ли возможно?)

Anton Midyukov antohami на altlinux.org
Вс Янв 4 10:53:38 MSK 2026


04.01.2026 06:51, Vitaly Chikunov пишет:
> On Sun, Jan 04, 2026 at 05:43:53AM +0300, Vitaly Chikunov wrote:
>> Anton,
>>
>> On Sat, Jan 03, 2026 at 03:20:10PM +0300, Anton Midyukov wrote:
>>> Как правильно перейти с blacklist на использование каталога updates (всегда ли возможно?).
>>>
>>> Есть kernel-modules-rtl8821ce-6.12 c зависимостью на rtl8821ce-blacklist.
>>> Известно, что достаточно поместить модуль в каталог updates, чтобы блеклист стал ненужным.
>>> Но дальше вопросы:
>>> 1. Что делать, когда название собираемого модуля отличается от названия апстримного модуля?
>>
>> Трюк с updates/ работает по имени файла модуля (с учетом совпадения
>> символов `-` и `_`).
>>
>> Логика перекрытия одного модуля другим работает - во время запуска depmod.
>> Логика blacklsits - во время запуска modprobe.
>>
>> Видимо, оптимальным вариантом будет создать blacklist пакет где
>> перечислить все отключаемые модули.
>>
>> (В теории, можно создать в updates/ симлинки с нужными именами на новый
>> модуль. Но так, вроде, никто не делает - это не исследованная
>> территория.)
>>
>> (Во второй теории, мог бы быть пакет, который линкует в /run/modprobe.d,
>> какую-то диру с версией ядра, скажем, /usr/lib/modprobe.d/$(uname -r), а
>> модули могли бы класть туда версиозависимые блеклисты. По аналогии как
>> делает kernel-headers-common с хедерами.)
> 
> Это можно было бы сделать через tmpfiles.d (там есть %v), но есть и
> проблема - что пока systemd не создал symlink - blacklist'ов нет.
> 
> 

Этот симлинк можно делать в initrd и без tmpfiles, как мне кажется. По крайней мере, для make-initrd выглядит легко реализуемым.
То есть помещаем /usr/lib/modprobe.d/$(uname -r) в initrd при его создании, если таковой имеется.
Затем делаем до запуска udev в initrd в /run симлинк /run/modprobe.d -> /usr/lib/modprobe.d/$(uname -r) при его наличии.
И потом всё стандартно, /run перемонтируется в корень из initrd без потери содержимого.
Для dracut, думаю, тоже такое может сделать его сопровождающий.
Делаем?

-- 
best regards, Anton Midyukov <antohami на altlinux.org>



Подробная информация о списке рассылки devel-kernel