Блок efi что это - АВТОМОБИЛЬНЫЙ ПОРТАЛ

Блок efi что это

Блок efi что это

Но прежде чем поговорить о системах управления — небольшое продолжение «дизельной» тематики —

РЕМОНТ ПОДКАЧИВАЮЩЕГО НАСОСА

Речь пойдет о подкачивающих насосах диафрагменного типа, которые установлены на большинстве японских автомобилей с дизельными двигателями. Геометрические размеры этих насосов могут быть разными, но устройство и принцип работы у них одинаковы. Поэтому смело устанавливайте на свою «Тойоту» подкачивающий насос от «Ниссана» и можете ехать. Только теперь топливные фильтры вам придется приобретать тоже от «Ниссана».(РИС 27)

Рис. 27. Внешний вид ручного подкачивающего насоса. Для замены топливного фильтра лучше снять всю сборку (насос, фильтр, датчик воды) с кронштейна и дальнейшие операции проводить на верстаке и в тисках. Подкачивающий насос можно заменить другим, даже с автомобиля иной фирмы. Подогреватель топлива, который есть на некоторых насосах, можно и «простить». Тем более что он на известных нам машинах не диагностируется ECU .

Основная проблема подкачивающих насосов одна и та же: плохо подкачивают топливо и «не держат». Последнее означает, что за ночь почти все топливо из корпуса ТНВД стекает обратно в топливный бак и утром двигатель, естественно, не заводится. Почему это происходит? Причина одна – негерметичность клапанов. Гораздо реже случается такая неисправность, как подсос воздуха в топливную систему из-за разрушения диафрагмы. Когда насос исправен, продуть ртом его можно только в одну сторону. В обратную он абсолютно не продувается. Во всех диафрагменных насосах два клапана и оба лепестковые, если под основание любого лепестка попадет соринка, плоскость лепестка уже не будет плотно прилегать к корпусу насоса, и насос работать не будет. Иногда соринки, мешающие работе насоса, можно выдуть с помощью сжатого воздуха, не вскрывая насос. Для этого шланг со сжатым воздухом направляют попеременно то во входное, то в выходное отверстие насоса. Но этот способ далеко не всегда эффективен, и более того, может случиться так, что если до продувки насос еще хоть как-то закачивал топливо, то после этой процедуры перестает работать вообще. В этом случае выход один – разобрать насос. Но прежде, чтобы облегчить процесс, по окружности завальцовки можно сделать несколько надпилов ножовкой по металлу. (РИС 28)

Рис. 28. Как вскрыть подкачивающий насос? Перед тем, как заняться развальцовкой корпуса, сделайте по кругу надпилы (1) на буртике топливоподкачивающего насоса. Тогда развальцевать и обратно завальцевать корпус насоса будет легче.

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

Осмотрите диафрагму. Если на ее поверхности есть подозрительные места, смажьте их клеем «Момент» или ему подобным. Естественно, только с одной стороны, там, где воздух. Иначе топливо весь клей растворит.

Собирать насос (снова завальцовывать) надо используя автомобильный (маслостойкий) герметик.

ПРОБЛЕМЫ С СИСТЕМАМИ УПРАВЛЕНИЯ

Наши люди с недоверием относятся к электронике – это видно хотя бы по тому, что почти при всех неисправностях двигателя они склонны винить электронику. Тем более если двигатель не заводится, а машина «эфишная» (т.е. с впрыском топлива). Случаи, когда клиенты просили посмотреть «эфишку», тогда как следовало бы, например, просто заменить свечи зажигания или сменить топливный фильтр, известны в каждой автомастерской. Хотелось бы заметить, что закрепившееся, в частности во Владивостоке, слово «эфишка» является производным от аббревиатуры EFI – electronic fuel injection . Этим сокращением японские конструкторы назвали впрыск топлива с электронным аналоговым управлением. С 80-х годов все фирмы применяют только цифровоеуправление двигателями, поэтому аббревиатура « EFI » устарела. Но покупатели машин уже привыкли к ней, поэтому некоторые фирмы (« Toyota », например) по-прежнему ее употребляют. Хотя надпись на кузове « EFI disel », которая встречается на машинах и 90-х годов, имеет не много смысла.

Так же и многие другие системы автомобиля стали управляться специальными электронными блоками (в основном цифровыми). Эти блоки многие мастера называют просто компьютерами, в то время как за рубежом они именуются ECU – electric control unit – электронный блок управления. В книге мы будем использовать и это сокращение – ECU .

Неисправность ECU – блока управления двигателем, из-за которой двигатель не заводится, случается очень редко. В нашей практике без помощи «умелых рук» блок EFI выходил из строя только у автомобилей фирмы « Mitsubishi », и картина при этом всегда была одинакова: вчера машина вроде бы нормально ходила, а утром – не заводится. Определить, исправен блок или нет, достаточно сложно, ведь в случае какой-нибудь небольшой неисправности в нем включится обходная программа, и двигатель будет продолжать работу. Определить, правильно ли электронный блок управляет двигателем, можно лишь с помощью специальных приборов, с которыми работают специально обученные люди. Тем не менее, у нас есть некоторый опыт по диагностике этих блоков. Если возникает подозрение, что в том, что автомобиль не заводится, виноват компьютер, нужно, в первую очередь, проверить, приходит ли питание на блок управления двигателем. Обычно напряжение бортовой сети приходит сразу на несколько выводов блока ECU . Если у вас есть схема напряжений на разъеме блока, все достаточно просто, нужно лишь, включив зажигание, измерять напряжение и сверяться со схемой. Когда схема отсутствует (что чаще всего и бывает), можно снять крышку блока управления и попытаться найти на плате обозначения выводов. Бывают случаи, когда, после вскрытия ECU , в нем обнаруживаются горелые элементы (детали) и тогда тоже все просто. До сих пор нам встречались только горелые элементы источников вторичного питания. Перепутают владельцы «плюс» и «минус» на аккумуляторе – сопротивление или транзистор стабилизатора на 5 вольт сгорают. И двигатель, естественно, не заводится. Но если специфического запаха в блоке ECU и следов копоти от горелых элементов на стенках нет, попытайтесь найти маркировку на плате ECU . Как правило, только фирма « Toyota » наносит обозначение выводов на платы своих компьютеров, но могут быть и исключения. Если вам повезет, и обозначения будут, вы без труда найдете символы «+ B », « B » или « BATT » – все они маркируют +12 вольт. Минус, т.е. корпус, обозначается « E », « E 01», « E 02» и т.д., главное, чтобы была буква « E », а других букв не было.

Если надписи на плате отсутствуют, равно как отсутствует и распечатанная цоколевка разъема, то можно попытаться выяснить, есть ли питание на блоке EFI , основываясь на следующем. Как правило, напряжение +12 вольт подается по желтым, желтым с красной полосой, по красным, по красным с желтой полосой и по белым проводам. Главное, что этих проводов (одного цвета) – несколько, не меньше четырех. Минус подается по черным и белым проводам, на которых иногда есть цветная полоса.

Если питание на блоке управления вроде бы есть, то неисправность компьютера можно определить по следующим косвенным признакам:

при включении зажигания не горит лампочка (светодиод, табло) с изображением двигателя ( check ), при этом нужно убедиться, что сама лампочка и ее цепи исправны; следует иметь в виду, что у новых дизельных двигателей «минус» на аварийную лампочку еще идет и с датчика уровня воды в топливном фильтре.

в режиме самодиагностики блок EFI постоянно показывает несколько неисправностей, притом что цепи и датчики, которые могут вызывать эти неисправности, не повреждены, прозванивать датчики (цепи) следует от разъема компьютера;

не включается режим самодиагностики; включение режима самодиагностики следует производить, используя только выводы разъема компьютера, чтобы исключить возможные дефекты в цепях;

на плате компьютера видны вздутия корпусов микросхем и транзисторов, горелые проводники, которые легко отличаются по цвету и копоть на внутренних стенках;

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

Но гораздо чаще блок управления двигателем выходит из строя при неправильной эксплуатации автомобиля. Например, при подключении аккумулятора в другой полярности в компьютере обычно сгорает стабилитрон, его легко можно заменить аналогичным с любого другого компьютера. Блок управления двигателем может выйти из строя, если при работающем двигателе снять клемму с аккумулятора. Причиной неисправности его могут стать электросварочные работы, которые проводились без должных предосторожностей. Проиллюстрируем это примером. На автомобиле « Mitsubishi RVR » надо было подварить кронштейн опоры двигателя. Решили сделать это на месте, не снимая кронштейн. Кажется, предусмотрели все: отсоединили аккумулятор, сделали хороший «минус» на корпус двигателя, все зачистили. Но случилось непредвиденное: сварщик тыльной частью «держака» коснулся кузова машины, вероятно, масса между кузовом и двигателем оказалась «не очень», в результате выгорела проводка под панелью и сгорел блок управления двигателем. Ток потек по одному из массовых проводов в жгуте, этот провод тут же нагрелся, его изоляция расплавилась, в жгуте произошло замыкание. Дальше ток пошел «гулять» по всем цепям и жечь все подряд.

Вообще-то, довольно часто из кузовного ремонта машины попадают к автоэлектрикам: если кузовщик не использует электросварку, то что-нибудь расплавит газовой горелкой. Если и этого не произойдет, допустим, то разъемы будут надеты неправильно. Ведь процесс кузовного ремонта начинается с того, что разъемы разъединяются, что-то снимается, и пошла работа. Везде пыль, грязь. Закончили. Все зашпаклевали и закрасили. Теперь нужно все собрать и соединить снятые ранее разъемы. Но не часто мастера кузовного ремонта задумывают о том, что контакты этих разъемов нужно очистить от следов шпатлевки и краски, высушить и смазать, установить все уплотняющие резинки и фиксаторы…Обычно все собирается по упрощенной схеме, дай бог вспомнить, что с чем соединять. Да и не специалисты они, в конце концов, по этим проводам и разъемам.

Если вам кажется, что блок управления двигателем неисправен, можно заменить его другим. Для этого нужно, чтобы все цифры на наклейках этих блоков взаимно совпадали, также как и ключи на разъемах. Впрочем, если совпадут все цифры, то совпадут и ключи. Если ключи на разъемах совпадают, а цифры на наклейках совпадают не все, такой ECU можно использовать для замены, в том смысле, что после этого ничто не сгорит, но нельзя гарантировать его абсолютно правильную работу. А теперь еще один пример довольно сложной поломки связанной с «электричеством».

Привозят на буксире машину « Mitsubishi Mirage » 1990 года выпуска c карбюраторным двигателем. По словам владельца, автомобиль заглох во время движения и больше не заводился. Что в первую очередь приходит в голову, когда при движении машины двигатель сам «выключается»? Правильно, ребята в первую очередь и проверили ремень газораспределения. Но, увы, он оказался целым. И все метки, как и положено, на месте. Следует заметить, что владелец машины сам немного занимался авторемонтом и все проверки довольно грамотно проводил в своем ремонтном боксе. Итак, ремень целый, компрессия во всех цилиндрах примерно по 10 кг/см 2 со второго удара, что для уверенного запуска более чем достаточно (сложности с запуском бензинового двигателя начинаются когда компрессия ниже 6,5 кг/см 2) , бензин в карбюратор поступает, искра на снятом центральном (и на свечном) проводе есть. Но двигатель сам заглох на ходу. После того, как все это выяснили, в машине (на всякий случай) заменили свечи, топливный и воздушный фильтры, высоковольтные провода, трамблер, бензонасос и карбюратор. Результата никакого. После этого владелец со своими товарищами «сломались»: отдали машину нам. В таких ситуациях, т.е. когда все вроде бы есть, а двигатель не заводится, мы поступаем по одному и тому же сценарию.

Сергей Корниенко
Диагност
город Владивосток

Электронная система впрыска топлива — Энциклопедия японских машин — на Дром

Как работает система впрыска топлива с электронным управлением?

Система впрыска топлива с электронным управлением работает на некоторых основных принципах. Далее подробно описана работа системы впрыска топлива с электронным управлением (EFI) стандартного типа.

Система впрыска топлива с электронным управлением может быть подразделена на три основные подсистемы. Это: система подачи топлива, система всасывания воздуха и электронная система управления.

Система подачи топлива
— Система подачи топлива состоит из топливного бака, топливного насоса, топливного фильтра, подающего топливопровода (направляющей-распределителя для топлива), топливной форсунки, регулятора топливного давления и обратного топливопровода.
— Топливо подается из бака в форсунку с помощью электрического топливного насоса. Насос обычно расположен внутри или рядом с топливным баком. Загрязнения отфильтровываются высокомощным встроенным топливным фильтром.
— Постоянное давление топлива поддерживается при помощи регулятора топливного давления. Топливо, не направленное во всасывающий трубопровод через форсунку, возвращается в бак по обратному топливопроводу.

Система всасывания воздуха
— Система всасывания воздуха состоит из очистителя воздуха, дроссельного клапана, воздухозаборной камеры, всасывающего коллектора и впускного клапана.
— Когда дроссельный клапан открыт, воздух проходит через очиститель воздуха, через расходомер воздуха (в системах типа L), через дроссельный клапан и хорошо отрегулированный впускной патрубок во впускной клапан.
— Подача воздуха в двигатель – это функция, требующая привода. По мере открытия дроссельного клапана в цилиндры двигателя впускается больше воздуха.
— В двигателях марки «Тойота» используются два различных метода измерения объема впускаемого воздуха. В системе EFI типа L поток воздуха измеряется напрямую с помощью расходомера воздуха. В системе EFI типа D поток воздуха измеряется косвенно с помощью мониторинга давления во всасывающем коллекторе.

Электронная система управления
— Электронная система управления состоит из различных датчиков двигателя, электронного управляющего блока (ECU), устройства топливной форсунки и соответствующей проводки.
— Блок ECU определяет точное количество топлива, которое необходимо подать форсунке, с помощью мониторинга датчиков двигателя.
— Для подачи в двигатель воздуха/топлива в соответствующей пропорции блок ECU включает форсунки на точный период времени, который называется шириной импульса впрыска или продолжительностью впрыска.

Основной режим работы
— Воздух попадает в двигатель через систему всасывания воздуха, где он измеряется расходомером воздуха. Когда воздух попадает в цилиндр, топливо смешивается с воздухом с помощью топливной форсунки.
— Топливные форсунки расположены во всасывающем коллекторе за каждым впускным клапаном. Форсунки представляют собой электроклапаны, управляющийся блоком ECU.
— Блок ECU посылает импульсы на форсунку путем включения и выключения цепи заземления форсунки.
— Когда форсунка включена, она открывается, распыляя топливо на заднюю стенку впускного клапана.
— Когда топливо распыляется во всасываемый поток воздуха, оно смешивается с входящим воздухом и испаряется благодаря низкому давлению во всасывающем коллекторе. Электронный управляющий блок посылает сигналы на форсунку, чтобы обеспечить подачу топлива, достаточного для достижения идеальной пропорции воздух/топливо 14,7:1, которая часто называется стехиометрией.
— Подача точного количества топлива в двигатель – это функция электронного управляющего блока.
— Блок ECU определяет основной объем впрыска на основании измеренного объема воздуха и оборотов двигателя.
— Объем впрыска может изменяться в зависимости от условий эксплуатации двигателя. Блок ECU отслеживает такие переменные величины, как температура охлаждающей жидкости, скорость двигателя, угол дросселя и содержание кислорода в выхлопе и производит корректировку впрыска, которая определяет окончательный объем впрыска.

Преимущества системы EFI
Равномерное распределение воздухо-топливной смеси
Каждый цилиндр имеет собственную форсунку, которая подает топливо непосредственно на впускной клапан. Это позволяет избежать необходимость подавать топливо через всасывающий коллектор, что улучшает распределение между цилиндрами.

Высокоточный контроль пропорции воздуха и топлива при всех условиях эксплуатации двигателя
Система EFI постоянно подает в двигатель точную пропорцию воздуха и топлива вне зависимости от условий эксплуатации. Это обеспечивает лучшие дорожные качества автомобиля, экономию топлива и контроль выхлопных газов.

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

Значительная экономия топлива и улучшенный контроль выхлопных газов
В двигателях с системой EFI обогащение при холодном запуске и широко открытом дросселе можно сократить, поскольку смешивание топлива не представляет проблемы. Это позволяет экономить топливо в целом и улучшить контроль выхлопных газов.

Улучшенные пусковые и эксплуатационные качества холодного двигателя
Улучшенное распыление в сочетании со впрыском топлива непосредственно на впускной клапан улучшает пусковые и эксплуатационные качества холодного двигателя.

Упрощенная механика, сниженная чувствительность к регулировке
Система EFI не зависит от регулировки обогащения топливной смеси при холодном запуске или измерения топлива. Поскольку система проста с механической точки зрения, требования к техническому обслуживанию снижены.


Система EFI/TCCS
С введением системы компьютерного управления (TCCS) система EFI превратилась из простой системы контроля топлива в полностью интегрированную систему управления двигателем и выхлопными газами. Хотя система подачи топлива работает также, как в обычной системе EFI, электронный регулирующий блок системы TCCS также контролирует угол искры зажигания. Кроме того, система TCCS также управляет устройством контроля числа оборотов холостого хода, рециркуляцией выхлопных газов, клапаном переключения вакуума и, в зависимости от применения, другими системами двигателя.

Управление искрой зажигания
Система EFI/TCCS регулирует угол опережения искры зажигания, отслеживая эксплуатационные условия двигателя, вычисляя оптимальную продолжительность зажигания и зажигая свечу в соответствующее время.

Контроль числа оборотов холостого хода
Система EFI/TCCS регулирует число оборотов холостого хода с помощью нескольких устройств разного типа, контролируемых электронным управляющим блоком (ECU). Блок ECU отслеживает эксплуатационные условия двигателя и определяет необходимое число оборотов холостого хода.

Рециркуляция выхлопных газов
Система EFI/TCCS регулирует периоды включения рециркуляции выхлопных газов (EGR) в двигателе. Контроль достигается за счет использования клапана переключения вакуума системы EGR.

Другие системы двигателя
Кроме основных описанных систем электронный регулирующий блок системы TCCS часто контролирует трансмиссию с электронным управлением (ECT), изменяемую всасывающую систему, сцепление компрессора кондиционера воздуха и турбонагнетатель.

Система самодиагностики
Система самодиагностики включена в блоки ECU всех систем TCCS и некоторых обычных систем EFI. Обычный двигатель c системой EFI, оснащенной функцией самодиагностики – это система Р7/EFI. Данная система диагностики использует предупредительную лампочку проверки двигателя в сочетании с измерительным устройством, которое предупреждает водителя об обнаружении неисправностей в системе управления двигателем. Лампочка проверки двигателя также высвечивает ряд кодов диагностики в помощь механику при выявлении и устранении неисправностей.

Краткий обзор
Система впрыска топлива с электронным управлением состоит из трех основных подсистем.
— Электронная система управления определяет основной объем впрыска по электросигналам расходомера воздуха и оборотам двигателя.
— Система подачи топлива поддерживает постоянное давление топлива на форсунке. Это позволяет блоку ECU контролировать продолжительность впрыска топлива и подавать топливо в объеме, соответствующем условиям эксплуатации двигателя.
— Система всасывания воздуха подает воздух в двигатель по требованию водителя. Воздушно-топливная смесь образуется во всасывающем коллекторе по мере продвижения воздуха по впускному каналу.

  • Перепечатка разрешается только с разрешения автора и при условии размещения ссылки на источник

Слегка ржавое EFI-приложение

После двух твитов, оставленных на прошлой неделе, про мои игры с UEFI и Rust, несколько человек попросили опубликовать заметку, объясняющую как создать UEFI-приложение, полностью написанное на Расте и продемонстрировать тестовое окружение.

Так что сегодняшняя цель — это создание UEFI-приложения на Расте, которое распечатывает карту памяти, отфильтрованную по доступности для использования (такая память называется традиционной памятью в описании UEFI-спецификаций):

Однако прежде, чем приступить к работе, освежим некоторые понятия.

▍ Скомканное вступление

При включении компьютера аппаратная часть находится в неопределённом состоянии и необходимо выполнить некоторую инициализацию для того, чтобы подготовить систему к предстоящей работе. BIOS, акроним для Basic Input/Output System, появившийся в районе 1975 года и использовавшийся с тех пор, был способом проведения аппаратной инициализации во время процесса загрузки и предоставления сервисов времени выполнения для ОС и программ. Однако BIOS имеет некоторые ограничения и после 40 лет применения заменён на Unified Extensible Firmware Interface (или UEFI для краткости). UEFI нацелен на устранение технических недостатков BIOS.

UEFI — это спецификация, которая определяет программный интерфейс между ОСUEFI-приложением и прошивкой платформы. Intel разработала изначальную Extensible Firmware Interface (EFI), работы над которой были закончены в июле 2005 года. В начале 2006 года Apple одной из первых внедрила технологию на своих Intel Macintosh. В том же самом 2005 году выход UEFI сделал устаревшим EFI 1.10 — последний выпуск EFI. UEFI форум — это индустриальный орган, который управляет UEFI-спецификациями. Интерфейс, определяемый этими спецификациями, включает таблицы данных, которые содержат информацию о платформе, сервисы времени загрузки и выполнения, которые доступны приложениюзагрузчику ОС. Такая прошивка имеет ряд преимуществ перед традиционным BIOS:

  • возможность использования более вместительных накопителей при помощи GUID Partition table (GPT)
  • независимая от CPU архитектура
  • независимые от CPU драйверы
  • гибкое пре-ОС окружение, включая сетевые возможности
  • модульная архитектура
  • совместимость назад и вперёд
Читайте также  Что такое транспондер на платной дороге

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

▍ Окисление — это хорошо

Как говорилось в начале, Раст будет использован для написания UEFI-приложения. Для тех, кто не знает, что это такое: Раст — системный язык программирования, разработку которого спонсирует Mozilla. Она описывает его как «безопасный, конкурентный, практичный язык», поддерживающий функциональную и императивно-процедурную парадигмы. Язык очень похож на Си++ в плане синтаксиса, но создатели Раста намереваются обеспечить в нём лучшую безопасность по памяти при сохранении производительности.

ЯП явился результатом персонального проекта сотрудника Mozilla Грейдона Хоара. Организация стала поддерживать проект в 2009 году, после осознания его потенциала. В 2010 году было публично объявлено о проекте; в том же самом году компилятор, изначально разработанный на OCaml, начали переписывать на Расте с использованием LLVM-backend.

Первая пре-альфа версия компилятора появилась в январе 2012 года, но уже через 3 года, 15 мая 2015 была выпущена первая стабильная версия (теперь известная как редакция 2015). Раст является проектом с открытым сообществом. Такая модель означает, что любой может вкладываться в разработку и в уточнение языка, и этот вклад может быть разным, например, улучшение документации, отправка баг-репортов, предложения RFC на добавление функциональности или изменения программного кода. Язык получил огромную обратную связь по опыту разработки Серво — современного движка для обозревателей с превосходной производительностью и возможностью встроенного применения. В наши дни Раст начинает присутствовать во всех сферах ПО, к примеру, в ПО для управления спутниками, программировании микроконтроллеров, веб-серверов, в обозревателе Firefox и т.д. Раст выигрывал первое место в номинации «наиболее любимый язык программирования» в опросе Stack Overflow Developer в 2016, 2017 и 2018 годах (прим. переводчика — и в 2021).

▍ Ещё два или три момента перед началом

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

Во избежание необходимости описывать все UEFI-таблицы будет использован крейт uefi-rs . Этот крейт облегчает создание UEFI-приложений на Расте. Миссия uefi-rs в том, чтобы предоставить безопасные и производительные обёртки вокруг UEFI-интерфейсов и позволить разработчикам писать идиоматичный Раст-код.

Наконец, для тестового окружения будут использованы Питон и QEMU вкупе с OVMF. QEMU — это хорошо известный полносистемный эмулятор, позволяющий запускать код для любой машины на любой поддерживаемой архитектуре. OVMF — это основанный на EDK II проект, предоставляющий поддержку UEFI для виртуальных машин (QEMU и KVM). QEMU не содержит в поставке OVMF, так что придётся установить его отдельно на вашу машину, либо взять предсобранные образы из Сети.

Например, такие доступны для загрузки в моём тестовом хранилище.

▍ Начинаем

Без дальнейших промедлений приступаем к работе! Первым делом создадим папку и инициализируем Раст проект в ней:

Теперь добавим uefi-rs в качестве зависимости. Чтобы сделать это, просто добавьте следующие строки в ваш Cargo.toml:

Если сейчас запустить cargo run , то Карго соберёт uefi-rs вместе с нашим приложением.

▍ Рабочий процесс сборкизапуска

Следующий шаг состоит в создании файла целевых параметров и сценария на Питоне для облегчения сборки и запуска UEFI-приложения. В основном, параметры цели описывают выходной двоичный файл, порядок байтов («endianess»), архитектуру, двоичную структуру и функциональности, которые можно использовать при компиляции. Этот файл будет использован build-std , функциональность Карго для производства крейта core (это основная часть стандартной библиотеки Раста, но без зависимостей, даже от системных библиотек и libc), собранного для другой платформы.

Таким образом, сперва нам необходимо «сказать» карго, чтобы он включил build-std , через создание файла .cargo/config:

Замечание: чтобы это работало нужно установить ночную сборку Раста так же как и компонент rust-src . Это можно сделать при помощи rustup: rustup component add rust-src —toolchain nightly .

Функциональность mem из compiler-builtins не включается автоматически во время сборки с использованием Cargo-функциональности build-std . Таким образом, мы должны вручную добавить поддержку функций по работе с памятью прописав следующее в файл Cargo.toml:

И затем добавим крейт в качестве зависимости, чтобы mem* функции были связаны:

Далее создадим файл x86_64-none-efi.json со следующим содержимым:

По правде говоря, на текущий момент уже нет необходимости в создании такого файла. Поддержку uefi влили — PR/56769.

Я решил всё же переводить статью в оригинальном виде.

Вообще, сейчас полезно сразу читать uefi-rs/BUILDING.md.

Также добавлю ещё одну хорошую, на мой взгляд, ссылку — blog.timhutt/std-embedded-rust. Благодаря ей сформировалась команда сборки — cargo +nightly build -Z build-std=std,panic_abort —target x86_64-unknown-uefi .

Исполняемый UEFI-файл не что иное, как двоичный формат PE, используемый Windows, но со специальной подсистемой и без таблицы символов; поэтому целевое семейство установлено как windows.

Сейчас нужно создать build.py, реализующий две команды:

  • build : эта команда собирает UEFI-приложение
  • run : запускает собранное приложение в QEMU.

Заметка: я не нашёл, по какой причине исполняемый файл не загружается автоматически с этой версией OVMF, поэтому используется сценарий startup.nsh для облегчения загрузки.

▍ Само приложение

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

В Расте ошибки могут быть доведены до паники или аварийного прекращения. Паника случается, когда что-то идёт не так, но в целом можно продолжить работу (такое обычно случается с потоками); аварийное завершение происходит, когда программа переходит в состояние, из которого невозможно восстановление. Наличие обработчика паники обязательно, он реализуется в стандартной библиотеке; но поскольку приложение не зависит от ОС, то и стд не может быть использована. Вместо этого мы используем core часть библиотеки, в которой обработчик отсутствует, так что мы вынуждены реализовывать его самостоятельно. К счастью, uefi-rs предоставляет одну реализацию оного.

Если вы подметили, то в файле целевых параметров указана передача пары аргументов lld (компоновщик LLVM), указывающие точку входа ( uefi_start ) и подсистему. Так, нам нужно отредактировать main.rs, чтобы импортировать uefi-rs крейт и определить функцию с именем uefi_start , содержащую бесконечный цикл:

Первые две строки обозначают, что наш крейт не имеет функции main и не зависит от стд. Также точка входа помечена аттрибутом entry.

Наконец, после сборки и запуска приложения, QEMU отобразит что-то похожее на картину ниже:

QEMU исполняет UEFI-приложение

Ничего интересного, но т.к. QEMU не перешла в цикл загрузки или выскочила в EFI-оболочку, убеждаемся, что наше приложение вызвано. Следующий шаг заключается в том, чтобы напечатать версию UEFI на экран. Опять же, в rust-rs уже реализованы вспомогательные функции для этого, поэтому достаточно проинициализировать систему логгирования и использовать макрос info! для распечатки текста на экране или даже на последовательном порту.

Для доступа к макросу info! нужно добавить новую зависимость в Cargo.toml:

Затем необходимо просто добавить следующий код в главную функцию, перед входом в бесконечный цикл:

После сборки и запуска приложение выведет что-то вроде INFO: UEFI 2.70. Эта информация зависит от версии прошивки, которую вы используете.

В завершение давайте напишем функцию, которая принимает ссылку на таблицу Boot Services и распечатывает регионы свободной для использования памяти. Сперва нам потребуется включить крейт alloc, чтобы получить доступ к структуре Vec; для этого нужно добавить следующие три строки в начало файла:

После этого определим константу с размером EFI-страницы, который равен 4KiB независимо от системы.

И, собственно, реализуем непосредственно функцию по обходу карты в поисках традиционной памяти и распечатке свободных диапазонов на экран:

Конечный результат должен совпадать с выводом, изображённым на КДПВ.

И готово! было несложно, правда? Теперь вы можете продолжить реализовывать новые возможности в приложении, вероятно решившись разрабатывать загрузчик или более сложное UEFI приложение.

И ещё одна важная ремарка для отважных духом. Если вы пустились в разработку своей собственной ОС или углубились в изучение технологии, то вы должны отложить в сторону все API, предоставляемые UEFI для взаимодействия с файловой системой, сетью, доступом к PCI-устройствам и т.д., и разработать свои собственные драйвера.

Не ленитесь от использования всех этих предоставленных абстракций!

BIOS — EFI, UEFI. Что такое UEFI?

BIOS — EFI, UEFI. Что такое UEFI?

C истема UEFI – это комплекс спецификаций, появившийся как «загрузочная инициатива Интел» (Intel Boot Initiative) в очень далеком 1998 году. Причиной рождения инициативы послужило то, что ограничения, обусловленные BIOS, стали ощутимо тормозить прогресс вычислительных систем на основе новейших в ту пору интеловских 64-х разрядных процессоров Itanium для серверов. Несколько позже эта же инициатива стала называться EFI, а в 2005 году корпорация «подарила» свою разработку специально созданному под нее консорциуму UEFI Forum, главными членами которого стали помимо Intel такие зубры IT-индустрии, как AMD, Apple, IBM, Microsoft и ряд других, и EFI превратился в UEFI .

UEFI (единый интерфейс EFI) — это стандартный интерфейс встроенного ПО для компьютеров, заменяющий BIOS. В создании этого стандарта участвовали более 140 технологических компаний, составляющих часть консорциума UEFI, включая Майкрософт. Стандарт был создан для улучшения взаимодействия программного обеспечения и устранения ограничений BIOS.

Полностью построенная на основе программного кода, UEFI действительно стала объединенной кросс-платформенной системой. Уже сегодня спецификации UEFI предусмотрены в работе почти любой комбинации чипов с 32- и 64-битной архитектурой, выпускаемых AMD, Intel и многочисленными лицензиатами ARM. Единственное, что требуется для обеспечения этой универсальности, это скомпилировать исходный код под требования каждой конкретной платформы.

Еще более усиливая сходство с ОС, спецификации UEFI включают в себя не только загрузочные, тестовые и рабочие сервисы, но также протоколы коммуникаций, драйверы устройств (UEFI изначально разрабатывалась для работы вне зависимости от операционных систем), функциональные расширения и даже собственную EFI-оболочку, из-под которой можно запускать собственные EFI-приложения. А уже поверх всего этого хозяйства расположен собственно загрузчик, отвечающий за запуск на компьютере основной операционной системы (или нескольких систем).

Хотя UEFI иногда называют псевдо-ОС, она, тем не менее, способна сама получать доступ ко всему аппаратному обеспечению компьютера. То есть уже на уровне UEFI вполне возможно, к примеру, выходить в Интернет или организовывать резервное копирование жестких дисков, причем делать это все в условиях полноценного графического интерфейса под привычным «мышиным» управлением.

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

Некоторые из преимуществ UEFI:

1. Поддержка дисков объемом более 2,2 Тбайт.

UEFI использует таблицу разделов GPT (GUID Partition Table), которая использует глобальные уникальные идентификаторы адреса разделов и позволяет загрузку с жесткого диска такого размера, как 9,4 ZB (зетабайт). Терабайт составляет 1024 Гб, а зетабайт равен 1024x1024x1024 Гб. Что такое GPT? GPT — новый стандарт формата таблиц разделов на жестком диске (128 разделов). Он является частью интерфейса EFI. EFI использует GPT там, где BIOS использует таблицу разделов MBR. Поддержка современных драйверов устройств с 64-разрядным встроенным ПО, которые система может использовать для привлечения более 17,2 миллиарда гигабайт памяти во время запуска.

2. Также EFI позволяет больше вариантов загрузки, не предписывает особые файловые системы и имеет превосходные способности к загрузке сети.

3. Повышение безопасности при защите процессов, происходящих перед запуском или загрузкой, от атак bootkit. Что такое Secure Boot? Спецификация Secure Boot разработана Microsoft в рамках проекта UEFI и позволяет защитить загрузочную среду от вмешательства в загрузочные файлы путем контроля подписей загружаемых файлов на предмет их соответствия белому списку ключей, зашитых в uefi как доверенные. «Побочным эффектом» такой защиты от руткитов является невозможность установки ОС, отличной от Windows 8 (на данный момент только она поддерживает Secure Boot), а также исключает возможность запуска с старых mbr дисков и загрузочных CD-дисков/флешек.

4. Уменьшение времени загрузки или восстановления после гибернации.

С момента включения в сеть и до полной загрузки Windows пройдет примерно 30-60 секунд, или даже больше, а вот с UEFI загрузка происходит намного быстрее, сейчас уже достигнут рекорд — 2 секунды.

5. Встроенная BIOS. Материнским платам с UEFI, не нужно BIOS, потому что в ней есть своя встроенная BIOS, называется — модуль поддержки совместимости. Поэтому те программы, которым для работы нужен был BIOS, спокойно могут работать и на компьютерах с UEFI.

6. Простое управление.

В меню настроек все можно делать с помощью мышки, раньше это было недоступно, в БИОСе управление было возможно только с клавиатуры. Да и сама картинка, конечно же, отличается, что мы видим в БИОСе сейчас, черный экран и белые строчки. А тут, красивый графический uefi интерфейс с интуитивно понятным меню.

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

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

Если разобраться, то UEFI сама по себе является операционной системой, она чем-то похожа на DOS, потому что выполняет текстовые команды. Она может помочь разобраться в причинах отказа загрузки основной Операционной Системы, если такое произошло, но работать в ней могут только опытные пользователи.

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

Что такое файл EFI?

Файлы EFI являются загрузчиками UEFI и вот как они работают

Файл с расширением EFI является файлом интерфейса расширяемого микропрограммного обеспечения.

Файлы EFI являются исполняемыми файлами загрузчика, существуют в компьютерных системах на основе UEFI (Unified Extensible Firmware Interface) и содержат данные о том, как должен происходить процесс загрузки.

Файлы EFI можно открывать с помощью EFI Developer Kit и Microsoft EFI Utilities, но, честно говоря, если вы не разработчик оборудования, мало смысла в «открытии» файла EFI.

Где находится файл EFI в Windows?

В системе с установленной операционной системой диспетчер загрузки, существующий как часть прошивки UEFI материнской платы, будет иметь расположение файла EFI, хранящееся в переменной BootOrder . Это может быть еще один менеджер загрузки, если у вас установлен мультизагрузочный инструмент, но обычно это просто загрузчик EFI для вашей операционной системы.

В большинстве случаев этот файл EFI хранится в специальном системном разделе EFI. Этот раздел обычно скрыт и не имеет буквы диска.

Например, в системе UEFI с установленной Windows 10 файл EFI будет расположен в следующем месте в этом скрытом разделе:

Вы увидите файл bootx64.efi , если у вас установлена ​​64-разрядная версия Windows, или файл bootia32.efi , если вы используете 32-разрядную версию. , Смотрите 64-битные и 32-битные: в чем разница? подробнее об этом, если вы не уверены.

На некоторых компьютерах Windows файл winload.efi действует как загрузчик и обычно хранится в следующем месте:

Если системный диск отличается от C или Windows установлена ​​в папку, отличную от Windows , то точный путь на вашем компьютере, конечно, будет отличаться соответственно.

В системе без установленной операционной системы с пустой переменной BootOrder менеджер загрузки материнской платы ищет в предопределенных местах файл EFI, например на дисках в оптических дисках и другие связанные СМИ. Это происходит потому, что, если это поле пустое, у вас не установлена ​​работающая ОС, и, вероятно, вы собираетесь установить одну из следующих.

Например, на установочном DVD-диске Windows 10 или образе ISO существуют следующие два файла, которые менеджер загрузки UEFI вашего компьютера быстро найдет:

Как и в случае с установочным диском Windows и указанным выше путем, диск будет отличаться в зависимости от источника мультимедиа. В этом случае D – это буква, назначенная моему оптическому приводу. Кроме того, как вы могли заметить, на установочный носитель включены как , так и 64-разрядные и 32-разрядные загрузчики EFI. Это связано с тем, что установочный диск содержит оба типа архитектуры в качестве параметров установки.

Где находится файл EFI в других операционных системах?

Вот некоторые местоположения файлов EFI по умолчанию для некоторых операционных систем, отличных от Windows:

macOS использует следующий EFI-файл в качестве загрузчика, но не во всех ситуациях:

Загрузчик EFI для Linux будет отличаться в зависимости от установленного дистрибутива, но вот несколько:

Все еще не можете открыть или использовать файл?

Обратите внимание, что есть некоторые типы файлов, которые очень похожи на «.EFI», которые у вас могут быть, и поэтому вы можете открыть их с помощью обычной программы. Это наиболее вероятно, если вы просто неправильно прочитали расширение файла.

Например, у вас действительно может быть файл факсимильного документа eFax EFX, который не имеет ничего общего с файлами расширяемого интерфейса микропрограммы и является документом, который открывается службой факса. Или, может быть, ваш файл использует расширение .EFL и является файлом с внешним форматом или зашифрованным файлом Encryptafile.

Если вы уверены, что можете открыть файл, который у вас есть, то он, скорее всего, не в том формате, который описан на этой странице. Вместо этого дважды проверьте расширение файла для вашего файла и исследуйте программу, которая может открыть его или преобразовать в новый формат.

Вы можете даже попробовать загрузить его в службу конвертации файлов, например Zamzar, чтобы узнать, распознает ли он тип файла и предложить формат преобразования.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector