The OpenNET Project / Index page

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



"В ядро Linux приняты изменения для исправления ошибки в UEFI..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Второй уровень иерархии тем в форуме реализован через вкладку "Показ ключевых тем".
. "В ядро Linux приняты изменения для исправления ошибки в UEFI..." +2 +/
Сообщение от Аноним (-), 01-Фев-13, 15:57 
> Стоп-стоп. Ошибка в UEFI. Из-за нее UEFI не возвращает корректный код возврата.
> Дальше смотрим:
> - Win: работает нормально
> - Lin: умирает
> Вопрос, кто же мешал драйверописателям предусмотреть такую аварийную некорректную ситуацию?

Да предусмотрели они. Только проблема оказалась заковыристей. И, если верить анализу проблемы (http://www.jakobheinemann.de/en/blog.html), то эта ошибка инженеров Гнусмаса затрагивает работу не только Linux, а и части их собственного UEFI (UEFI Shell), только с менее разрушительными последствиями - тот просто не запускается.
"The implementation in Samsungs UEFI shows some weird behavior. Error code EFI_INVALID_PARAMETER should only be returned, if one of the given pointers to variables is NULL and pointing to an invalid memory section. Samsungs implementation also throughs this error, if the given memory blocksize is not exactly 128 bytes, so for example (like the Linux-efivars module does) 1024 bytes. The Linux module does not expect the strange error code (it checks for NULL pointers itself) and does not report any UEFI variables, no boot entries, no nothing. The installer accepts that and installs the Linux boot entry into the first slot, where actually the boot entry for the setup is located - overwriting that entry! Setup is dead since Linux took its boot entry.
This bug does not only cause Linux to stumble, also UEFI Shell version 2.0 does not start at all. The shell also allocates a larger buffer for the variable name, which causes the shell to exit with error trying to allocation the environment variables within the data section. A small change within the source code and it runs like a charm: Samsung UEFI-Shell 2.0 64Bit (patched 64-bit shell, put in on FAT16/32-USB-stick as /EFI/BOOT/BOOTx64.efi, then boot from stick with UEFI boot switched on)
The error probably has its origin in mixing up UEFI version 1 and 2. In version 1 variable names still had a fixed size of 128 Byte. Version 2 changed this, but Samsung didn't."

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

Оглавление
В ядро Linux приняты изменения для исправления ошибки в UEFI..., opennews, 01-Фев-13, 13:02  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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