[make-initrd] Release make-initrd 2.14.0

Leonid Krivoshein klark.devel at gmail.com
Wed Mar 31 16:55:18 MSK 2021


31.03.2021 16:39, Alexey Gladkov пишет:
> On Wed, Mar 31, 2021 at 04:08:26PM +0300, Leonid Krivoshein wrote:
>> 31.03.2021 10:44, Alexey Gladkov пишет:
>>> On Tue, Mar 30, 2021 at 11:18:56PM +0300, Leonid Krivoshein wrote:
>>>>>          2.14.0
>>>>>
>>>> Шикарный набор, впечатляет! Огромное тебе спасибо!!!
>>>>
>>>> Не против, если я немного поковыряю pipeline для доведения его до нынешнего
>>>> пропагатора и скину все изменения оптом?
>>> Разве я могу запретить кому-то чем-то заниматься ? )))
>>>
>>> Если чего-то не хватает, то это можно добавить. Фича pipeline была сделана
>>> как минимальный базис.
>> Да, это понятно. Разобрались, наконец, с локальной загрузкой и как/чего
>> переделывать. Но наткнулись на другую неприятную ошибку. Скорее всего, она
>> внутри initrd-put -- при создании универсального загрузочного носителя (на
>> замену того, что было с propagator) более половины ядерных модулей и
>> каталогов с модулями попадает не в /lib/modules/$KVER, а в корневой каталог
>> initramfs. Причём, это не зависит от используемого способа (директив)
>> указания списка модулей и места, где это делается. И это не только в 2.14.0,
>> с 2.13.0 то же самое. Нужна ли какая-то дополнительная диагностика?
> Разумеется нужна. Расскажите, что вы делали ?

Просто давали команду make-initrd, предварительно скармливая разными 
способами список модулей через /etc/initrd.mk. Перепробованы были разные 
директивы -- PUT_DIRS/PUT_FILES с указанием полных путей, директивы 
MODULES_LOAD и MODULES_PRELOAD с указанием только названий модулей. Во 
всех случаях модули попадают, но в основном не туда, куда надо. См. во 
вложении пример вывода initrd-ls и один из вариантов скриптов, которым 
это делается.


-- 
Best regards,
Leonid Krivoshein.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 511.lst.gz
Type: application/gzip
Size: 18769 bytes
Desc: not available
URL: <http://lists.altlinux.org/pipermail/make-initrd/attachments/20210331/e712e669/attachment-0001.bin>
-------------- next part --------------
#!/bin/sh -efux
# NB: /etc/initrd.mk carefully prepared by earlier scripts

fatal() { echo "** error: $@" >&1; exit 1; }

kver=
for KFLAVOUR in $GLOBAL_KFLAVOURS; do
	kver+=" $(rpm -qa 'kernel-image*' \
		--qf '%{version}-%{name}-%{release}\n' \
	| grep "$KFLAVOUR" \
	| sed 's/kernel-image-//')"
done

[ -n "$kver" ] ||
	fatal "no kernel version identified"

INITRD_FEATURES+="add-modules compress cleanup rdshell pipeline"

INITRD_MODULES="$(grep -v ^# /.in/modules |
	grep -v / |
	grep .ko |
	sort -u)"

INITRD_PUT_DIRS="$(grep -v ^# /.in/modules |
	grep -v .ko |
	sort -u)"

initrd_modules_find()
{
	if [ -n "$INITRD_MODULES" ]; then
		echo "MODULES_LOAD += \\"
		for INITRD_MODULE in $INITRD_MODULES; do
			MODNAME="$(find /lib/modules/$KVER -type f -name $INITRD_MODULE)"
			[ -z "$MODNAME" ] || echo "  ${MODNAME##*/} \\"
		done
		echo "  #"
	fi
	if [ -n "$INITRD_PUT_DIRS" ]; then
		echo "PUT_DIRS += \\"
		for INITRD_PUT_DIR in $INITRD_PUT_DIRS; do
			[ ! -d "/lib/modules/$KVER/$INITRD_PUT_DIR" ] ||
				echo "  /lib/modules/$KVER/$INITRD_PUT_DIR \\"
		done
		echo "  #"
	fi
}

# FIXME: large storage systems can get that tmpfs filled up
# with debug data as of make-initrd 2.2.12
rm -vf  /usr/share/make-initrd/data/etc/udev/rules.d/00-debug.rules \
	/usr/share/make-initrd/data/lib/uevent/filters/debug

MAKE_INITRD_OPTS="--no-checks AUTODETECT="
MAKE_INITRD_VER="`make-initrd -V \
	| sed -rn 's/^make-initrd version ([0-9.]+)/\1/p'`"

[ -z "$GLOBAL_VERBOSE" ] ||
	MAKE_INITRD_OPTS="$MAKE_INITRD_OPTS -v"

cd /boot

for KVER in $kver; do
	touch /etc/initrd.mk
	cp -Lvf /etc/initrd.mk /etc/initrd-mk.bak
	initrd_modules_find >> /etc/initrd.mk
	make-initrd $MAKE_INITRD_OPTS -k "$KVER" \
		FEATURES+="$INITRD_FEATURES" ||
		fatal "make-initrd failed"
	mv -vf /etc/initrd-mk.bak /etc/initrd.mk
done

case `arch` in
e2k)
	kname=image;;
*)
	kname=vmlinuz;;
esac

rm -f $kname initrd.img
ln -s $kname-$KVER $kname
ln -s initrd-$KVER.img initrd.img

:


More information about the Make-initrd mailing list