Ec bios version что это: Ec version bios что это

Встроенный контроллер одного ноутбука и его наследство / Хабр

В этом материале я хочу немного рассказать о том, что происходит во встроенном контроллере (Embedded Controller, EC) моего ноутбука. Речь идёт о мультиконтроллере IT8586E, основанном на Intel 8051. Он встроен в ноутбук Lenovo Ideapad 310-15IKB. Но, прежде чем переходить к деталям, полагаю, нелишним будет поговорить о том, что это вообще такое — встроенные контроллеры.

Краткая история встроенных контроллеров на платформах x86


Сначала был создан компьютер IBM PC. Многих это возмутило, данный шаг компании IBM был широко признан неразумным.

В материнскую плату этого компьютера было встроено множество периферийных устройств, вроде Intel 8259 (программируемый контроллер прерываний) или Intel 8253 (программируемый таймер). Обращаться к этим контроллерам можно было, пользуясь инструкциями in/out ядра x86 (и, на самом деле, к контроллерам 8259 и 8253 всё ещё можно обращаться на современных x86-процессоров, но теперь они входят в состав кристалла CPU). Один из контроллеров IBM PC, Intel 8255 (программируемый контроллер интерфейса периферийных устройств), отвечал за взаимодействие с клавиатурой.

В компьютере IBM PC AT, который был выпущен в 1984 году, контроллер i8255 заменили на Intel 8042, который отвечал за взаимодействие с клавиатурой и назывался контроллером клавиатуры. В адресном пространстве ввода/вывода x86 у него было два адреса — 0x60 и 0x64. Ядро, пользуясь этими портами, могло отправлять этому контроллеру команды и получать от него данные. У контроллера клавиатуры были неиспользуемые выводы, поэтому специалисты компании IBM решили, что блестящей мыслью будет использовать эти выводы для решения задач, не связанных с клавиатурой, вроде перезагрузки компьютера.

Где-то в конце 1980-х периферийные устройства всё чаще и чаще объединяли, включая в состав одной микросхемы несколько таких устройств. Например — это чипы северного моста и южного моста. Один из таких чипов, Super I/O-контроллер, отвечал за взаимодействие с низкоскоростными устройствами, вроде последовательных портов, параллельных портов и контроллеров дисководов гибких дисков. В состав этого чипа часто входил и контроллер клавиатуры.

Ноутбукам, кроме прочего, требовалась особая система управления питанием. Производители портативных компьютеров взглянули на контроллер клавиатуры, на то, что он способен перезагружать компьютер, и сказали: «На самом деле — это замечательно. Давайте сделаем то, что нам нужно, по похожей схеме». В результате к контроллеру клавиатуры были добавлены два порта с похожим интерфейсом, позволяющим отправлять на устройства команды и получать от них данные. И, фактически, во многих платформах эта возможность реализована в том же самом контроллере, который входит в состав Super I/O-чипа.

В середине 1990-х заметным явлением стал стандарт ACPI (Advanced Configuration and Power Interface, усовершенствованный интерфейс управления конфигурацией и питанием). Он определял стандартизированный интерфейс для EC. А именно, через его командный интерфейс можно было обращаться к 8-битному адресному пространству переменных, определяемых производителями оборудования. Эти переменные можно было описывать с помощью языка AML (ACPI Machine Language), средствами AML можно было описывать и код, позволяющий воздействовать на эти переменные.

В конце 2000-х годов микросхемы южного и северного мостов были объединены с CPU. Правда, надо отметить, что интеграция южного моста (PCH, Platform Controller Hub) в CPU, по всей видимости, имеет место лишь на мобильных платформах. Но в ноутбуках EC всё ещё представлен отдельным чипом, который, кроме того, реализует функционал Super I/O-контроллера и контроллера клавиатуры. Он, например, решает следующие задачи:

  • Управление вентиляторами.
  • Взаимодействие с подсистемой интеллектуальных аккумуляторов (Smart Battery).
  • Чтение данных, поступающих с клавиатуры, и чтение состояния кнопок управления питанием.
  • Взаимодействие с регуляторами напряжения.

Схема материнской платы моего ноутбука


Так как EC интенсивно взаимодействует с разными устройствами — неплохо было бы знать о том, что это за устройства. Мне в решении этой задачи повезло — кто-то выложил в интернет так называемые boardview-файлы к интересующей меня плате. В таких файлах содержатся схемы печатных плат, в частности, сведения о компонентах, расположенных на плате, и о том, как они связаны. Между компонентами материнских плат имеется так много соединений, что анализ схемы их связей может оказаться весьма сложной задачей. Я попытался представить связи между компонентами платы в упрощённой форме, результат моих трудов показан на следующей схеме (тут нет большинства линий, имеющих отношение к питанию). 

Схема связей компонентов платы (оригинал)

CPU соединён с EC с использованием шины LPC (Low Pin Count), которая, по сути, представляет собой замену шины ISA, применявшейся в более старых компьютерах, в физической реализации которой используется меньше линий связи. Процессор и контроллер взаимодействуют, в основном, по LPC. Но между EC и CPU имеется множество соединений (показанных синими линиями без стрелок), используемых в особых целях. Например — это линия SCI, предназначенная для вызова прерывания от EC в CPU.

Тут, кроме того, имеется соединение, названное BEEP#, предназначенное для включения на ноутбуке звукового сигнала.

Прошивка EC


Раздобыть прошивку контроллера несложно. Я уже извлекал образ BIOS раньше, для других нужд. После его обработки с помощью утилиты cpu_rec в моём распоряжении оказалось примерно 160 Кб 8051-кода из самого начала образа, расположенного до кода, имеющего отношения к UEFI. Контроллер 8051 имеет 16-битное адресное пространство, а значит 160 Кб кода ему не соответствуют. Получается, что речь идёт о так называемой banked-прошивке. То есть — одни части («блоки» или «банки») прошивки в адресном пространстве подвергаются динамической замене на другие части путём воздействия на некие регистры.

Размеры блоков прошивки обычно, в большинстве контроллеров 8051, составляют либо 32, либо 64 Кб. Выяснить их размер при работе с конкретным контроллером можно, поискав повторяющиеся фрагменты кода. Дело в том, что в разных блоках прошивки обычно имеются одинаковые фрагменты, представляющие код общего назначения (быстро найти такие фрагменты можно попробовать, прибегнув к автокорреляции). Оказалось, что в моём случае речь идёт о блоках кода размером 32 Кб.

Обработка 32-килобайтных блоков с помощью утилиты at51_base позволила узнать о том, что первый блок загружается по адресу 0x0, а второй, третий и четвёртый — по адресу 0x8000. Получается, что первые 32 Кб адресного пространства не меняются, а его верхняя область (0x8000) динамически переключается между тремя имеющимися банками. Пятый банк кода не содержит. В нём имеются только некие данные.

После того, как я всё это выяснил, меня посетила блестящая идея, которая заключалась в том, чтобы посмотреть даташит исследуемого компонента. Даташит на мой контроллер найти не удалось, но мне попались документы на IT8502E, описывающие устройство достаточно близкое к тому, которое было у меня. В нём, что было очень кстати, подробно описывалось большинство I/O-механизмов и, похоже, описание функционирования прошивки, в основном, соответствовало той прошивке, что была у меня.

При просмотре даташита я наткнулся на упоминание отладочного интерфейса I2C, но он, правда, не был документирован. После некоторых изысканий я нашёл проект ECSpy, который представляет собой Rust-реализацию отладчика для EC, созданную силами компании System76, которая работает над собственной прошивкой для EC.

Отладчик даёт доступ на чтение и запись к оперативной памяти и регистрам ввода/вывода EC. Доступ к регистрам отличается дополнительным ограничением, которое заключается в том, что операция записи чётко определена лишь для триггерных регистров (в результате, например, операция, вызывающая изменение состояния конечного автомата, не сработает).

Ещё в даташите сказано, что возможность отладки нужно включать с помощью регистра, но она и так включена. Доступ к ней осуществляется посредством I/O-портов x86 через Super I/O-чип, поэтому ей можно пользоваться из пользовательского пространства, без необходимости писать драйвер.

Для реверс-инжиниринга тех частей прошивки, которые отвечают за взаимодействие с различными устройствами, могут пригодиться спецификации этих устройств. Я, работая над этим проектом, прочитал часть спецификаций ACPI, SMBus и Smart Battery. В процессе исследования кода прошивки используются следующие ресурсы и инструменты: boardview-файлы, даташиты, спецификации компонентов, отладчик Ghidra, обычный браузер, применяемый для поиска дополнительных сведений вроде скан-кодов, исходный код Linux-драйвера для EC, дизассемблированный машинный ACPI-код, отладчик для EC и его исходный код. В таких делах весьма кстати могут оказаться несколько мониторов, использование которых позволяет ускорить сопоставление информации, полученной из разных источников.

В прошивке имеется единственная главная функция, в которой и решается большая часть задач. Обычно прерывания устанавливают какие-то биты, связанные с событиями, а потом эти события обрабатываются за пределами контекста прерываний в главном цикле. В векторе прерываний контроллера имеются описания некоторого количества различных прерываний, но большинство прерываний идут по линии так называемого INTC-прерывания, по адресу 0x13, после чего осуществляется просмотр большой таблицы переходов, содержащей адреса конкретных обработчиков прерываний.

Большой объём работы выполняется в коде главного цикла, ответственном за обработку событий таймера. Таймер в EC запрограммирован так, что он выдаёт прерывание раз в одну миллисекунду. Потом, на основе прерываний таймера, формируются события, которые происходят, например, каждые 10, 50, 100 мс. Обновление ACPI-переменных выполняется, в основном, в этом контексте.

POST-карты в современных ноутбуках


BIOS, когда производится загрузка x86-системы, регулярно пишет данные в порт ввода/вывода 0x80. Эти данные сообщают о том, на каком этапе находится загрузка, а так же о происходящих в ходе этого процесса ошибках. Раньше соответствующие сведения отправлялись на шину ISA, куда можно было подключить POST-плату, выводящую текущее значение в шестнадцатеричном формате. Это позволяло диагностировать проблемы, происходящие в ходе загрузки систем. В современных ноутбуках шина LPC представляет собой замену шины ISA, а данные о процессе загрузки до сих пор обычно отправляют на шину LPC.

В прошивке EC, на самом деле, имеется код, ответственный за запись данных в порт 0x80. В этом коде можно обнаружить команды, с помощью которых данные разделяют на полубайты, используемые потом в роли смещений в следующей таблице:

0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e


Затем, вместе с тактовыми импульсами, осуществляется последовательный вывод результирующего значения на GPIO-пины.

Вышеприведённая поисковая таблица может показаться вам знакомой. Дело в том, что она позволяет преобразовывать полубайты в шестнадцатеричные числа для их вывода на 7-сегментном дисплее. Если взглянуть на схему материнской платы, там можно увидеть две линии — EC_TX и EC_RX (эти названия, вероятно, не очень удачны, так как одна из них — это линия данных, а другая — тактовая линия, обе они используются лишь для отправки данных). Они ведут к Wi-Fi-чипу, который подключён к плате через разъём M.2. Но эти линии, на самом деле, ни к чему на Wi-Fi-карте не присоединены.

Это наводит на мысль о том, что существуют некие POST-платы, которые можно подключать к разъёму M.2 для решения проблем, возникающих в ходе загрузки ноутбуков. Так как я знаком с протоколом обмена данными, используемым в M.2-картах, я попытался сделать собственный вариант такой платы (она, в целом, представляет собой два последовательно соединённых сдвиговых регистра, подключённых к 7-сегментным дисплеям). Посмотрите — какая симпатичная у меня получилась штука.

Самодельная POST-плата для разъёма M.2

Но я, к сожалению, видимо что-то напутал, так как эта плата, в итоге, так и не заработала, а мне не очень-то хотелось тратить время на поиск и исправление ошибок, допущенных при её создании.

Клавиатурные механизмы


Ноутбук получает сведения о нажатых клавишах клавиатуры через i8042-порты EC (0x60 и 0x64). У контроллера имеется прямой доступ к матрице контактов клавиатуры, а значит, ему нужно преобразовывать необработанные данные, поступающие с клавиатуры, в скан-коды PS/2. Ему ещё нужно наблюдать за состоянием клавиши Fn, которая позволяет определять альтернативный функционал для некоторых клавиш, и сведения о нажатии которой не отправляются процессору.

Можно подумать, что вышеописанная задача решается очень легко, что заключается она в просмотре некоей поисковой таблицы и в отправке хосту результатов. Но, увы, скан-коды PS/2 — это настоящий бардак.

Существует три различных набора скан-кодов, между которыми нет ничего общего. EC использует набор №2. Одиночное нажатие и отпускание клавиши не всегда приводит к генерированию одного байта скан-кода.

Вот примеры:

  • Нажатие на клавишу x приводит к выдаче скан-кода 22, а её отпускание генерирует скан-код F0 22.
  • Нажатие клавиши Delete генерирует скан-код E0 71, а её отпускание — код E0 F0 71.


Поведение большинства клавиш, как правило, соответствует вышеприведённой схеме, когда при отпускании клавиши генерируется тот же код, что при её нажатии, но с префиксом F0. А E0 — это префикс для расширенного набора скан-кодов (обратите внимание на то, что при отпускании клавиши Delete  код F0 идёт после кода E0). Но тут есть некоторые исключения. Например:

  • Нажатие кнопки Pause (на моём ноутбуке это — сочетание клавиш Fn + b) приводит к выдаче последовательности кодов E1 14 77 E1 F0 14 F0 77. А при её отпускании не генерируется вообще ничего.
  • Но комбинация клавиш Ctrl + Pause выдаёт совершенно другую последовательность кодов, в частности — E0 7E E0 F0 7E. При отпускании этих клавиш снова ничего не выдаётся.
  • Существуют клавиши, направленные на управление мультимедийными возможностями, вроде Mute Microphone. Своих PS/2-скан-кодов у них нет. Их нажатие приводит к тому, что EC генерирует SCI-прерывание. Затем соответствующий AML-код, связанный с таблицами ACPI, отправляет уведомление операционной системе. После этого ОС считывает значение переменных ACPI EC и генерирует соответствующее событие.


Позиции клавиш на клавиатуре представлены 7-битным целым числом, которое используется в поисковой таблице в роли индекса при преобразовании этого числа в промежуточное байтовое значение. Эта первая поисковая таблица может быть изменена с помощью команд i8042 для переключения на другую раскладку клавиатуры.

Если промежуточное значение меньше 0x80, это значит, что оно просто соответствует обычному однобайтовому PS/2 скан-коду. А если говорить о других значениях, то они, по уже рассмотренной нами схеме, используются в роли индексов в поисковой таблице. Результирующее значение определяет функцию, которая используется для обработки скан-кода. Полученные скан-коды затем помещают в 16-байтовый кольцевой буфер, байты, содержащиеся в котором, если это возможно, потом отправляют хосту.

Тут решаются и другие задачи, вроде борьбы с фантомными нажатиями клавиш (anti-ghosting), устранения ложных повторных нажатий клавиш (debouncing) и поддержки клавиши Fn, о которой я уже вкратце рассказал.

Интересно то, что контроллер иногда помещает в буфер некоторые скан-коды, делая это в коде, не имеющем отношение к клавиатурным механизмам. Например, речь идёт о сочетании клавиш Win + Q, или о прерывании обработки нажатия на клавишу. Я, правда, более глубоко в этом не разбирался.

Таинственный фрагмент кода


В ходе общего обзора файла с прошивкой можно заметить, что 4-й блок (0x18000-0x20000) содержит не особенно много кода. Странно то, что этот код расположен где-то посередине 0xffs с переходом на область 0x1e000-0x1e596. Сначала я подумал, что это — код, имеющий какое-то отношение к программам начальной загрузки или прошивки устройства, но после того, как я посмотрел на код, оказалось, что эта мысль неверна.

А именно, при более близком рассмотрении этого кода можно заметить в нём константы, вроде 0x67452301, 0xEFCDAB89 или 0xCA62C1D6. Они используются в алгоритме SHA-1.

Зачем встроенному контроллеру SHA-1? Если посмотреть на то, что именно вызывает SHA1-код, то окажется, что он используется при взаимодействии с батареей по SMBus:

  • EC случайным образом генерирует последовательность из 20 байтов для одноразового использования (nonce) и отправляет её в регистр батареи 0x27.
  • EC вычисляет значение sha1($secret . sha1($secret . nonce)), где $secret — это 16-байтовый секретный ключ, который хранится в прошивке.
  • EC читает 20 байтов из регистра батареи 0x28 и проверяет, чтобы они совпадали с тем значением, которое было вычислено на предыдущем шаге.


В результате возникает такое ощущение, что батареи, перед их использованием, проходят аутентификацию для предотвращения применения подделок или для каких-то подобных нужд.

Где хранится код?


Прошивка, в соответствии с даташитом, способна обращаться к содержимому флеш-памяти, применяя линейную адресацию, пользуясь 28-битным регистром адреса и 8-битным регистром данных. В коде прошивки можно обнаружить множество операций записи и чтения, направленных на адреса 0x0fff_fe00 и 0x0fff_fd00. Но размер флеш-памяти далёк от 256 Мб, в результате такие операции, очевидно, не работают с подобными адресами флеш-памяти.

При более близком рассмотрении кода выяснилось, что там, в основном, осуществляется запись 0xff в 0x0fff_fe00, а после этого выполняются операции чтения/записи множества байтов — вроде 0x05, 0x02 или 0xd7. Оказывается, что это SPI-команды для работы с флеш-памятью, а то, что мы видели — это механизм, с помощью которого код прошивки осуществляет запись и стирание данных. Но если взглянуть на образ, хранящийся в BIOS, оказывается, что он ничем не отличается от оригинала. Может, изменения хранятся лишь в кеш-памяти (которая есть у EC)? А, может быть, соответствующие участки кода попросту никогда не выполняются?

Во многих прошивках для 8051 обычно имеется код, реализующий возможности отладки, и мой — не исключение. Перед функциями, имеющими отношение к контроллеру клавиатуры и к EC, имеется множество функций, которые явно реализуют отладочные возможности. Одна из них — это команда контроллера клавиатуры, предназначенная для чтения из EC данных с адресов флеш-памяти с применением регистра.

Если сделать оттуда дамп прошивки, то получится образ, который отличается от оригинала. Изначально я предполагал, что EC использует образ из флеш-памяти BIOS, так как он хранится в этой памяти, и EC к этой памяти подключён. Но оказалось, что это, на самом деле, не так. К этой памяти напрямую подключены и CPU, и EC. В результате, в том случае, если и тот и другой одновременно попытаются прочесть из неё данные, на шине неизбежно возникнет конфликт. Прошивка, на самом деле, хранится в самом EC. В IT8502 этой возможности не было (это запутало меня ещё сильнее, так как я пользовался даташитом именно для такого контроллера).

Запуск моего собственного кода в EC


Вероятно, стоит сказать о том, что у 8051 имеется некоторое количество различных адресных пространств:

  • IRAM: 256 байтов внутренней оперативной памяти (быстрой).
  • SFR: 128 байтов адресного пространства ввода/вывода в верхней половине IRAM (при непрямой адресации памяти производится возврат к IRAM).
  • XDATA: 16-битная адресуемая внешняя RAM (она медленная, и на данном EC, кроме того, содержит адреса подсистемы ввода/вывода).
  • CODE: 16-битное адресуемое пространство кода.


Тут обращает на себя внимание факт отсутствия инструкций для записи в адресное пространство CODE. Но, если опираться на то, о чём мы говорили в предыдущем разделе, внести изменение в это адресное пространство можно, воспользовавшись возможностью записи данных во флеш-память.

Я этого делать не собирался, так как подобные действия несут в себе риск «окирпичивания» устройства. EC можно перепрограммировать, используя входы/выходы клавиатурной матрицы в роли параллельного порта, но я не собирался заниматься и этим.

Ещё одна проблема, связанная с записью данных во флеш-память, заключается в том, что её содержимое проверяется с использованием контрольной суммы. В прошивке имеется сигнатура, которая указывает на то, где начинается контрольная сумма, и в ней имеются два байта, которые различаются в разных редакциях прошивки. Подобное характерно для контрольных сумм. Если дело обстоит именно так — то неясно, где именно начинается и заканчивается контрольная сумма, и то, как именно она вычисляется.

Применив delsum part (инструмент, который я создал ранее, рассчитанный именно на решение подобных задач), можно найти множество кандидатов на роль контрольной суммы: это — CRC с полиномом 0x8005, а контрольная сумма заканчивается по адресу 0x1ffff. Но начало контрольной суммы с уверенностью определить нельзя, так как во всех редакциях прошивки, которые я смог найти, соответствующие данные выглядели, до адреса 0x4000, одинаково. Это значит, что для каждого начального смещения, соответствующего адресу до 0x4000, имеется набор параметров, применение которого приводит к получению правильных контрольных сумм. При этом можно изменять байты в области памяти, для которой вычисляется контрольная сумма, поступая так при условии, что есть полная уверенность в том, что это делается в правильном месте, так как для вычисления контрольной суммы важна лишь конечная часть этой области памяти.

Правда, для выполнения собственного кода нет нужды выполнять запись данных во флеш-память. В EC для этого имеется другой механизм. А именно — адреса 0x0000-0x1000 в адресном пространстве XDATA — это обычная оперативная память, которую можно отобразить на произвольную область адресного пространства CODE, изменив содержимое кое-каких регистров.

Схема из даташита, на которой показано 5 областей, пронумерованных от 0 до 4, которые могут быть отображены на адресное пространство кода. А именно, речь идёт об областях 0x0000-0x0800, 0x0800-0x0c00, 0x0c00-0x0e00, 0x0e00-0x0f00 и 0x0f00-0x1000

В результате для выполнения собственного кода достаточно лишь выполнить отображение одного из этих фрагментов на память с кодом. Оперативная память в диапазоне 0x0000-0x0e00 используется самой прошивкой, в результате остаются блоки 3 и 4, размер каждого из которых составляет 256 байт.

Правда, чтобы осуществить отображение этой памяти на память с кодом, нужно выполнить запись в регистры и в оперативную память из пространства XDATA. Есть одна отладочная функция, позволяющая писать данные в XDATA, но она содержит ошибки и может писать данные только по адресам, где байт из верхней части адреса является таким же, как и байт из его нижней части. Тут имеется ещё и интерфейс I2C, который достаточно хорошо подходит для решения задачи записи данных в SRAM.

Я сомневался по поводу записи данных в порты ввода/вывода, так как было сказано, что это подходит лишь для триггерных регистров. Но в регистрах, используемых для отображения памяти, имеется ещё и бит для запуска DMA-транзакции (так как этот чип, конечно, поддерживает DMA). В любом случае, не было способа проверить то, что отображение памяти осуществляется именно так, как мне нужно, так как нет отладочной функции, позволяющей читать данные из адресного пространства CODE.

К счастью, был и другой путь: функционал отображения памяти используется для перезаписи флеш-памяти (так как никто не заинтересован в том, чтобы работа программы завершилась бы с ошибкой, когда будет достигнута область с кодом, выполняющим запись данных). Используя I2C можно отредактировать содержимое SRAM в адресном пространстве XDATA, поместив туда отладочный код, и подстроить механизм записи данных во флеш-память так, чтобы он обращался бы к этому отладочному коду.

При таком подходе я смог ещё и проверить, работает ли механизм отображения памяти так, как нужно. Как оказалось, работал он неправильно. Получилось, что, например, отображение адресов 0x0e00-0x0f00 из пространства XDATA на область, начинающуюся с адреса 0x7722, приводит к отображению адреса 0x7722 на 0x0e22 (а не на 0x0e00), адреса 0x7723 на 0x023, адреса 0x7800 на 0x0e00, и адреса 0x7821 на 0x0e21. Это, возможно, результат ошибки в самом чипе.

В любом случае, эту проблему легко обойти, так как между адресами, всё равно, имеется взаимно однозначное соответствие, а значит — код можно просто записать в те места пространства XDATA, которые будут соответствовать нужным местам памяти. Оказалось, что I2C-запись в регистры, отвечающие за отображение памяти, тоже работает. В результате для выполнения отладочного кода с его последующей записью мне не нужно было бы прибегать к режиму перезаписи флеш-памяти.

Итоги


Я приступил к разработке программы, которая берёт ihex-файл и настраивает страницы 0xe00 и 0xf00, в результате чего я могу просто указать местоположение патча, пользуясь ассемблерной инструкцией ORG, а программа сама заполнит непропатченные области кодом прошивки из образа и правильно запишет код в SRAM. Это упрощает жизнь программиста и, пожалуй, ускоряет процесс разработки кода для EC.

На сегодня это всё, а в следующий раз я расскажу об исследовании прошивки ноутбучного Wi-Fi-модуля (RTL8821AE) и о разработке небольшого кейлоггера, основанного исключительно на возможностях Intel 8051.

Занимались ли вы разработкой прошивок для контроллеров, основанных на Intel 8051?

Clevo M22ES UPDATE BIOS | Драйверы и прошивки BIOS

← Вернуться в раздел «Драйверы и прошивки BIOS»

Автор: Vlad55527
Дата сообщения: 03.05.2006 22:43

Читал что есть 7 и 8 релиз BIOS. но не могу найти у меня 6. нашел файл M22ESR07.ZIP но при запуске програмы пишет что не может загрузить файл. помогите плиз. очень надо. на сайте производителя нет.

Автор: Dr StandBy
Дата сообщения: 14.05.2006 14:59

Vlad55527
Где ты об этом читал? На оффсайте ничего подобного не наблюдается можешь сам взглянуть
http://www.clevo.com.tw/download/ftpOut. asp?Lmodel=M2xES%2FD2xES&ltype=9&submit=+GO+

Автор: Vlad55527
Дата сообщения: 14.05.2006 15:55

на других форумах

Автор: Dr StandBy
Дата сообщения: 14.05.2006 18:32

Vlad55527
Пальцем в небо? Ну чтож видимо тебе улыбается играть в загадки. Увы, но думаю, что последователей (людей объективно тебе ответящих) ты тоже не найдешь.

Автор: Vlad55527
Дата сообщения: 14.05.2006 18:53

http://www.eurocom.com/support/drivers/bios/main_bios.html?display=D27ES_bios.htm&B1=Submit

нашел эту ссылку обновилось но что не совсем понял

Добавлено:
т.е. обновился биос, но версия при загрузке осталась таже 4.06 но добавились какието дополнительные строчки

Добавлено:
2.00.8

на этой странице биос для многих моделей Clevo

Автор: Dr StandBy
Дата сообщения: 14.05.2006 19:01

Vlad55527
А ты какую версию подбирал?

Автор: Dr StandBy
Дата сообщения: 14. 05.2006 19:03

Vlad55527
Если дата прошивки стала 2004/02/24 значит все нормально

Автор: Vlad55527
Дата сообщения: 14.05.2006 20:12

подбирал m220e

Добавлено:
точнее m270e
дата 24\03\2004

Добавлено:
есть еще такой файлик M22ESR07.zip но он не запускается что то

Автор: Dr StandBy
Дата сообщения: 14.05.2006 22:10

Vlad55527

Цитата:

есть еще такой файлик M22ESR07.zip

Интересно где ты его надыбал? Я что то по твоей ссылке не нашел ничего похожего

Автор: Vlad55527
Дата сообщения: 14.05.2006 22:50

могу выслать дай мыло
моя ася 118773516

Автор: Akam1
Дата сообщения: 23.03.2009 02:42

Драйвера для ноутбуков Clevo — http://www.clevo.com.tw/en/e-services/download.asp
BIOS’ы для ноутбуков Clevo — http://www.clevo.com.tw/en/e-services/esupport/OLTS_DL. asp

Автор: RemK2009
Дата сообщения: 07.05.2009 21:33

Помогите прошить Clevo M765 SU

Автор: Akam1
Дата сообщения: 08.05.2009 01:48

RemK2009
А сейчас какой версии BIOS стоит?

Автор: RemK2009
Дата сообщения: 08.05.2009 06:31

Вот что пишет Everest:
Тип BIOS Phoenix
Версия BIOS 6.00
Дата системной BIOS 10/02/08
Дата BIOS видеоадаптера 08/01/08

Автор: Akam1
Дата сообщения: 08.05.2009 08:24

RemK2009
Попробуйте при загрузке зайти в BIOS, обычно на ноутах в нем есть информация, в том числе и о его версии. Просто и правда непонятно какой брать из того большого списка на сайте.

Автор: RemK2009
Дата сообщения: 08.05.2009 10:43

В BIOS нашел следующее:
BIOS Revision 1.00.09

KBC\EC Firmware Revisionn1.00.14
Правда плохо понимаю что это

Автор: Akam1
Дата сообщения: 10.05.2009 13:52

RemK2009
Похоже Вам надо ставить этот — ftp://ftp. clevo.com.tw/ALLBIOS/M7xxSU/BIOS_11.zip

Автор: renats84
Дата сообщения: 17.04.2016 07:11

https://repo.palkeo.com/clevo-mirror/

Автор: Akam1
Дата сообщения: 18.04.2016 02:32

renats84
Там не совсем BIOS, только EC firmware, это отдельный контроллер.
Цитата:

Embedded Contoller — это встроенный контроллер типа Hitachi H8 (он же — Renesas), Winbond W83L950D, предназначенный для управления платформой (как правило — мобильной) как на уровне включения и выключения, так и для обработки ACPI-событий. В задачи EC-контроллера входит обслуживание аккумулятора мобильной платформы: выбор режима его заряда, контроль разрядки. Как правило, на мобильных платформах с помощью EC-контроллера реализуется и контроллер клавиатуры.

У Embedded Controller свой BIOS, который может хранится в отдельном чипе, но может входить в состав системного BIOS. В частности, на платах ABIT, оборудованных µGuru, EC-BIOS хранится в самом контроллере и управляет индикацией POST-кодов.

Видимо самого обновления BIOS нет, а только есть обновление EC. Причем, если хотите и дальше обновлять, то надо поставить 1.00.05 ибо
Цитата:

It is necessary to update BIOS to 1.00.06 or later.

Автор: renats84
Дата сообщения: 19.04.2016 01:49

Akam1
У меня неудачный мод BIOS-а. После прошивки — потухший экран. Разобрал и закорачивал батарейку BIOS-а, но никакого эффекта!

Автор: Akam1
Дата сообщения: 19.04.2016 03:35

renats84
Не понял. У Вас неудача после прошивки этого EC Firmware или же Вы ищете полный BIOS для восстановления ранней неудачной прошивки?
Вот здесь есть сообщение как человек восстанавливал BIOS.

Автор: renats84
Дата сообщения: 19.04.2016 06:25

Akam1
С неудачей правы, а что касается полного BIOS — то вы круто промахнулись. BackUp я успел сделать на нормальной работающем компе из под Windows и с помощью BIOS Backup ToolKit V2. 0.
BIOS у меня ЭМИ, а по вашей ссылке Феникс. Программа прошивальщика там другая и ключи, соответственно, тоже другие.
Вот примеры команд с разнообразными ключами из инструкции PDF:
AFUDOS <BIOS ROM File Name> /RECOVERY /P /B /N /E
AFUDOS xxx.ROM /N
Там столько вариантов, что не знаешь, с чего изучать!
И всё остальное непонятно. У ЭМИ тоже, как у Феникса, аварийный режим есть по клавишам Ctrl+Esc и другим?
Вы даёте инструкцию, в которой слишком много нюансов для совсем другого типа BIOS. Вряд ли у всех производителей всё под копирку одинаково! Скорее, невероятно, чтобы так было.
Вот ещё файл для вставки SLIC, но вряд ли так просто будет:
http://rghost.net/8LMQMfYf2
Тут:
https://www.bios-mods.com/forum/Thread-AMI-Bios-flash-tool-AFUDOS-EXE
хоть более менее похожая на правду инструкция, но на сайте ЭМИ уже новые инструкции. А то бы я уже сделал:
afudos mybios.rom /P /B /N /C /E /K /Q /gan /REBOOT
P. S.
Вот, например, какие тонкости для ЭМИ. Есть Secured BIOS. Если ключ /gan даёт возможность обновлять любой BIOS, то зачем вообще нужны режимы CAPSULE и RECOVERY? Ведь даже Secured BIOS позволит обновить BIOS c ключом /gan!
http://www.win-raid.com/t286f16-Guide-Flashing-modified-AMI-Aptio-UEFI-using-AFU.html

Автор: Akam1
Дата сообщения: 19.04.2016 06:34

renats84
Я думаю, что тут нужна идея, а не буквальное следование инструкции.
Идея такова, что необходимо загрузиться с DOS-флешки вслепую, используя какие-то клавиши, на флешке уже лежат подготовленные файлы, а в Autoexec.bat, который обязан будет выполниться при загрузке с флешки, прописан четкий план действий по запуску и прошивке BIOS. Т.е. прошьется без вашего участвия, следуя плану в файле.
Насчет клавиш для загрузки с флешки не знаю, надо пробовать все варианты.
Как-то так.

Автор: renats84
Дата сообщения: 19.04.2016 06:40

Akam1

Цитата:

загрузиться с DOS-флешки вслепую

Флешку не опознаёт материнская плата. Видно по тому, как не светится зелёный светодиод на флешке. С HDD будет грузиться, если отформатировать в FAT16, размер уменьшив до 500 МБайт?
Akam1

Цитата:

тут нужна идея

Тут идея другая:
http://club.dns-shop.ru/forum/?action=thread&id=17793
Сначала жмут F2, а потом жмут ваши клавиши для аварийного режима. Какая идея правильная?

Автор: Akam1
Дата сообщения: 19.04.2016 07:43

renats84
Думаю, надо пробовать все имеющиеся варианты.
Цитата:

С HDD будет грузиться

Не знаю.
Цитата:

Флешку не опознаёт материнская плата. Видно по тому, как не светится зелёный светодиод на флешке.

Может она будет гореть только тогда, когда к ней будет обращение при перепрошивке вслепую?

Автор: renats84
Дата сообщения: 19. 04.2016 09:42

Akam1

Цитата:

только обращение

Разве загрузка DOS не требует обращения к флешке? Я думаю, что BIOS повреждён перепрошивкой настолько, что не может видеть флешки. Может, программатор — последняя надежда? Попробую Акронисом скопировать флешку на HDD.

Автор: Akam1
Дата сообщения: 19.04.2016 13:17

renats84
Цитата:

Разве загрузка DOS не требует обращения к флешке?

Думаю, любое обращение к флешке требует (у данной флешки) загорания светодиода. Вопрос — должен ли светодиод гореть сразу после вставки флешки? Может быть после подборки комбинации клавиш для загрузки с флешки поврежденный BIOS все-таки обратится к ней, чтобы начать загрузку DOS и т.д., тогда только он загорится. А до этого светодиод не будет гореть.
Цитата:

Флешку не опознаёт материнская плата. Видно по тому, как не светится зелёный светодиод на флешке.

По мне кажется, что необходимо загрузиться с любого устройства, с которого получится, в DOS, а там в bat’е прошить вслепую на нормальный BIOS.
P.S. Не подумайте, что я пачками каждый день восстанавливаю BIOS’ы на таких ноутбуках, просто пытаюсь логически мыслить, не видя вживую ноутбук, а также пытаюсь применить свой некоторый опыт

Автор: renats84
Дата сообщения: 23.04.2016 18:12

Akam1
Прочтите:
http://forum.ru-board.com/topic.cgi?forum=81&topic=5300&start=1200#20
Надо установить 2 БИОСа?

Автор: Akam1
Дата сообщения: 25.04.2016 14:05

renats84
Можно и два, у вас же вроде есть копия главного BIOS.

Автор: renats84
Дата сообщения: 25.04.2016 18:43

Akam1
Там дело даже лучше, потому что на флешке светится светодиод, хотя и прекращает через секунды. У меня изначально нет сигнала на светодиодах. Но если к работающему ноутбуку подключать флешку, то она мерцает на полсекунды и затухает. Причем мерцание происходит, как раз как полфлешки вставляешь. Но сразу же затухает, махом, — не успеваешь и полностью флешку вставить.
И всё же jlmurat не может без программатора обойтись. Думаю, что и мне так же придётся. Как вам такой программатор (ссылка ниже)?
https://www.youtube.com/watch?v=CKiXYn99eDw
Я не могу точно определить, где моя микросхема БИОС, а то бы давно выпаял. Сервисный мануал к ноуту ответа не дал.
Кстати, на видео непонятно, почему подключаются через Радмин, ведь тогда комп. рабочий. А шить нужно БИОС у нерабочего компа.

Цитата:

есть копия главного BIOS

Я не знаю, что у меня есть. У меня БИОС, сохранённый BIOS Backup ToolKit V2.0. Если у ноута должно быть 2-3 БИОСа, то они могут храниться на разных ПЗУ. Как мне определить, где какой БИОС?

Страницы: 12

Предыдущая тема: Creative muvo v200



Форум Ru-Board. club — поднят 15-09-2016 числа. Цель — сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.

Взлом

EC: в вашем ноутбуке есть микроконтроллер

Недавно я наткнулся на интересную статью [DHowett] о перепрограммировании встроенного контроллера (EC) ноутбука Framework. Он показывает нам, как повторно использовать светодиод Caps Lock, вместо этого заставляя его указывать состояние слоя клавиш F1-F12 — также известное как «Fn lock», также известное как «Ваша клавиша F1 в настоящее время работает как F1 или она регулирует громкость». Он расскажет нам, как добавить собственный код в прошивку EC вашего ноутбука и правильно интегрировать его в различные процедуры, которые выполняет EC.

EC, который использует Framework, представляет собой чип MEC1521 от Microchip, и ранее в этом году они открыли для него прошивку. Теперь есть репозиторий кода микроконтроллера, который вы можете скомпилировать самостоятельно и установить на материнскую плату вашего ноутбука Framework. В разделе комментариев HackerNews представитель Framework предположил, что вы можете добавить GPIO на материнскую плату Framework с помощью взлома прошивки EC.

Подождите… Код микроконтроллера? GPIO? Это подводит нас к вопросу – что такое ЕС на самом деле? Начнем с того, что это просто микроконтроллер. Вы можете найти EC на каждом компьютере с архитектурой x86, включая ноутбуки, для управления низкоуровневыми функциями вашего компьютера, такими как управление питанием, клавиатура, сенсорная панель, батарея и множество других вещей. В стране Apple вы можете знать их как SMC, но их функция та же.

Почему мы все это время не перепрограммировали наши ЭК? Это тоже закономерный вопрос, и я вам все расскажу.

Чем занимается ЕС?

EC управляет целой кучей устройств в вашем ноутбуке. Не устройства, подключенные к USB, LVDS/eDP или PCIe, потому что они входят в компетенцию чипсета. Вместо этого это такие устройства, как выключатели питания, чип зарядного устройства и различные мониторы тока, поскольку они должны работать правильно, даже когда чипсет и процессор выключены. Но, конечно, это не просто управление питанием — в ноутбуке есть много вещей, для которых вам нужны GPIO.

EC EEE PC 701. У этого даже есть несколько дополнительных сигналов для мультимедийных кнопок, которые были опущены аппаратно!

Как правило, все, чем вы управляете с помощью digitalWrite или контролируете с помощью digitalRead , измеряете через АЦП или общаетесь с помощью I2C — это вещи, которыми занимается EC. Таким образом, EC считывает состояние батареи и напряжение зарядного устройства, управляет вентиляторами с помощью ШИМ и измеряет температуру с различных датчиков. Клавиатура ноутбука представляет собой матрицу клавиш, и EC сканирует эту матрицу и обрабатывает нажатия клавиш, перенаправляя события клавиш на набор микросхем, который затем считывает ваша ОС. Независимо от того, является ли ваша сенсорная панель PS / 2 или I2C, EC обрабатывает ее и также предоставляет ОС.

Кнопка питания вашего ноутбука подключена напрямую к EC. В результате ваш EC включается первым; и если ваш сломанный ноутбук не реагирует на кнопку питания, это означает, что EC не может выполнять свою работу по управлению питанием по какой-либо причине. На самом деле, если вы посмотрите на недавно опубликованную уменьшенную схему ноутбука Framework, вы увидите, что у EC есть собственная отдельная шина питания, идущая непосредственно от батареи.

Как он вообще разговаривает с чипсетом? Около двух десятилетий ЭК используют шину LPC — четырехбитную шину, внешне напоминающую qSPI. Помимо EC, в последнее время он действительно использовался только TPM. LPC использует частоты от 25 до 100 МГц. Таким образом, если вы хотите использовать логический анализатор сигналов LPC и перехватывать некоторые пакеты, ваш типичный дешевый LA со скоростью 25 Мбит/с не подойдет, но стандартная плата FPGA или гораздо более быстрая LA будут творить чудеса, и есть довольно крутая статья, использующая манипуляции с LPC и FPGA для извлечения ключей из TPM.

LPC существует около двух десятилетий и является прямым преемником шины ISA — на самом деле, на некоторых схемах ноутбуков 2003 года вместо этого вы найдете EC, подключенный через ISA, но за этим стоит только LPC. Однако недавние EC вместо этого говорят об eSPI, подобном qSPI интерфейсе, предназначенном для замены LPC, и Framework EC также говорит об eSPI.

Конечно, здесь задействована прошивка

Каждый EC имеет прошивку, и каждый ноутбук (и настольный компьютер, и сервер!) имеет EC. Прошивка EC почти всегда имеет закрытый исходный код. Таким образом, прошивка EC является одним из бинарных блоков, которые мы обычно упускаем из виду, когда говорим о проприетарных компонентах внутри наших компьютеров. Часто прошивка EC хранится на том же чипе флэш-памяти SPI, что и BIOS — в других случаях существует отдельная внешняя или встроенная флэш-память, и в этом случае у вас обычно есть загрузчик UART, через который вы можете перепрошить свой EC. Все зависит от того, какой конкретно производитель и модель ЭК у вас есть.

Часто ваш EC построен на чем-то вроде архитектуры ARM или 8051, иногда это что-то более непонятное, например, CompactRISC. Обычное дело — в лучшем случае вы получите бинарный блоб, когда дело доходит до прошивки вашего EC. В какой-то момент, когда Google занялся бизнесом по производству ноутбуков, группа их инженеров, предположительно, сказала «хватит» и открыла свой код EC — это то, на чем строится Framework, когда дело доходит до их собственной прошивки EC. В прошлом году System76 также открыла свой код ЕС. К сожалению, ситуация остается тяжелой для других производителей ноутбуков.

Можно ли взломать ваш EC? Маловероятно — изменить и обновить прошивку EC, как правило, сложнее, чем сделать то же самое с образами BIOS. Не могли бы вы сами изменить поведение своего ЭК? По крайней мере технически это возможно, и я бы сказал, что вы всегда должны были это делать.

Итак, как насчет взлома?

Конечно, в каждой подсистеме ноутбука вы найдете подгруппу энтузиастов Thinkpad, которые уже глубоко копнули и использовали ее для создания интересных и полезных вещей. EC — один из таких аспектов, и им, безусловно, есть что предложить — в основном, перепрограммирование раскладок клавиатуры и снятие блокировки батареи. С помощью раскладок клавиатуры им удалось заставить старые (и, по-видимому, более совершенные) клавиатуры работать с новыми ноутбуками, с учебным пособием, в котором рассказывается о том, как именно вам нужно изолировать определенные контакты, и очень удобным способом вспышки изменений.

Батарейная часть более важна, однако — чаще всего вы можете жить с некачественной клавиатурой, даже на предположительно выдающихся ThinkPad. Проблема в «подлинной» проверке батареи в ЭК, которая не дает заряжать (и даже работать от) батареи, если она не проходит. Это не только ограничивает варианты аккумуляторов сторонних производителей, если это так звучит — такие проверки также запрещают использование аккумуляторов Lenovo, которые были предназначены только для другого типа Thinkpad, но в остальном механически, электрически и электронно идеально подходят.

Есть видео о том, как разворачивался взлом ThinkPad EC, и я рекомендую вам посмотреть его, чтобы узнать, в чем дело. Теперь Lenovo, похоже, не понравилось, что люди меняют клавиатуры и разрешают использовать сторонние батареи, для которых сама Lenovo больше не продает «подлинные» аналоги. Итак, в какой-то момент решили закрыть один из самых удобных способов обновления прошивки EC, и выпустить обновление BIOS со ссылкой на «улучшения безопасности». Соответствующий CVE говорит следующее:

В различных версиях BIOS более старых систем ThinkPad сообщалось об уязвимости, которая могла позволить пользователю с правами администратора или физическим доступом обновить встроенный контроллер с помощью неподписанной прошивки.

Если вы спросите меня, это описание — чушь. По сути, это предложение означает, что «владелец ноутбука может прошить прошивку EC, не одобренную Lenovo». Мне действительно интересно, что привело к этому и каково возможное оправдание, но, в конце концов, какой бы ни была причина, это отвлекает от того, во что я верю. То есть обновление прошивки EC на собственном ноутбуке должно быть возможно, и Lenovo закрыла удобный способ сделать это.

Также, без сомнения, не все производители уважают ваше право на ремонт, когда речь идет о ЭК. Например, вот уже почти десятилетие Dell поставляет свои ноутбуки с EC с зашифрованной прошивкой, ключи которой встроены в EC. Это было особой проблемой при ремонте ноутбуков Dell, так как EC то и дело умирают. Хотя вы можете купить пустой EC и перепрошить его вместо «мертвого» Dell, у него не будет ключей дешифрования, которые Dell прошивает в EC на заводе, и, следовательно, не будет работать зашифрованная прошивка Dell. Модификации здесь не обсуждаются — даже невозможно найти подходящую замену для EC, когда ваш ноутбук сломан, хотя самих чипов в изобилии.

Что теперь делать?

Теперь у трех производителей есть прошивка с открытым исходным кодом для EC — Google, System76 и Framework. А что можно было сделать с этой прошивкой? Как и в случае с любой малоиспользуемой областью хакерства, потребуется время, чтобы полностью реализовать ее потенциал. Переназначение клавиш — это не единственное, что можно сделать — вы можете установить предел заряда батареи 80% для продления срока службы ячейки, если производитель вашего ноутбука не предоставил вам его, добавить дополнительные слои на клавиатуру вашего ноутбука без какой-либо поддержки ОС, возможно, настроить ваш вентилятор. кривые. Или, действительно, вы можете добавить несколько GPIO внутри своего ноутбука для любых датчиков или кнопок, которые пожелает ваше сердце.

Вы также можете исправлять ошибки, которые время от времени возникают в EC, и с которыми может быть довольно неприятно иметь дело — представьте, что клавиши клавиатуры время от времени застревают, казалось бы, случайным образом, и это именно то, что происходит, когда у вас есть EC ошибка. Исправления ошибок или улучшения, как и в случае с любой прошивкой, которая в настоящее время закрыта для нас, мы не увидим множество крутых хаков, начиная с завтрашнего дня, но определенно есть интересные вещи на горизонте, когда дело доходит до взлома EC.

X2100 и X210 BIOS/EC — технология XY

Содержание

  • BIOS
    • Введение
    • Прошивка с помощью внешнего флэш-накопителя (для X2100)
    • Прошивка в Windows (для X210 и X2100)
    • Прошивка полной версии BIOS в Linux (для 2 X2010)
    • и X1010 отдельно

      прошивка EC и BIOS (X2100)

    • 4-я партия X2100 Comet Lake BIOS 10-го поколения
    • X210 Kaby Lake-R BIOS 8-го поколения
  • Проблема модуля управления на X2100 Comet Lake
  • Coreboot/EC
    • X210 Kaby Lake-R
    • X2100 Comet Lake

BIOS

Введение

Полный сборник для X2100 и X210 BIOS и EC доступен на Github.

Обновления BIOS на любом компьютере относятся к обновлению микросхемы SPI EEPROM BIOS, присутствующей на материнской плате, которая обычно выглядит так и взаимодействует с основной системой по шине SPI. Весь образ BIOS представляет собой один двоичный файл, обычно с расширением .rom или .bin.

Для прошивки BIOS требуется программа для прошивки. X210 и X2100 предоставляют инструмент Intel FIT, который можно использовать для прошивки BIOS за один шаг. Flashrom в Linux также можно использовать для внутренней прошивки обновлений BIOS.

Перепрошивка BIOS может быть опасна для новичков. Настоятельно рекомендуется Ch441a или аппаратный прошивальщик в качестве резервной копии на случай, если что-то пойдет не так в процессе прошивки.

Прошивка через внешний флэш-накопитель (для X2100)

  • Загрузите соответствующий образ ISO.
  • Используйте Rufus или dd для прошивки ISO-образа на внешний флэш-накопитель.
  • Загрузите накопитель в режиме UEFI, и образ автоматически начнет мигать.
  • Выключите машину, отсоедините аккумулятор и адаптер питания на 1 минуту перед ее загрузкой.
  • Замените образ bin другим образом BIOS, если вы собираетесь прошивать другой образ.

Перепрошивка в Windows (для X210 и X2100)

  1. Загрузите пакет BIOS ниже.
  2. Установите драйвер MEIsetup из пакета BIOS, чтобы обновить BIOS.
  3. Щелкните правой кнопкой мыши файл update.bat и запустите его с правами администратора.
  4. Выключите машину, отсоедините аккумулятор и адаптер питания на 1 минуту перед ее загрузкой.

Полная прошивка BIOS в Linux (для X210 и X2100)

Для X210 8-го поколения совместима стандартная утилита flashrom, присутствующая в большинстве современных дистрибутивов. Посмотрите, как установить flashrom для вашего дистрибутива.

Для X2100 10-го поколения вам необходимо скомпилировать flashrom из исходного кода, так как поддержка Comet Lake 10-го поколения была добавлена ​​совсем недавно. Следите за репозиторием Github для получения более подробной информации. Кроме того, скомпилированный flashrom для Linux также включен в пакеты обновлений.

Чтобы обновить BIOS в Linux, установите iomem=relaxed в аргументе загрузки и выполните следующую команду: sudo flashrom -p internal -w bios.bin

Выключите машину, отсоедините аккумулятор и адаптер питания на 1 минуту перед загрузкой это резервное копирование.

Отдельно прошивка EC и BIOS (X2100)

  1. Загрузите последний файл обновления BIOS по ссылке.
  2. Следуйте инструкциям в репозитории Github.

4-я партия X2100 Comet Lake 10-го поколения BIOS

ОФИЦИАЛЬНЫЙ БИОС — это официальные обновления от 51nb.

UNOFFICIAL BIOS — это патчи, предоставленные сообществом. Он включает в себя больше исправлений и, в частности, устраняет проблему обнаружения батареи. Дополнительную информацию можно найти здесь.

767676767676767777777777777777777777777 гг.
Не прошивать на старых платах (>200 часов работы). Прошивать только для новых плат.
Это должно решить большинство проблем ME. Все остальные обновления остаются такими же, как и обновление от 15 декабря 2021 года.

Выпуск Описание Скачать/Ссылка
Официальный BIOS
Первоначальный выпуск
V15 Официальный BIOS
. 0176
Официальный BIOS
29 мая 2020 г.
V16
Решает проблемы с зарядкой
Решающие решающие отключения на батарею
батарея.
2 июня 2020 г.
V21
Решает проблему сна
Решает проблему внутреннего микрофона
Прямая ссылка (MD5)
Источник
0098
13 July 2020
V25
Resolves SD card issues
Resolves charging issues
Direct link (MD5)
Source
Unofficial BIOS
EC Update
4 September 2020
BIOS is exactly the то же, что и V25, только EC обновляется.
Горячее исправление / поддержка отладки EC.
Таблица подсветки, позволяющая снизить яркость подсветки до 1 %.
Правильно сообщать о состоянии заряда 9-элементных и 4-элементных аккумуляторов
Отчет об энергопотреблении от батареи («оставшееся время работы от батареи»)
Быстрая зарядка 6-элементной батареи при 3 А и 9-элементной батареи при 4 А. (X2100_V25 заряжал все батареи током 1,5 А.)
Ограничение входной мощности до 80 Вт при зарядке батареи. (X2100_v25 потребляется до 100 Вт, что может вызвать проблемы для зарядных устройств 90 Вт.)
FN/CTRL Не заменять
Прямая связь (SHA256)

FN/CTRL SWAPPANG
Direct Link (SHA256) SHA256) SHA256) SHA256) SHA256).

Неофициальный BIOS
Обновление BIOS

06 августа 2021 г.
Конфигурация BIOS обновлена ​​из официальной версии BIOS V25
BIOS правильно настроен с разумными уровнями мощности (резервный режим 15 Вт).
состояния ЦП C включены с возможностью повышения и понижения.
CSM полностью отключен, чтобы избежать разрывов экрана.
Включите настройки CSM в разделе «Дополнительно», чтобы повторно включить устаревшую ОС BIOS.
Оперативная память всегда настроена на 2666 МГц, чтобы уменьшить разрывы экрана.
Для IGP установлено значение 1 ГБ для более высоких разрешений Intel GVT-G.
Микрокод процессора обновлен.
Intel ME обновлен до версии 14.1.
GOP обновлен.
Linux (содержит обновление EC и BIOS)
(SHA256)

Windows (SHA256)

Unofficial BIOS
BIOS и EC Update

15 декабря 2021777777777 гг.
CSM снова включен для пользователей, которые столкнулись с проблемами при загрузке традиционной ОС BIOS
EC дополнительно исправлена ​​улучшенная подача питания, больше привязок клавиш и кривые вентилятора.
Соответствующий пост в блоге
Linux
(SHA256)

Windows
(SHA256)

. Неофициальный BIOS
BIOS Update

17 январь 20217
Linux
(SHA256)

Windows
(SHA256)

ISO
(SHA256)

x210 kaby Lake-R 8th Gen Bios

MD5 Mys Of Ships At Wass Ats Wass Ats Waste Ats Wasers Wass vasced vames vasced vasced vasced vasced vames vasced vasced vasced vames v haby-r 8th Gen

md. сэкономить место.

Дата Описание Скачать/Ссылка
12 января 2019 г. Официальный биос Официальный биос .0174 Совместим со 2-й и 3-й партиями X210 Прямая ссылка (MD5)
Источник
Исправленный BIOS сообщества
Основано на 12 января 2019 г.
Примечания к исправлениям здесь.
Compatible with 2nd & 3rd batch X210
Direct link
(SHA256)

Direct link
FN/CTRL swapped
(SHA256)

Source

Management Engine issue on the X2100 Comet Lake

The ME на X2100 может иметь проблемы, которые со временем развиваются, как описано здесь.

Читайте также: