Bug 40551 - installkernel пытается создать initramfs и настроить загрузчик при вызове из Makefile ядра
Summary: installkernel пытается создать initramfs и настроить загрузчик при вызове из ...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: bootloader-utils (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 major
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-21 10:03 MSK by Alexey Sheplyakov
Modified: 2021-09-29 19:29 MSK (History)
14 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Sheplyakov 2021-07-21 10:03:15 MSK
Собираю ядро для arm64 платы, и устанавливаю его во временную директорию. Вот так:

git clone --depth=1 -b baikalm-5.10.y git://github.com/altlinux/linux-be-m1000.git
cd linux-be-m1000
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j`nproc` baikal_minimal_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j`nproc` all
rm -rf _inst
mkdir -p -m755 _inst
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_PATH=`pwd`/_inst/boot INSTALL_MOD_PATH=`pwd`/_inst install modules_install

Ожидаемый результат: 
1. Ядро (vmlinuz), его System.map и config скопированы в директорию _inst/boot
2. Модули скопированы в _inst/lib/modules/$kernel_version
3. (Не обязательно) Вычислены зависимости модулей, что-нибудь вроде
   depmod -b `pwd/_inst -F _inst/boot/System.map-${kernel_version} $kernel_version


Наблюдаемый результат:
Дополнительно к ожидаемым действиям installkernel пытается
1. Прописать собранное ядро в grub.cfg на локальной (x86_64) системе
2. Создать initramfs (из x86_64 бинарников, ха-ха)

Эти действия не только неправильны, но и потенциально разрушительны.
Например, если кто-то сделает `sudo make install ...`, то получит сломанный grub.cfg (который по умолчанию грузит ядро для другой архитектуры)

Предлагаемые изменения:

Не трогать загрузчик, и не создавать initramfs, если 

а) installkernel вызван из Makefile ядра (с 3 или более аргументами), либо
б) installkernel вызван из Makefile ядра (с 3 или более аргументами), и $BOOTDIR != /boot
Comment 1 Alexey Sheplyakov 2021-07-21 10:11:31 MSK
#279869 BUILDING #1 [locked] [test-only] sisyphus bootloader-utils.git=0.5.3-alt2
Comment 2 Alexey Sheplyakov 2021-08-01 20:48:46 MSK
#279869 EPERM #2 sisyphus bootloader-utils.git=0.5.3-alt2

Importance: major, т.к. сборка ядер (для arm/arm64) - и без того не совсем простой процесс - требует лишних телодвижений.
Comment 3 Ivan A. Melnikov 2021-09-24 12:45:22 MSK
Уважаемые мейнтенеры bootloader-utils!

Пожалуйста, сделайте что нибуть с этим. Этот баг мешает разрабатывать ядра для систем на mipsel и riscv64.
Comment 4 Anton V. Boyarshinov 2021-09-24 13:15:25 MSK
(Ответ для Ivan A. Melnikov на комментарий #3)
> Уважаемые мейнтенеры bootloader-utils!
> 
> Пожалуйста, сделайте что нибуть с этим. Этот баг мешает разрабатывать ядра
> для систем на mipsel и riscv64.

ssh git task show 279869
id=279869 locked=no shared=no fail_early=yes test_only=no repo=sisyphus owner=asheplyakov state=EPERM try=3 iter=1 age=4w build_time=2021-Aug-24/08:09:05
 100:dir=/people/asheplyakov/packages/bootloader-utils.git
 100:tag_name=0.5.3-alt2
 100:tag_id=5a6374e63d1f3bf1943690f3b236c9e49c567db5
 100:tag_author=Alexey Sheplyakov <asheplyakov@altlinux.org>
 100:fetched=2021-07-21T07:07:54
 100:userid=asheplyakov
 100:approved_by=sin boyarsh 
 100:pkgname=bootloader-utils

Я одобрил задание, что ещё надо сделать?
Comment 5 Anton V. Boyarshinov 2021-09-24 13:16:36 MSK
(Ответ для Anton V. Boyarshinov на комментарий #4)

> Я одобрил задание, что ещё надо сделать?
PS уже довольно давно как одобрил, уже не помню когда именно
Comment 6 Alexey Sheplyakov 2021-09-27 11:51:14 MSK
(In reply to Anton V. Boyarshinov from comment #5)

> > Я одобрил задание, что ещё надо сделать?

Спасибо. Больше ничего не надо.

> PS уже довольно давно как одобрил, уже не помню когда именно

Я пропустил уведомление (почему-то оно попало в spam).
Comment 7 Alexey Sheplyakov 2021-09-29 19:29:51 MSK
Исправлено в версии 0.5.3-alt2