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
:
next prev parent 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