>> И сначала хорошо бы посмотреть загружаемый размер секций,
>> а потом уже рассуждать, что там что содержит.
> При сборке подтягивается соответствующий код загрузчика.Смотрим, что там за код и куда он подтягивается:
arch/x86/boot/compressed/head_64.S
.code32
SYM_FUNC_START(startup_32)
/*
* 32bit entry is 0 and it is ABI so immutable!
* If we come here directly from a bootloader,
* kernel(text+data+bss+brk) ramdisk, zero_page, command line
* all need to be under the 4G limit.
*/
cld
cli
.....
#ifdef CONFIG_RELOCATABLE
movl %ebp, %ebx
#ifdef CONFIG_EFI_STUB
/*
* If we were loaded via the EFI LoadImage service, startup_32 will be at an
* offset to the start of the space allocated for the image. efi_pe_entry will
* set up image_offset to tell us where the image actually starts, so that we
* can use the full available buffer.
* image_offset = startup_32 - image_base
* Otherwise image_offset will be zero and has no effect on the calculations.
*/
subl rva(image_offset)(%ebp), %ebx
#endif
movl BP_kernel_alignment(%esi), %eax
decl %eax
addl %eax, %ebx
notl %eax
andl %eax, %ebx
cmpl $LOAD_PHYSICAL_ADDR, %ebx
jae 1f
#endif
movl $LOAD_PHYSICAL_ADDR, %ebx
1:
/* Target address to relocate to for decompression */
addl BP_init_size(%esi), %ebx
subl $ rva(_end), %ebx
/*
* Prepare for entering 64 bit mode
*/
> А какой он должен быть, если
> у него задача тривиальна?
Задача поля заголовка "размер секции"? Действительно тривиальна: указать EFI LoadImage service сколько байт надо считать в память. Если при этом загрузится образ ядра целиком, значит загрузчиком является не заглушка (stub), а EFI LoadImage service.
>> Пробовали?
> Регулярно так и делаю.
>> "Some UEFI implementations however seem to not support passing parameters from the
>> NVRAM to the EFI stub kernel."
> Кривые прошивки существовали всегда и для всего. Это не повод не применять
> стандартный инструментарий.
То есть существует некий стандарт, на который в данном случае можно сослаться? Если у Васяна работать не будет, "УМВР" так себе аргумент.
> Сам с таким не сталкивался, но полагаю, что запуск
> с параметрами в командной строке можно завернуть в EFI-shell-скриптовый файл, и
> его уже прописать на запуск.
Ага, а генерировать такой скрипт и подписывать (ради чего всё это и затевается) его сразу на машине пользователя, что бы буткитам было удобнее.