Хочу снова поделиться интересным случаем решения проблемы, и сэкономить вам время и нервы на её решении. Принесли мне тут на днях для реанимации ноутбук вот с такими же симптомами:
Сразу сделаю отступление — указанный в описании видео метод реанимации в данном случае не помог совершенно никак. Почему — описано ниже.
Предыстория проста: работали себе пользователи на ноуте спокойно, ничего страшного не делали. Система предложила обновиться до 8.1 — согласились. Система начала обновляться, ушла на перезагрузку и на этом всё. Неустранимый BSOD с кодом ошибки «ACPI_BIOS_ERROR». До меня ноутбук уже таскали к местному знатоку, он попробовал всё, что смог навскидку проверить, после чего развел руками и отправил ко мне, потому что в придачу к стабильному BSODу ноутбук категорически отказывался реагировать на горячие клавиши входа в меню UEFI и/или выбора загрузочного устройства. Совсем, абсолютно. При этом и с внешних устройств грузиться даже не пытался, упорно запускаясь с внутреннего винта и разумеется снова уходя в бесконечное кольцо попыток загрузки.
Первое, что я попробовал сделать — разумеется войти в настройки UEFI всеми возможными сочетаниями горячих клавиш. Безрезультатно, само собой. Ладно, чтобы прервать этот порочный круг — отключил винт. При попытке загрузки загрузчик руганулся на отсутствие загрузочных устройств и предложил нажать хоткей для входа в настройки. «Ага», сказал себе я, нажимая хоткей. Но не тут-то было. Ноутбук всё так же не реагировал на горячие клавиши. Лады, попробуем зайти с другой стороны. Подключил к ноутбуку со снятым винтом внешний накопитель со смонтированным в эмуляторе оптического привода оригинальным образом Windows 8. Запуск — пошла загрузка с образа. Отлично. В меню загрузки через расширенные настройки режима восстановления выбрал изменение настроек встроенного ПО UEFI и после перезагрузки наконец попал в меню. А вот дальнейшее меня несколько озадачило:
Сброс настроек на настройки по умолчанию ничего не дал. Запустить родной режим восстановения ОС из образа со служебного раздела винта не позволила неработоспособность хоткеев. Попытки выставить приоритет загрузки так, чтобы загрузочным устройством был не основной накопитель, а внешний оказались безрезультатными — устройство
После такого зубодробильного восстановления захотелось поинтересоваться, а что же это вообще такое, и в чем причина такого поведения. После непродолжительного гугления оказалось, что подобной проблемой страдают очень многие ноутбуки как того же производителя, так и других, а корень проблемы — недоработки в их ПО UEFI, из-за которых garbage collector UEFI не чистил NVRAM, сбросить который можно только при обновлении прошивки встроенного ПО. По ссылкам можно прочесть подробное описание сути проблемы.
ОС на эти ноутбуки устанавливается простым раскатыванием образов сразу на HDD, поэтому сразу после запуска систем на свежем ноутбуке с завода оказывается в работоспособном состоянии. Но первая же попытка обновить систему до 8.1 или просто переустановить родную 8-ку или сделать аварийное восстановление системы триггерит возникновение этого бесконечного кольца загрузки. В дальнейшем же эта проблема может быть исправлена либо так, как я описал выше, либо обращением в сервис. От себя же лично посылаю лучи неудержимого поноса проектировщикам UEFI ПО отдельных фирм-производителей и их службам контроля качества. С таким их отношением ноутбуки чем дальше, тем больше превращаются в необслуживаемые одноразовые устройства, с примерным сроком эксплуатации в полгода-год.
Комментарии (81)
noxwell
07.04.2015 19:55+3Вам еще повезло, что система осталась частично работоспособна. На моем ноутбуке (ASUS) при определенном стечении обстоятельств портится NVRAM так, что ноутубук вообще не включается. Я не единственный с такой проблемой, это глюк UEFI, лечится (точнее восстанавливается работоспособность, проблема не исчезает) либо заменой материнской платы по гарантии, либо пересадкой прошивки программатором с донора (как я и сделал). Прошивка не обновляется производителем совсем, а версия на оффсайте не пригодна для заливки в чип. И никого это не волнует, слишком маленький процент пострадавших…
Было бы хорошо иметь на чипе незатираемый сектор восстановления, тогда проблема легко решается штатными средствами. Но тогда придется устанавливать более емкие, а следовательно более дорогие чипы…CodeRush
07.04.2015 20:42+7Емкости, зачастую, хватило бы и так, тут не хватает мотивации одним и умения другим.
Дело в том, что PC firmware (BIOS или UEFI — не важно) разрабатывался и разрабатывается по следующей схеме:
CPU Vendor -> BIOS Vendor -> System Vendor. Разработчик процессора (в нашем UEFI'шном случае это Intel, AMD или ARM) пишет код низкоуровневой инициализации поставляемых им компонентов — процессора, чипсета, контролера памяти, контролера PCI(e), контролера USB и т.п. и предоставляет этот «скелет» разработчику платформы (обычно таких разработчиков называют IBV aka Independent BIOS Vendor, самые известные — AMI, Phoenix, Insyde). Затем IBV наращивает на «скелете» разного рода «мясо» (т.е. фичи вроде CSM, BIOS Setup, загрузчик, ACPI, и т.д.) и предоставляет так называемый full-featured reference platform BIOS, работающий на референсной же плате от разработчика процессора, называемой CRB aka Customer Reference Board. Затем производители железа вроде ASUS и Gigabyte покупают вот эту самую CRB у производителя CPU и вот этот самый BIOS у IBV и адаптируют и то, и другое под свои условия, добавляя драйверы для собственных устройств, свой AML-код и свои картинки на фон в BIOS Setup.
В результате получается, что производитель CPU отвечает только за свои собственные низкоуровневые компоненты и ему вообще не важно, как устроен NVRAM, если ли баги в работе с ним или нет и где он физически находится. Код инициализации либо не использует NVRAM вообще, либо использует только для чтения/записи временных (non-volatile) или мелких, доступных только коду UEFI, BS-переменных, и если БИОС дошел до загрузки ОС вообще, то эта часть кода работы с NVRAM отлажена и функционирует нормально.
IVB тоже не слишком важно, что там устроено и как, их задача — выкатить работающий референсный BIOS. Никто его толком не тестирует, и многого от него тоже никто не ждет, т.к. CRB сама по себе работает нестабильно и нагрузочного тестирования на ней никто не проводит — это задача конечного вендора. Часть кода берется из TianoCore, часть дописыватся тут же, часть наскивается из других похожих проектов, в итоге получается лоскутное одеяло, которое криво-косо, но работает на CRB, а больше от него ничего и не надо — вендоры сами разбируться, это их работа.
Конечный же вендор стремится минимизировать издержки и ускорить выход продукта на рынок, а потому вообще не лезет в код, написаный на предыдущих этапах, если этот код хоть как-то работает, у него хватает проблем с адаптацией тех кусков кода, которые работать упрямо отказываются, а должны еще вчера. В результате такого подхода куча решений из серии «это костыль, уберем в следующем коммите» и «работает и хай так» не только оказываются в продакшене, но и живут там до самой смерти платы. Архитектуру менять некому и некогда, т.к. никто в дополнительной работе без каких-либо дивидендов не заинтересован.
KamikaZze_ru Автор
07.04.2015 21:40+3А вот от этого совсем поплохело. Что-то я чувствую, что скоро буду с ностальгией вспоминать старые добрые кондовые BIOSы без UEFI как такового. И да, спасибо за информацию, теперь понятно откуда такая свистопляска вообще.
AllexIn
08.04.2015 10:37+2Честно говоря, мысль о том, что хочется старый добрый BIOS появилась с первым же опытом общения с UEFI. ПРи том что UEFI прекрасно работает на моих платах(тьфу-тьфу-тьфу) и он нагляднее и удобнее BIOS'a… Но вот это чувство, что в нем ради свистелк и перделок забивают на качество было… После прочтения стать и комментариев это чувство стало обоснованным.
vaslobas
08.04.2015 03:54+1Стоит сказать, что спеки по ACPI никто не просто не придерживается, а похоже просто не читали.
CodeRush
08.04.2015 08:29+4Стоит добавить, что спеку писали законченые наркоманы, а людей, которые могут правильно писать на AML без ошибок, можно по пальцам пересчитать. Более того, примерно 80% AML-кода пишется производителем CPU (которому плевать на warning'и), еще по 10% — IVB и конечным вендором (и будь они хоть кем, их код — капля в море). Да и если большая часть современных ОС на недоработки ACPI все равно плевать хотела (а серьезно пользуется им только OSX), то и отношение к технологии — соответствующее. Пока оно работает хоть как-то — никто ничего трогать не будет, работы хватает и без этого.
JerleShannara
08.04.2015 13:45ACPI это наихудший стандарт, который я читал. Понять ЭТО чЮдо по моему нереально.
CodeRush
08.04.2015 15:14Можно, если очень стараться и все остальное уже и так работает. Многие пользователи Хакинтоша отлаживают свои DSDT и SSDT самостоятельно до состояния Errors 0, Warnings 0, Remarks 0, Info 0, не имея при этом документации, но это все отнимает кучу времени и будет сломано следующим апдейтом БИОСа, а потому разработчикам просто некогда разбираться с ошибками ACPI. Работает — и ладно.
vaslobas
08.04.2015 15:52+1Этот человек я. И спеки я изучал очень долго. Там такой талмуд как война и мир просто. Но осилить можно.
stychos
08.04.2015 20:51+1Я свои DSDT-SSDT таки довёл до E0W0R0I0, но спеки не читал, горе мне)
В остальном Вы правы, только, на мой взгляд, забыли упомянуть, что и талмуд там не один (желательно знать и 4.0, и 5.0), и огромная Errata и там и там. Ну и куча рассыпухи по 500-600 листов при желании найдётся.vaslobas
09.04.2015 04:30Я и порезал кучу кода. Т.е. я стремился к минимальному количества кода.
Ориентировался на последнию версию и всё было ок.
KamikaZze_ru Автор
07.04.2015 21:36Ого, ничего себе. Вот уроды, а. На такое вообще никаких цензурных эпитетов не остается. А какая конкретная модель ноута, если не секрет? Можно в личку, чтобы если такой принесут, знать прикуп заранее.
merhalak
07.04.2015 23:07+1Этой ошибке подвержены наверно все ветки Samsung'ов.
В моём случае — ломались:
Samsung ATIV 7 (7 серия) Samsung NP300 (3 серия)
В первом случае — отец купил ультрабук мне на учёбу, шаловливые ручки повредили раздел /boot и ноутбук также ушёл в циклическую загрузку. Попытка самостоятельно починить ноутбук провалилась на корню, когда я попытался его вскрыть — слишком много мелких и хрупких защёлок, решил не рисковать, отнести в сервисный — 2к на ремонт.
Во втором случае (руки не оттуда растут) — загрузка с Live CD не удалась, снял винчестер, сменил его на винчестер из внешнего бокса, смог загрузиться в LiveCD, использовал efibootmgr, удалил лишний загрузочный пункт, проблема ушла. Правда затем решил обновить firmware у ноутбука — лучше бы я этого не делал — в новом firmware нет возможности загрузки с флешки. Я был в шоке. Пришлось пользоваться только дисководом.danfe
08.04.2015 10:15+1Правда затем решил обновить firmware у ноутбука [...] в новом firmware нет возможности загрузки с флешки.
То есть они (производитель) прям вот честно в changelog'е написали, что, мол, мы считаем, что с флешки грузиться — от лукавого, и убрали эту возможность? Это ведь уже даже не просто мелкое вредительство, это имхо вообще за гранью добра и зла.
Вообще, конечно, новое железо ужасно расстраивает. Казалось бы, есть холодные, быстрые процы на рынке, приличные матрицы, ёмкие винты, кучу памяти можно воткнуть, но вот найти хороший, годный готовый ноутбук при этом становится с каждым годом все сложнее. А «на коленке» изготовить плату, чтобы засунуть ее в какой-нибудь старый корпус, не получится. :-(HoverHell
08.04.2015 12:22Я бы предположил что на самом деле возможность загрузиться с флэшки есть, но для включения требуется этак пять магических неочевидно-релевантных опций.
CodeRush
07.04.2015 20:08+5Все проблемы от того, что опять смешали код и данные.
NVRAM не место в той же микросхеме, в которой находится исполняемый код, и важнейшим системным приложениям вроде BIOS Setup и BIOS Update не место среди переменных BootXXXX. Неработоспособность их вызвана тем, что в реализациях Phoenix SCT и Insyde H2O все функции, вызываемые с POST-экрана горячими клавишами — всего лишь очередные «загрузочные устройства», прописанные в NVRAM, и потому при нарушении работы NVRAM они тоже перестают работать. Этому багу почти 5 лет и на некоторых новых ноутбуках он по прежнему присуствует. И повезло еще, что хоть что-то загрузочное осталось, иногда бывает так, что какой-нибудь efibootmgr сносит вообще все переменные BootXXXX, и система после перезагрузки показывает только черный экран.
Самая правильная реализация работы с NVRAM в данный момент у AMI. У них отдельно хранится слепок настроек по умолчанию, которые будут скопированны поверх NVRAM в случае, если с ним случилось что-то непоправимое, а системные функции вроде BIOS Setup вызываются из приложения, которое стартует всегда и запуск которого не зависит от состояния NVRAM вообще.
Тем не менее, сама идея NVRAM на той же микросхеме, что и исполняемый код — порочна по сути. Постараюсь в одном из проектов вместо установки одного чипа на 16 мб поставить два по 8 и на первый перенести все регионы, запись в которые нужна при работе системы (GbE, ME, NVRAM), а на вторую записать прошивку и защитить весь чип от записи переключателем SPI_WP. Нужно обновлять прошивку — выключил защиту, обновил из BIOS Setup, включил назад. И никаких танцев с криптографией и защитой пользователя от самого себя. Да, это больше работы по адаптации, но овчинка стоит выделки, на мой взгляд.KamikaZze_ru Автор
07.04.2015 21:45+1Ей-богу стоит, хотя бы с точки зрения бесперебойности работы и легкого восстановления после сбоев. Эти вот танцы с бубном с технологией, которая должна была по идее заменить удобно «старый, немасштабируемый и небезопасный» BIOS вызывают у меня легкую оторопь, я честно говоря никогда себе не представлял устройство, которое само себе способно запороть микропрограмму, просто так вот, в процессе вполне штатной, обычной работы. Чем дальше, тем больше создается впечатление, что вся концепция UEFI — flawed by design.
CodeRush
07.04.2015 22:12+4Концепция там нормальная, как раз, но как всегда, «гладко было на бумаге».
BIOS изнутри устроен еще хуже, и под занавес его разработка стала настолько сложной и дорогой, а требования настолько противоречивыми, что без UEFI (а другого стандарта такого уровня просто не было) все равно было не обойтись.
Проблема там в основном в том, что внедрение UEFI и PI (Platform Interface, стандарт нижнего уровня прошивки) упростило разработку компонентов прошивки примерно на порядок засчет перехода с ассемблера на С и использования стандартных компиляторов/сборщиков/отладчиков/утилит вместо специализированных. А это, в свою очередь, резко упростило и удешевило добавление в прошивку компонентов, которые раньше пихать туда было дорого и велик был риск не вылезти из отладки. В результате имеем половину OpenSSL в составе CryptoPkg, половину сетевого стека из FreeBSD в составе NetworkPkg, поддержку PNG и OpenGL в BIOS Setup и прочий цирк с конями. А т.к. цирк и кони хорошо продаются простому пользователю, то все силы IBV и конечные вендоры бросили именно на них, в итоге фичи уже не влезают в 16 Мб флеша, а баги висят незакрытыми годами. Хуже всего еще и то, что про безопасность задумались более или менее серьезно только в этом году, и до сих пор 95% процентов прошивок — решето такое, что можно вермишель просеивать, но про это я не имею права рассказывать, читайте сами вот тут.KamikaZze_ru Автор
07.04.2015 22:18mother_of_god.jpg
Мда, это ж можно ваять такие вири, что Win.CIH печально известный покажется безобидным порнобаннером. А хуже всего то, что все эти дыры принципиально не закрываются на старом оборудовании, производители же концентрируются на выпуске нового. Плохо. Всё очень плохо.CodeRush
07.04.2015 22:35+5Можно, и уже ваяют. Я пока не слышал об успешных атаках, устроенных вредоносным кодом, но это вовсе не означает, что их не было или не будет. Обязательно будут. В данный момент безопасность прошивок большинства находящихся на рынке машин — околонулевая, а некоторые вендоры до сих пор позволяют прошивать любые образы БИОСа без валидации прямо из ОС (привет Asrock и EVGA), а это даже не дыра в безопасности — это просто открытая дверь для кода, который хочет добавить себя в БИОС. По моей скромной оценке, примерно на 98% ПК с UEFI на данный момент существует минимум одна незакрытая уязвимость, позволяющая добавить свой код в БИОС и получить управление до загрузки ОС. Остальные два — системы с включенным BootGuard, на которых вместо этого получится DoS, т.е. после прошивки система просто перестанет рабоать.
«Please, please, please, go apply patches!» Xeno Kovah @ CanSecWest2015KamikaZze_ru Автор
07.04.2015 22:47А вот теперь мне холодно и страшно (с). Это ведь в итоге мне всё это потащат в ремонт. Чувствую пора обзаводиться программатором. Нет, я конечно люто признателен производителям за то, что я точно без работы не останусь с таким подходом, и будет мне и хлеб, и масло с икрой на него, но вся моя натура инженера-системотехника искренне протестует против такого безобразного подхода к созданию оборудования. Кстати, а вот эта проблема с nvram — я ведь, насколько понимаю прошивкой не устранил проблему совсем, а просто в процессе прошивки nvram зачистился, верно? Соответственно у юзера все так же сохранилась возможность вновь наступить на грабли при обновлении системы. А значит уже очень скоро, сразу после выхода Win 10, которая будет лицензионно-бесплатная для всех лицензионных пользователей Win 7/8/8.1, мне валом понесут ноутбуки (а может даже и стационарные системники) с той же самой сабжевой проблемой. Ибо шанса обновиться нахаляву на 10-ку мало кто из пользователей упустит.
CodeRush
07.04.2015 23:04+3Именно так, проблема никуда не делась, и скорее всего никуда уже не денется. Жизненный цикл продуктов для массовго рынка — полгода, потом к ним перестают выпускать обновления, ведь нужно разработывать новое поколение продуктов, у которых еще больше фич и еще короче время выхода на рынок. Большая часть ИТ (как и всей остальной индустрии) — пример широко известной в узких кругах экономики говна, исключений там два с половиной и все они работают на индустрию, а не на конечного пользователя.
Системники не понесут, там AMI Aptio, который от разваливания NVRAM намертво не ломается (ну подумаешь настройки перестают сохранятся, но в них все равно ведь никто не лезет...), а вот ноутбуки — еще как, так что без хорошего программатора (рекомендую Dediprog SF-600, но можно взять и MiniPro TL866A, он подешевле) восстаналивать эту гору ноутбуков будет весьма непросто.KamikaZze_ru Автор
07.04.2015 23:10За совет по программатору отдельное спасибо. MiniPro TL866A как минимум надо точно взять будет.
Odinokij_Kot
08.04.2015 08:03+1Хехе =) а я совсем обленился что-то. Последнее время паять стало совсем лень, по этому заказал у китайцев клипсу на so8 корпуса. А шить как и раньше буду своим любимым beeprog+
KamikaZze_ru Автор
08.04.2015 08:27А что за клипса? Я так понимаю, позволяет подцепиться к чипу прямо на плате? Дайте ссылочку поглядеть на продукт.
CodeRush
08.04.2015 08:37+3Так называемая SOIC Test Clip, хорошие делают Pomona и 3M, китайские, к сожалению, быстро выходят из строя.
Odinokij_Kot
08.04.2015 11:59О спасибо за совет. У меня объёмы небольшие, попробую пока китайца, коли уже заказл. Если сломается уже Промоной обзаведусь.
Odinokij_Kot
08.04.2015 11:58+3Что-то типа такого. www.aliexpress.com/item/Free-Shipping-Hot-BIOS-24-25-93-Programmer-SOIC8-SOP8-Flash-Chip-IC-Test-Clips-Socket/32291521087.html
Но для её использования программатор должен адекватно отрабатывать наличие хостового питания.
Сейчас я подчепляюсь мелкими крокодильчиками к ногам, в прогамматоре выбираю режим работы ISP (типа внутрисхемный отладчик\прошивальщик), и шью прошивку на ноутах прямо на «горячую», отправив их в сон, либо просто включив и дождавшись устойчивого чёрного экрана.
Теперь вот хочу попробовать клипсу, а то делать ктулху их крокодилов или паять чипы на каких-нибудь макбуках совсем не хочется.
KamikaZze_ru Автор
07.04.2015 22:55+1Кстати, к вам, как к разработчику отдельная просьба — если вам удастся реализовать вашу схему, с двумя чипами, на одном из которых защищенная от записи основная часть прошивки, а на втором — служебные области, доступные для записи, постарайтесь ещё вот что сделать — если это возможно, добавьте ещё один служебный микропереключатель на плату, при нажатии которого содержимое микросхемы со служебными данными будет полностью перезаписываться чистой эталонной прошивкой. На всякий случай, для удобного аппаратного решения любых потенциальных сабжевых проблем.
CodeRush
07.04.2015 23:10+1Хорошая идея, нажал кнопку — через 30 секунд получил работающую прошивку. Попробую реализовать в одном из следующих проектов, разводка которого еще не закончена.
KamikaZze_ru Автор
07.04.2015 23:13+1Именно так. Вкупе с защищенной от записи основной частью прошивки система получится просто неубиваемая. Сервисные инженеры будут бешено признательны за такое аппаратное решение.
stychos
08.04.2015 21:46Ещё бы, можно просто ткнуть кнопочку а бабла с клиента взять со словами «перепрошивка — это долго и нудно!»
KamikaZze_ru Автор
09.04.2015 15:38Не, тут не знаю как кто, а я обычно придерживаюсь профессиональной корректности. В случае описанном в посте подобная процедура обойдется клиенту в пару тысяч рублей, а в случае, если бы было все так просто, с нажатием одной кнопочки — взял бы максимум 200-300, при этом клиент бы через 10 минут после обращения уже бы забрал живой ноутбук.
stychos
09.04.2015 15:39Увы, честных мало. И одно дело, частные профессионалы, которые соблюдают корректности, и совсем другое — так называемые «сервис-центры», сам в таком работал, это печальная история.
KamikaZze_ru Автор
09.04.2015 15:40О да, «сервис-центры» те ещё рвачи. Мало того, что могут мурыжить несколько недель, так ещё и в итоге вернуть нерабочее устройство.
Lonsdaleite
07.04.2015 22:02+1А я всегда при настройке компа первым делом обновляю BIOS/UEFi, дабы избежать различных глюков.
KamikaZze_ru Автор
07.04.2015 22:04Правильно делаете, только вот говорят другие комментаторы, что это не панацея оказывается. Бывает все намного хуже.
stychos
08.04.2015 21:47Я так себе роутер обновил, что еле заставил его потом более-менее сносно работать.
chabapok
07.04.2015 23:45Значит, uefi еще слишком молодая технология. Когда-нибудь ее дообкатают и таких глюков больше не будет.
KamikaZze_ru Автор
07.04.2015 23:46+1Будем надеяться. Хотя надежды на это особой нет, почитайте что тут в обсуждении CodeRush рассказал.
CodeRush
07.04.2015 23:54+2Несмотря на вот это все — надежда есть и дело понемногу двигается с мертвой точки. Технологию обязательно обкатают, и лет через 5 у нас будут хорошие и защищенные UEFI-совместимые прошивки, а пока мы имеем то, что имеем, и пытаемся если не совсем избежать удара граблями, то хотя бы надеть каску и приготовить бинты.
DrPass
08.04.2015 10:11-1Может быть, я чего-то не понимаю, но я вообще не вижу смысла внедрения UEFI. Да, BIOS был 16-разрядным. Ну и что? От 64-битности firmware компьютер как-то иначе стал включаться? Или разве в обычном BIOS нельзя реализовать поддержку GPT? Сделано значительное усложнение системы, которое практически не принесло полезного функционала, зато добавило массу новых точек отказа.
ntfs1984
08.04.2015 10:40-1Смысл внедрения UEFI есть тогда, когда какая-нибудь очень нехорошая корпорация, хочет увеличить продажи своей ОС нечестными способами. Например подговорив вендоров сделать невозможной загрузку альтернативных ОС.
Ну и плюс ко всему, я немного параноик, и думаю что все эти баги с UEFI и прочими прошивками для SSD — не особо хотят быть пофиксенными по вполне понятным причинам: вы купили материнскую плату? когда вы ее обновите? когда выйдет новый Photoshop CS 100500, который работает только под Windows-2020SexEdition, которая будет требовать новый 128-битный CPU и террабайт мозгов? А компании все это время кушать-то хочется, вот и пытаются заставить пользователя чаще апгрейдиться, производя высеры типа «1 картридж по цене 95% от нового принтера».
Или BIOS\UEFI — это очень сложная ОС для ограниченных ресурсов? Тут блин космические аппараты за хреналионы километров прошивают…
Как-то так…chabapok
08.04.2015 10:50Если будет невозможно просто взять и прописать бут-сектор — люди сделают груб, у которого stageN ставится в ntfs, и все перехватывает.
KivApple
08.04.2015 11:35А как же Secure boot, который должен не дать загрузить ничего ядерного, что не прошло одобрение? В таком случае поможет только эксплуатация уязвимостей ядра и UEFI типа jailbreak для iOS, но это не очень хорошо.
chabapok
08.04.2015 10:43Ну любой программист вам скажет, что если «оно работает», это еще не значит, что под капотом все чисто.
С биос груз прошлого тормозит развитие. Решения, которые там применены, себя изжили. Много лет инженеры пытались тянуть лямку обратной совместимости, но со временем груз становится все тяжелее. В какой-то момент это становится слишком дорого.
И плюс наседает маркетинг. Как это ни странно, появление uefi и смерть биос должно увеличить продажи.kAIST
08.04.2015 11:14Как это ни странно, появление uefi и смерть биос должно увеличить продажи.
Интересно, каким образом? Конечному пользователю вообщем то наплевать как оно там инициируется и грузится.chabapok
08.04.2015 16:44Потому, что когда выпускают новый uefi, то старый bios перестают производить, и он становится фактически как лампочка с нестандартным цоколем. Какое-то время ее эксплуотировать конечно можно, если уже есть цоколь, который она включена. Но потом меняют и цоколь и лампочку.
Примерно то же самое будет с uefi. Например. Там по спецификации дрова к железу могут идти сразу uefi-ные, вшитые в устройство. И их не надо устанавливать, они «устанавливаются» вместе с втыкнутым устройством, а винда или линукс просто их использует. Пойдут такие устройства, люди с биосом, которые захотят эти устройства использовать, будут вынуждены купить материнку с uefiCodeRush
08.04.2015 16:56Такие устройства уже пошли, это любые современные видеокарты, SSD с интерфейсом NVMe, разного рода ускорители на FPGA и т.д. На данный момент производители предоставляют и OptionROM для совместимости с legacy BIOS, и DXE driver для UEFI, но втечение пары лет от поставки OROM'ов откажутся окончательно, вместе с отказом от CSM на большинстве десктопов. А на ноутбуках от CSM некоторые производители отказались уже сейчас.
DrPass
08.04.2015 11:18+2В том-то и проблема. Я часто слышу слова «устаревшее решение», «тормозит развитие» и т.д. Но это как раз обычно слова маркетологов, а не инженеров. Само по себе понятие «устаревшее решение» ни о чем плохом не говорит, колесо еще куда более устаревшее решение. В отношении BIOS vs UEFI я вижу достаточно простой, отлаженный десятилетиями код, и напротив него громоздкую спецификацию, обвешанную кучей дополнительных фич, многие из которых вообще никогда не будут востребованы на массовом рынке, вроде возможности создания драйверов на уровне firmware… и вот весь этот программный монстр делает абсолютно то же самое, что и BIOS. И честно, я не верю в то, что разработчикам BIOS дешевле развивать старую систему, чем создавать с нуля новую, и потом еще ее годами отлаживать.
Вот маркетинг — это да. На всех виденных мной коробках от новых материнок гордо красуется надпись вида «Graphical UEFI». Кстати, у меня в шкафу лежит материнка под 486DX, начала 1990-х. Там BIOS Setup стилизован под Windows 3.x. Окошки, пиктограммы, управляется мышкой… Вот тогда это действительно была новинка :)JerleShannara
08.04.2015 14:03+2А теперь пара слов об «устаревшем решении» от инженера. Оно не устарело, оно обкостылело (всех несогласных прошу в обработчик int13h от award образца начала 2000ых годов, впрочем там можно и весь код посмотреть, костылей хватает) и уже тупо начинало разваливаться от переодических новых костылей, в вашем колесе костылей не так уж и много. Далее,
где-то на заре мироздания, тьфу,в эпоху появления DDR2 фирма интел сказала «а ну вас нафиг с вашим устаревшим решением» и начала давать MRC (Memory Refrence Code — код, который вам настраивает память, и без него мы имеем кирпич) в виде 32-битного модуля, который к тому-же и собирался в подобие DLL. Да, недовольные этим могли подписать с интелом ещё один пакет бумажек и получить этот самый MRC в исходниках, коие были тихим ужасом. AMD тоже не отстала, выкатив AGESA/PI примерно в том-же формате. Снова выросли костыли на костылях. Почитайте исходники старого аварда, вам этого хватит, чтобы понять, что новые фичи туды прикрутить было тем ещё гемороем.
dunmaksim
08.04.2015 15:03+1Как программист, я сейчас вообще сильно разочаровался в индустрии. Всё делается в минимальные сроки, ошибки не исправляются, если с ними продукт худо-бедно работает и такое поведение не помечено заказчиком как недопустимое в ТЗ. Главный приоритет в современных IT — бабло, но никак не качество.
CodeRush
08.04.2015 12:37+2Не просто 16-разрядным, а написанным на ассемблере по большей части. И он больше 20 лет нес с собой груз тогдашних «временных решений» вроде API через прерывания, управления адрессной линией A20, ресетов через порт клавиатуры и работы с таймером 8256. И производители CPU не могли выбросить никому уже не нужный полоработающий 16-разрядный режим потому, что загрузиться станет невозможно.
Да, за эти годы компьютер стал включаться несколько иначе, а с повсеместным внедрением Management Engine — принципиально иначе, только конечному пользователю это не видно и не интересно. И систему, на самом деле, удалось упростить, а не усложнить, вы просто не видели, что творилось внутри какого-нибудь AMIBIOS8 во времена чипсета P55.
По поводу незовможности загрузки альтернативных ОС из коментария ниже — управление ключами доступно, добавляй свои ключи, удаляй стандартные и будь уверен, что на твоей системе не запустится ничего, кроме того, что ты подписал своими руками. А у тех, кто управление ключами пользователю не дает, просто ничего покупать не нужно.JerleShannara
08.04.2015 14:05AMIBIOS8 времени g33 чипсета был очень даже читаемым, понятным и вылизанным. Если будет возможность — взгляните на Award времен 965 чипсета, страшные сны вам гарантированы.
CodeRush
08.04.2015 15:22+1Да мне и AMIBIOS8 хватило, доктор сказал «в морг» — значит в морг.
Люди, которые выше в коментариях пишут про «теплый ламповый простой и отлаженный BIOS» просто не видели, в какую вавилонскую башню из костылей и велосипедов он превратился в конце двухтысячных. Из UEFI я сейчас могу практически безболезненно выкинуть все, к чему у меня не лежит душа. Bosch не устраивает наличие SMM (он мешает работе hard-RTOS) — отключаем. Нам не нравится миллион способов прошивки, а нужно оставить один, но провереный — просто отключаем остальные. Понадобилось заменить чип SuperIO на другой — сменили пару DXE-драйверов и готово.
UEFI — это конструктор LEGO в мире прошивок, и каждый собирает из него то, что считает нужным.
Sava
08.04.2015 08:20Не увидел в статье и комментариях: а с внешней клавиатурой грузиться пробовали? На встроенных и прочих «шибко вумных» возможна неработоспособность части клавиш до загрузки драйвера.
KamikaZze_ru Автор
08.04.2015 08:29Пробовал, на внешнюю тоже реакции не было.
lucius
08.04.2015 12:10+1Я вот на своём ноуте Toshiba долго не мог в биос зайти, пока не вычислил, что нужно держа зажатой F2 нажимать на кнопку включения ноутбука.
Scogun
08.04.2015 13:03Славил похожую петлю на Sony Vaio с месяц назад. Спасло то, что по умолчанию всегда ставлю первой загрузку с Blu-Ray. Поставил Win10, с ней такой проблемы нет. Однако UEFI пока не обновлял, а надо бы.
KivApple
08.04.2015 15:11Выше в комментариях пишут, что далеко не все обновления UEFI одинаково полезны.
Scogun
08.04.2015 15:32Это да. Была у меня интересная ситуация во времена еще BIOS. Купил я как-то себе новую видеокарту. Загрузился в Windows, тогда еще, Me и снес видео драйвер. Радостный вынул из AGP слота старенький Radion и воткнул новую NVidia. Все нормально загрузилось, я поставил видео драйвер и решил проверить что еще можно обновить. Еще обновить можно было BIOS! Завершив обновление, система ушла в перезагрузи и… все! Черный экран! Даже в BIOS не войти. Не помню издавала ли материнская плата какие-нибудь звуки, но все выглядело так, что все, покупай новую. Не знаю почему, но я решил воткнуть старую видео карту и… о чудо! Все нормально загрузилось! Подумав, что возможно просто материнку надо было обесточить после прошивки (что и произошло перед тем, как сменить карту), я опять поменял карты и снова получил только черный экран. Загрузившись со старой картой, я откатил BIOS и больше на этой материнке его не обновлял.
Rumlin
08.04.2015 15:16Я посылаю лучи в сторону ASUS. Замечательно работали CPU i5-2500k и ASUS p8z68-v lx. Исчез у меня разгон по множителю — перестал выставляться выше 33.
В ASUS TurboV EVO пропал пункт CPU ratio. Когда пропал не знаю. Возможно когда-то обновлял БИОС, но разгон мне понадобился только сейчас. Но теперь процессор не множителем разгоняется. Нашел тему — похоже у меня такой случай. forum.ixbt.com/post.cgi?id=print:4:122531
Хочется с одной стороны вернуть 4,5 ГГц, а с другой стороны можно окирпичить. 3,7 ГГц по шине лучше, чем кирпич.CodeRush
08.04.2015 15:29Это МЕ чудит, а ASUS проблему так и не признала. Перешейте регион ME и все будет хорошо.
Rumlin
08.04.2015 21:24Спасибо, рискну. Параллельно с этим возник более заметный и примечательный дефект — не выходит из ждущего режима. Засыпает, мигает индикатором, но при включении не восстанавливается состояние системы, а именно включается и загружается.
Mixim333
08.04.2015 19:08А нельзя ли было бы уточнить модель ноутбука? Судя по внешнему виду, очень напоминает мой (Samsung np355v4c-901ru), правда брал его еще пару лет назад и в первый же день сделал «format C» и поставил Linux (сейчас с него и пишу) — никаких проблем, единственное, на сколько помню, пришлось некоторые дефолтные настройки в UEFI поменять.
darkrain
Вы наверное не пользовались линуксом в начале двухтысячных, слишком остро реагируете на такую мелкую проблему
KamikaZze_ru Автор
Пользовался. Разница тут в том, я не припомню такого, чтобы устройство самостоятельно превращало себя в кирпич просто при попытке обновить ОС. Именно не то, чтобы ОС разрушалась — это фигня, недостойная упоминания. Максимум тут грозит переустановка. Тут же само устройство далее неработоспособно, совершенно и полностью. Обычный пользователь с этой проблемой не разберется никак, при этом проблема скрыта и никак себя не проявляет. После возникновения проблемы ОС установить на устройство невозможно физически, кстати как Win, так и Linux свежий на него уже не установятся до устранения проблемы с nvram. Более всего напоминает бомбу замедленного действия. Вообще говоря, это безобразие.
darkrain
Ага, у вас хоть интернет сейчас есть))) мне приходилось самому дописывать драйвера для сетевой карты чтобы поиграть по сетке с другом на самописном бомбермене и тогда не было даже диалапа( только ты, твой комп, пару книг по С и ядру линукс. Я размышлял по целому дню что я делаю не так, потом записывал нужные мне вопросы в тетрадку и ходил к мамке на работу где доступно было только 30 минут диалапа чтобы погуглить
darkrain
Я это к тому что после всего такого не особо вообще реагирую на такие проблемы. Я по-моему даже по жизни стал спокойный как слон
KamikaZze_ru Автор
Ого, суровое детство, игрушки прибитые к полу :) После такого-то конечно уже практически любые проблемы — не проблемы. Собственно вопрос возникает — а почему тогда был Linux исходно? С ним без доступа к коммунити тогда ну очень несладко было. Любопытство или необходимость?
dunmaksim
С ним и сейчас тоже проблемы. Debian на Fake-RAID смог поставить, только прочитав багрепорт от 2013 года с начала и до конца (проблема присутствует до сих пор, кстати).
ekungurov
Странная логика… Есть какая-то проблема, и на неё даже есть багрепорт с работающим workaround. Вы это называете плохим комьюнити?
dunmaksim
Что же тут странного?
> найдена проблема
> найдено решение проблемы
> ментейнер не вносит правки в пакет уже третий год
darkrain
Просто книгу по ядру линукса подарил один красноглазый друг, он тогда в школе всем мозги промывал со своим линуксом, я пошел, взял у него же ред хат, не помню пятый или четвертый, помню только то что я все данные затер нафиг случайно на своем 60 гиговом харде. Ну играть на моем компе уже невозможно было из за бума новомодных игр и невероятным требованиям к железу, поэтому игрался с операционной системой, в итоге с 2002 года линуксом и пользуюсь. Развлекал меня тогда вместо интернета журнал хакер, на который я копил каждый месяц, откладывая по 50 тг в день(я в казахстане живу) те что мне мама на еду давала, и в конце месяца покупал. Журналу кстати огромное спасибо, у меня до сих пор лежит эта огромная стопка журналов, от которой у меня кстати полка в шкафу не выдержала
KivApple
Любая программная проблема с любой ОС может быть решена полной переустановкой. Если человек смог поставить Linux, то и переустановить его он сможет. Починить существующую — может быть и нет, но переустановить точно, потому что эти действия он уже когда-то успешно делал. А в случае краха UEFI переустановить его проблематично — требуется специальное оборудование, которого для каких-то брендов может не быть в продаже в принципе.