[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