Собираю ядро для 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 Ожидаемый результат: в _inst/boot появляются файлы {vmlinuz,System.map,config}-${krelease} Наблюдаемый результат: make \ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ INSTALL_PATH=`pwd`/_inst/boot \ INSTALL_MOD_PATH=`pwd`/_inst \ install modules_install make[1]: Entering directory '/home/asheplyakov/linux-be-m1000' sh ./arch/arm64/boot/install.sh 5.10.41-05484-g72af9fca9403-dirty \ arch/arm64/boot/Image System.map "/home/asheplyakov/linux-be-m1000/_inst/boot" /sbin/installkernel: /boot: Permission denied make[3]: *** [arch/arm64/boot/Makefile:40: install] Error 1 make[2]: *** [arch/arm64/Makefile:165: install] Error 2 make[1]: *** [Makefile:336: __build_one_by_one] Error 2 make[1]: Leaving directory '/home/asheplyakov/linux-be-m1000' make: *** [Makefile.qtcreator:45: install] Error 2 Что за самодеятельность - зачем тащить ядро в /boot, если явно указан INSTALL_PATH (и ядро вообще для другой архитектуры)?
И правда, исправление[1] из 0.5.3-alt1 в p9 не дошло. [1] http://git.altlinux.org/gears/b/bootloader-utils.git?a=commitdiff;h=93a4efba28ce3c40ceb86cb16026bbd9e39a0157 Попробуйте bootloader-utils из #274649.
В 0.5.3-alt1 есть некоторые улучшения: ядро, .config и System.map таки копируются именно туда, куда сказано. Однако installkernel всё равно пытается создать initramfs и что-то сделать с загрузчиком. Об этом никто не просил, и это, очевидно, не удаётся: - ядро для другой архитектуры, собирать для него initramfs из хостовых бинарников заведомо провальная затея - модули еще не установлены - установят их не в /lib/modules, а тоже во временную директорию (которая потом копируется на плату тем или иным способом)
(In reply to Ivan A. Melnikov from comment #1) > И правда, исправление[1] из 0.5.3-alt1 в p9 не дошло. > > [1] > http://git.altlinux.org/gears/b/bootloader-utils.git?a=commitdiff; > h=93a4efba28ce3c40ceb86cb16026bbd9e39a0157 > > Попробуйте bootloader-utils из #274649. make \ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ INSTALL_PATH=`pwd`/_inst/boot \ INSTALL_MOD_PATH=`pwd`/_inst \ install modules_install make[1]: Entering directory '/home/asheplyakov/linux-be-m1000' sh ./arch/arm64/boot/install.sh 5.10.41-05484-g72af9fca9403-dirty \ arch/arm64/boot/Image System.map "/home/asheplyakov/linux-be-m1000/_inst/boot" depmod: ERROR: could not open directory /lib/modules/5.10.41-05484-g72af9fca9403-dirty: No such file or directory depmod: FATAL: could not search modules: No such file or directory make-initrd: /lib/modules/5.10.41-05484-g72af9fca9403-dirty: Not readable make[3]: *** [arch/arm64/boot/Makefile:40: install] Error 1 make[2]: *** [arch/arm64/Makefile:165: install] Error 2 make[1]: *** [Makefile:336: __build_one_by_one] Error 2 Пытается запустить depmod, создать initramfs, и далее со всеми остановками. Объяснил, что так делать не надо: diff --git a/installkernel b/installkernel index eed1dae..e5535c3 100644 --- a/installkernel +++ b/installkernel @@ -104,6 +104,12 @@ if [ $# -ge 4 ]; then cp -S.old --preserve=timestamps "$KIMG" "$BOOTDIR/vmlinuz-$VERSION" cp -S.old --preserve=timestamps "$KMAP" "$BOOTDIR/System.map-$VERSION" NOFLAVOUR=y + if [ "$BOOTDIR" != "/boot" ]; then + # The kernel image is being installed into staging directory, i.e. + # make install INSTALL_PATH=`pwd`/inst ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- + # Don't generate initramfs, and don't touch boot loader. + exit 0 + fi fi : ${INITRD_GENERATOR:=make-initrd} #274656 FAILED #1 [test-only] p9 bootloader-utils.git=0.5.3-alt2 (failed потому, что новее, чем в sisyphus)
Ждём #286347 EPERM #2 [locked] p10 bootloader-utils.git=0.5.3-alt2 #286348 POSTPONED #2 p9 bootloader-utils.git=0.5.3-alt2
Алексей, здравствуйте. По указанным шагам ошибка "/boot: Permission denied" не воспроизвелась. В то же время, мой результат не соответствует ожидаемому - в _inst создается только папка lib: host-48 linux-be-m1000 # make \ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \ INSTALL_PATH=`pwd`/_inst/boot \ INSTALL_MOD_PATH=`pwd`/_inst \ install modules_install sh ./arch/arm64/boot/install.sh 5.10.101-gb5513a086915 \ arch/arm64/boot/Image System.map "/root/linux-be-m1000/_inst/boot" cp: невозможно создать обычный файл '/root/linux-be-m1000/_inst/boot/config-5.10.101-gb5513a086915': Нет такого файла или каталога cp: невозможно создать обычный файл '/root/linux-be-m1000/_inst/boot/vmlinuz-5.10.101-gb5513a086915': Нет такого файла или каталога cp: невозможно создать обычный файл '/root/linux-be-m1000/_inst/boot/System.map-5.10.101-gb5513a086915': Нет такого файла или каталога INSTALL arch/arm64/lib/xor-neon.ko INSTALL crypto/async_tx/async_memcpy.ko ... INSTALL sound/usb/snd-usbmidi-lib.ko DEPMOD 5.10.101-gb5513a086915 host-48 linux-be-m1000 # l _inst/ итого 12 drwxr-xr-x 3 root root 4096 апр 19 16:21 lib/ drwxr-xr-x 3 root root 4096 апр 19 16:21 ./ drwxr-xr-x 26 root root 4096 апр 19 16:21 ../ - Стенд: виртуальная машина с системой, установленной из образа alt-workstation-9.2-aarch64.iso и обновленной до p9. - Версия пакета: bootloader-utils-0.5.3-alt2.noarch Подскажите, пожалуйста, актуальные шаги для воспроизведения ошибки.