Make-initrd development discussion
 help / color / mirror / Atom feed
From: Leonid Krivoshein <klark.devel@gmail.com>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] Release make-initrd 2.14.0
Date: Wed, 31 Mar 2021 18:54:07 +0300
Message-ID: <a7385a92-d9df-b9f7-3577-86fc56d97c60@gmail.com> (raw)
In-Reply-To: <27101e86-3f0a-4612-9ecf-eb46e84ec71a@basealt.ru>

[-- Attachment #1: Type: text/plain, Size: 2717 bytes --]



31.03.2021 18:37, Антон Мидюков пишет:
> 31.03.2021 22:22, Alexey Gladkov пишет:
>> On Wed, Mar 31, 2021 at 09:50:11PM +0700, Антон Мидюков wrote:
>>> 31.03.2021 21:40, Alexey Gladkov пишет:
>>>> On Wed, Mar 31, 2021 at 04:55:18PM +0300, Leonid Krivoshein wrote:
>>>>> Просто давали команду make-initrd, предварительно скармливая разными
>>>>> способами список модулей через /etc/initrd.mk. Перепробованы были разные
>>>>> директивы -- PUT_DIRS/PUT_FILES с указанием полных путей, директивы
>>>>> MODULES_LOAD и MODULES_PRELOAD с указанием только названий модулей. Во всех
>>>>> случаях модули попадают, но в основном не туда, куда надо. См. во вложении
>>>>> пример вывода initrd-ls и один из вариантов скриптов, которым это делается.
>>>> PUT_DIRS с самого момента создания make-initrd копирует содержимое
>>>> каталога без самого каталога. Например так копируется:
>>>>
>>>> PUT_DIRS += /lib/initrd
>>>>
>>> Вот, именно в этом и проблема. Нужно найти все модули в целевых каталогах и добавить в список MODULES_LOAD.
>>> В MODULES_LOAD каталоги добавлять же нельзя?
>> Это список имён модулей. Он же потом будет использован modprobe.
>> Было бы отлично если бы я знал какую задачу вы хотите решить.
>>
> Решается задача упаковки при помощи make-initrd модулей, которые даны списком. В списке есть как каталоги, так и название модулей, вида <имя_модуля.ko>
> Список был изначально предназначен для mkmodpack.
> Конечная задача загрузка iso образа с initrd.img с использованием фичи pipeline вместо propagator.
> Если модули просто добавить в initrd то они не подгружаются. waitdev не находит устройство (файловую систему isofs) по UUID.
> Поэтому весь список модулей загружаем.
>

Другой разговор. Теперь всё получилось!


-- 
Best regards,
Leonid Krivoshein.


[-- Attachment #2: 511.lst.gz --]
[-- Type: application/gzip, Size: 16759 bytes --]

[-- Attachment #3: 80-make-initrd-for-pipeline --]
[-- Type: text/plain, Size: 2166 bytes --]

#!/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 "  $(basename "$MODNAME" |sed -E 's/\.ko(\.gz)?$//') \\"
		done
		echo "  #"
	fi
	if [ -n "$INITRD_PUT_DIRS" ]; then
		echo "MODULES_LOAD += \\"
		for INITRD_PUT_DIR in $INITRD_PUT_DIRS; do
			[ -d "/lib/modules/$KVER/$INITRD_PUT_DIR" ] ||
				continue
			MODLIST="$(find /lib/modules/$KVER/$INITRD_PUT_DIR -type f)"
			[ -n "$MODLIST" ] ||
				continue
			for MODNAME in $MODLIST; do
				echo "  $(basename "$MODNAME" |sed -E 's/\.ko(\.gz)?$//') \\"
			done
		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

:

  reply	other threads:[~2021-03-31 15:54 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30 18:21 Alexey Gladkov
2021-03-30 20:18 ` Leonid Krivoshein
2021-03-31  7:44   ` Alexey Gladkov
2021-03-31 13:08     ` Leonid Krivoshein
2021-03-31 13:39       ` Alexey Gladkov
2021-03-31 13:55         ` Leonid Krivoshein
2021-03-31 14:07           ` Антон Мидюков
2021-03-31 14:34           ` Alexey Gladkov
2021-03-31 14:40           ` Alexey Gladkov
2021-03-31 14:48             ` Alexey Gladkov
2021-03-31 14:49             ` Leonid Krivoshein
2021-03-31 14:50             ` Антон Мидюков
2021-03-31 15:22               ` Alexey Gladkov
2021-03-31 15:37                 ` Антон Мидюков
2021-03-31 15:54                   ` Leonid Krivoshein [this message]
2021-03-31 15:57                   ` Alexey Gladkov
2021-03-31 16:20                     ` Leonid Krivoshein
2021-03-31 16:55                       ` Alexey Gladkov
2021-03-31 17:02                         ` Антон Мидюков
2021-03-31 17:17                           ` Alexey Gladkov
2021-03-31 18:08                             ` Leonid Krivoshein
2021-03-31 18:10                               ` Leonid Krivoshein
2021-03-31 18:29                               ` Alexey Gladkov
2021-03-31 18:54                                 ` Leonid Krivoshein
2021-03-31 18:03                         ` Leonid Krivoshein
2021-03-31 18:11                           ` Антон Мидюков
2021-03-31 18:24                             ` Michael Shigorin
2021-03-31 19:02                               ` Leonid Krivoshein
2021-03-31 18:38                             ` Alexey Gladkov
2021-03-31 18:49                               ` Leonid Krivoshein
2021-03-31 19:20                               ` Leonid Krivoshein
2021-04-01  2:32                               ` Антон Мидюков
2021-03-31 18:44                             ` Leonid Krivoshein
2021-03-31 18:45                           ` Alexey Gladkov
2021-03-31 23:49                         ` Leonid Krivoshein
2021-04-01  9:02                           ` Alexey Gladkov
2021-04-01 10:38                             ` Leonid Krivoshein
2021-04-02 17:46                             ` Leonid Krivoshein
2021-04-02 17:57                               ` Leonid Krivoshein
2021-04-04 19:04                                 ` Konstantin Lepikhov
2021-04-04 19:21                                   ` Leonid Krivoshein
2021-04-02 18:37                             ` Leonid Krivoshein
2021-04-03 11:09                               ` Alexey Gladkov
2021-04-03 11:31                                 ` Leonid Krivoshein
2021-04-03 11:37                                   ` Антон Мидюков
2021-04-03 12:16                                     ` Leonid Krivoshein
2021-04-03 12:27                                       ` Антон Мидюков
2021-04-03 11:59                                   ` Alexey Gladkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a7385a92-d9df-b9f7-3577-86fc56d97c60@gmail.com \
    --to=klark.devel@gmail.com \
    --cc=make-initrd@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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