The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Компания NVIDIA открыла код видеодрайверов для ядра Linux"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Компания NVIDIA открыла код видеодрайверов для ядра Linux" +/
Сообщение от n00by (ok), 22-Май-22, 12:27 
>> И сначала хорошо бы посмотреть загружаемый размер секций,
>> а потом уже рассуждать, что там что содержит.
> При сборке подтягивается соответствующий код загрузчика.

Смотрим, что там за код и куда он подтягивается:

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-скриптовый файл, и
> его уже прописать на запуск.

Ага, а генерировать такой скрипт и подписывать (ради чего всё это и затевается) его сразу на машине пользователя, что бы буткитам было удобнее.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Компания NVIDIA открыла код видеодрайверов для ядра Linux, opennews, 12-Май-22, 07:19  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру