Компьютер с acpi на базе x64 что это
Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции.
Начальные условия
Допустим, при запуске
у нас выдаётся такая картина:
где по адресу 0x53 обнаруживается акселерометер ADXL345, а по адресу 0x57 — микросхема EEPROM памяти 24c128. Описания этих устройств отсутствуют в ACPI, а именно в таблице DSDT .
Добавляем акселерометер ADXL345
Всё, что нам необходимо знать здесь — это адрес, по которому отзывается устройство, его ID, поддерживаемые драйвером, частота шины, на которой он должен работать. Обратите внимание, что частота I2C шины со стороны драйвера часто устанавливается в ту минимальную, которая поддерживается всеми ведомыми устройствами на данной шине!
Ах, да, было время, когда подсистемы IIO не существовало, а драйвер ADXL345 уже был. Так вот, мы используем новый, который доступен через подсистему IIO.
- Адрес: 0x53
- Частота шины: 400кГц
- Ссылка на ведущее (контроллер) устройство: \_SB.PCI0.I2C1
- Идентификатор: adi,adxl345
Переводим полученную информацию на язык ASL :
Добавляем EEPROM 24c128
Так же, как и в предыдущем случае получаем необходимую информацию про устройство и его драйвер:
- Адрес: 0x57
- Частота шины: 400кГц
- Ссылка на ведущее (контроллер) устройство: \_SB.PCI0.I2C1
- Идентификатор: INT3499
- Объём: 1024
- Размер страницы: 32
Заметьте разницу с предыдущим вариантом. Здесь используется напрямую ACPI ID, который выделен в пространстве, контроллируемом Intel, спасибо платформе Intel Galileo. Второе отличие, мы передаём дополнительные параметры устройства в виде строк ключ-значение.
Возможные варианты инициализации
Что теперь с этим всем делать? Алгоритм прост. Во-первых, необходимо откомпилировать полученные файлы в ASL байт-код. Достигается с помощью вызова команды
и по аналогии для EEPROM. Во-вторых, выбрать способ инициализации новоиспечённой таблицы. Их собственно три: 1) присоединение к initramfs, 2) загрузка на рабочей системе через ConfigFS, 3) загрузка таблицы из переменной EFI. Рассмотрим первые два из них ниже.
Присоединение к initramfs
Ничего с самим архивом initramfs мы делать не будем, однако рекомендуется сохранить оригинал где-нибудь в сторонке.
После этой процедуры старый архив можно заменить новым и перезагрузить компьютер.
Должно появиться в выводе dmesg что-то типа:
Учтите, что ядро поддерживает только цепочку до 64 таких архивов.
Загрузка через ConfigFS
Такая возможность доступна, когда ядро собрано с опцией CONFIG_ACPI_CONFIGFS и ConfigFS примонтирована. Если предположить, что она примонтирована в подкаталог /sys/kernel/config, то нижеследующий пример показывает как загрузить таблицу.
Заключение
Хотя язык ASL требует больше скобочек, чем аналоги, тем не менее он предоставляет не меньшие возможности для описания устройств. Так, существует некоторое количество примеров в проекте meta-acpi, где в частности можно найти описания светодиодов и кнопок, подключенных к GPIO линиям, микросхем памяти, и даже описание модуля Adafruit 2.8" — TFT дисплея с сенсорным экраном!
Windows 10
Привет! Мы продолжаем разбирать операционную систему Windows 10! Сегодня вы узнаете как настроить параметры устройства «Компьютер с ACPI на базе x64» на компьютере Windows 10. Вы сможете узнать состояние устройства, сможете обновить драйвер, сможете узнать значения свойств устройства и т.д.
Чтобы открыть параметры устройства, внизу экрана слева откройте меню «Пуск». В открывшемся окне нажмите на вкладку или значок «Параметры».
Далее, на странице «Параметры» нажмите на вкладку «Устройства».
Далее, на странице «Устройства», внизу страницы, нажмите на вкладку «Диспетчер устройств».
Далее, на странице «Диспетчер устройств» нажмите два раза на вкладку «Компьютер». У вас откроются вложения. Нажмите два раза на вкладку устройства — Компьютер с ACPI на базе x64 .
Далее, у вас откроется окно «Свойства Компьютер с ACPI на базе x64». Здесь вы сможете настроить параметры устройства.
Общие:
— Здесь вы можете узнать состояние устройства.
Драйвер:
— Вы можете узнать поставщика драйвера.
— Дату разработки драйвера.
— Цифровую подпись драйвера.
— Сведения о файлах драйвера.
— Вы можете обновить драйвер.
— Вы можете откатить драйвер к предыдущему, если устройство работает не правильно.
— Вы можете отключить устройство.
— Вы можете удалить драйвер.
Сведения:
— Вы можете узнать значения свойств устройства.
— Выберите свойство и вам автоматически покажут его значение.
— Например, вы можете узнать ранг драйвера, секцию INF файла, код проблемы, ранг миграции устройства и т.д.
В данной статье пойдет речь о вопросе управления энергопотреблением в современных компьютерах, выражаясь в специфической терминологии — Power Managment. Нет-нет, не закрывайте окно браузера, считая, что вас это не касается, поскольку вы не являетесь владельцем ноутбука и не состоите в партии зеленых. Речь пойдет о гораздо более интересных вещах: совместной инициативе Intel, Microsoft и Toshiba — ACPI, и одном из наиболее интересных ее практических воплощений в Windows98/NT — технологии OnNow, должной обеспечить "постоянно доступный PC".
Итак, что же собственно это такое — ACPI? Для начала, наверное, стоит расшифровать эту аббревиатуру. ACPI, в переводе на человеческий язык, означает Advanced Configuration and Power Interface. Или, говоря по-русски, "интерфейс расширенного конфигурирования и управления питанием". Его задача — обеспечить взаимодействие между операционной системой, аппаратным обеспечением и BIOS системной платы.
Посмотрим сначала, что творится в этой области сегодня. Большинство материнских плат, даже вышедших на базе таких относительно новых чипсетов как VIA Apollo MVP3 или Intel 440BX, не поддерживают расширенное управление энергопотреблением ACPI, несмотря на то, что по идее, ACPI-совместимым считается еще аж 430TX, а сам ACPI был анонсирован в апреле 1996 года. Его использование начинается только сегодня, по мере того, как для вышедших недавно материнских плат создаются новые версии BIOS, частично поддерживающие ACPI.
- Совместная работа компонентов системы отсутствует, как таковая: диски начинают раскручиваться, когда это совершенно ненужно, экран гаснет во время работы, поскольку текстовый редактор забыл отметиться у операционной системы, и т.д.
- BIOS системной платы, операционная система и приложения бьются друг с другом за контроль над аппаратным обеспечением компьютера. Но любое внешнее относительно материнской платы оборудование не участвует в процессе управления энергопотреблением — когда вы добавите в систему встроенный модем, сможет ли он как-то при установке высказать BIOS свои пожелания? И куда его пошлет BIOS?
- Имеющееся управление энергопотреблением в основном ограничено материнской платой и отличается крайней тупостью. Ну, например, Windows98 скидывает на винт своп-файл. Даже идиоту должно быть ясно, что винт в этот момент активен, этот факт можно даже не проверять. А BIOS системной платы все равно проверяет.
- Необходимость выключать или перезагружать компьютер при добавлении новых устройств. Кое-где уже наметился прогресс (USB, например), но все равно, до полной горячей замены еще далеко.
- Ну и, наконец, приложения не заботятся об экономии потребляемой компьютером энергии, да и работают не ахти. Выдерните из включенного компьютера видеокарту — наверняка ведь Word зависнет. ;-)
Итак, повторюсь, основная задача ACPI — способность разумно включать и выключать PC и подключенную к нему периферию. Причем, помимо принтеров, сетевых карт, дисководов CD-ROM и прочая и прочая, могут быть и такие, пока еще экзотические устройства, как телевизор, видеомагнитофон, музыкальный центр. И конечно речь идет об умной активации PC. Так, чтобы видеоплеер при установке в него кассеты смог разбудить PC, который включил бы телевизор.
Однако на данный момент ACPI может интересовать среднего пользователя только как теоретическая архитектура. Куда интереснее основанная на нем технология OnNow, уже сегодня могущая предоставить кое-какие вполне осязаемые приятности. Ее цели: убрать задержки при включении и выключении компьютера, позволить обслуживающим приложениям, таким как дефрагментация диска или проверка на вирусы выполняться в то время, когда компьютер выключен, и вообще, улучшить общую картину энергопотребления PC.
- G0 — обычное, рабочее состояние
- G1 — suspend, спящий режим
- G2 — soft-off, режим, когда питание отключено, но блок питания находится под напряжением, и машина готова включиться в любой момент
- G3 — mechanical off — питание отключено напрочь
- S1: (standby 1) останавливаются тактовые генераторы CPU и всей системы, но при этом состояние памяти остается неизменным. Выход из S1 осуществляется мгновенно.
- S2: (standby 2) также останавливаются тактовые генераторы CPU и всей системы, но к тому же отключается питание кэша и CPU, а данные, хранившиеся там, сбрасываются в основную память. Включение также происходит достаточно быстро.
- S3: (suspend-to-memory) по замыслу, именно этот режим должен был быть OnNow, но по воле разработчиков пока так не получилось. Должны обесточиваться все компоненты системы, кроме памяти, в которой сохраняются необходимые данные о состоянии CPU и кэша. Включение с восстановлением предыдущего состояния PC действительно происходит Now, то есть практически сразу.
- S4: (suspend-to-disk) то, что реализовано в каком-то виде сейчас. Все компоненты системы обесточиваются, а данные о состоянии процессора и содержимое кэша и памяти записываются в специально отведенное место на жестком диске. При этом пробуждение может занимать значительное время.
Режим S3 (настоящий OnNow) не может быть реализован из-за того, что существующие системные платы не имеют схем разделенного питания компонентов. Поэтому, до выхода следующего поколения материнок OnNow в полном объеме реализован быть не может. Пока же, путем модификации BIOS, можно добиться только некой эмуляции — S4.
Первой же материнской платой, которая будет иметь раздельные схемы питания для своих узлов и будет, таким образом, поддерживать режим S3 станет ASUS P2B-E — модификация давно известной системной платы P2B от Asustek. Кроме возможности suspend-to-memory, кстати, P2B-E будет иметь 5 слотов PCI. В серийное производство эта плата будет запущена в ноябре текущего года.
Но вернемся к нашим баранам. Спецификацию OnNow разрабатывала небезызвестная вам фирма Microsoft. Угадайте с трех попыток, кто по этой спецификации должен стать управляющим центром компьютера по всем этим вопросам? Первые два ответа можно не считать, правильно — Windows.
- Автоматическое скачивание файлов из Internet и выполнение системных задач. Так, Internet'овское приложение может быть настроено для того, чтобы в 3 ночи включить компьютер, просмотреть несколько сайтов, и скачать вновь появившиеся файлы. Естественно, если оно поддерживает API OnNow. То же самое относится к таким программам, как антивирусы, резервное копирование, Scandisk, наконец.
- Сохранение сетевых соединений. Так, при выключении компьютера, или даже при его "засыпании", сетевое соединение рвется, файлы закрываются и т.д. При возникновении подобной ситуации, приложение, написанное с учетом OnNow, автоматом выполнит автосохранение используемых файлов на локальном диске и после включения компьютера и восстановления соединения, без криков позволит пользователю продолжить работу.
- Обработка специфических событий. Так, факс-модем способен находиться в состоянии приема 24 часа в сутки, независимо от того, включен компьютер или нет. Если он выключен, при входящем звонке модем его включит и запустит нужную программу.
В общем, я полагаю, тенденцию вы уловили. Компьютер, постоянно находящийся наготове.
Обидно, однако, что пока с практическим использованием ACPI очень дела обстоят неважно. Возьмем самое яркое видимое и единственное на данный момент проявление ACPI в Windows 98 — Hibernate (по-русски — зимняя спячка). Проще говоря, это то самое хваленое сбрасывание данных из оперативной и видеопамяти на винт, с последующим быстрым восстановлением при включении компьютера. Таким образом, у нас получается аналог спящего режима, когда к вашим услугам предоставлены всегда запущенные приложения, но с нулевым потреблением энергии. Так вот, после появления в вашем компьютере версии BIOS, поддерживающей ACPI и некоторых манипуляций с установкой Windows 98, у вас действительно в Control Panel/Power Management появится пара вожделенных пунктов:
И соответствующий пункт в закладке Advanced:
Я уже не говорю о не так хорошо заметных проявлениях в списке системных устройств:
Как вам нравятся такие устройства, как ACPI System Button или Composite Power Source?
Однако, небольшое но. Ох уж это но, всегда оно появляется. Как обычно, новая технология отказывается работать в Windows сразу и без ошибок. Эта печальная практика затронула и OnNow. В Windows 98 фактически он не работает. До выхода Service Pack 1 все ограничится этими красивыми, но, к сожалению, бесполезными картинками. Сегодня в Windows'98 не работают ни Hibernate, ни вообще, какие либо функции управления питанием через ACPI. Весь контроль над ними берет на себя APM. Взять тот же Composite Power Source (по-русски говоря, — блок питания в корпусе): при входе в спящий режим через ACPI он должен выключаться, а при входе через APM (сегодня) — не выключается. Улавливаете разницу в уровне контроля над железом?
Итог: любимый город может спать спокойно. По крайней мере, до 99 года, когда выйдет SP1 для Windows 98, а комплектующие и программы научатся работать в паре с ACPI.
Возможно, однако, что OnNow будет все же работать через BIOS, в обход операционной системы. Например, плате ASUS P2B-E не будет требоваться команда Windows 98 для перехода в S3 (suspend-to-memory), а уже давно вышедшая плата Aopen AX-6BC умеет делать S4 (suspend-to-disk) не пользуясь средствами операционной системы.
Привет ! Мы продолжаем разбирать операционную систему Windows 10 ! Сегодня вы узнаете как настроить параметры устройства «Компьютер с ACPI на базе x64» на компьютере Windows 10. Вы сможете узнать состояние устройства, сможете обновить драйвер, сможете узнать значения свойств устройства и т.д.
Чтобы открыть параметры устройства, внизу экрана слева откройте меню «Пуск». В открывшемся окне нажмите на вкладку или значок «Параметры».
Далее, на странице «Параметры» нажмите на вкладку «Устройства».
Далее, на странице «Устройства», внизу страницы, нажмите на вкладку «Диспетчер устройств».
Далее, на странице «Диспетчер устройств» нажмите два раза на вкладку «Компьютер». У вас откроются вложения. Нажмите два раза на вкладку устройства — Компьютер с ACPI на базе x64 .
Далее, у вас откроется окно «Свойства Компьютер с ACPI на базе x64». Здесь вы сможете настроить параметры устройства.
Общие:
— Здесь вы можете узнать состояние устройства.
Драйвер:
— Вы можете узнать поставщика драйвера.
— Дату разработки драйвера.
— Цифровую подпись драйвера.
— Сведения о файлах драйвера.
— Вы можете обновить драйвер.
— Вы можете откатить драйвер к предыдущему, если устройство работает не правильно.
— Вы можете отключить устройство.
— Вы можете удалить драйвер.
Сведения:
— Вы можете узнать значения свойств устройства.
— Выберите свойство и вам автоматически покажут его значение.
— Например, вы можете узнать ранг драйвера, секцию INF файла, код проблемы, ранг миграции устройства и т.д.
Продолжаем знакомство с новыми возможностями недавно вышедших из под пера UEFI Forum стандартов, и если в предыдущей части речь шла о внутреннем стандарте PI, то на этот раз она пойдет об ACPI 6.0 и его отличиях от предыдущей версии 5.1.
Если вам интересно, что именно изменилось за 10 месяцев разработки стандарта, и какими новшествами нас порадуют или огорчат будущие системы с поддержкой ACPI 6.0 — добро пожаловать под кат.
Что вообще такое ACPI
ACPI 6.0
С момента выпуска предыдущей версии 5.1. прошел почти год, но каких-то радикальных изменений в новом стандарте не случилось, что позволит производителям прошивок реализовать его поддержку в достаточно короткие сроки.
Для начала я перечислю все заметные изменения, а потом уже постараюсь дать развернутый комментарий по каждой группе. Поехали!
Поддержка NVDIMM
Поддержка USB-C
Add USB-C Connection support to _UPC — теперь у каждого USB-порта можно узнать, является ли он портом USB Type C и если да, то какие именно новые режимы поддерживает.
Обновление для языка ASL
Температуры, питания и производительность
Standby Thermal Trip — возможность при сильном превышении температуры какой-либо части платы перейти в S3 вместо полного отключения, что позволит потерять меньше данных.
Adding Support for Faster Thermal Sampling — возможность для производителя платы указать период опроса датчиков температуры (минимальное значение — 0,1 с), которой не было ранее. Позволит улучшить скорость реакции драйвера OSPM на изменения температуры компонентов.
Adjust max p-states — поддержка более 16 промежуточных состояний питания (по простому — пар «множитель CPU — желаемое напряжение») для находящейся под нагрузкой (т.е в состоянии С0) системы. Позволит точнее сэкономить еще немного энергии на мобильных ПК.
ACPI Low Power Idle Table and _LPD proposal — новые таблица и метод для перехода в энергосберегающие состояния LPI. Работают они пока только на Haswell и более новых процессорах Intel, только в Windows и только при наличии Intel Power Engine Plug-in, так что пока толку от этого новшества не много.
CPPC heterogeneous performance capabilities — поддержка технологии CPPC от Intel. Еще один способ управления нагрузкой, в добавок к десятку уже имеющихся. Тоже только для Haswell+, но на этот раз драйвером для Linux не обделили.
Поддержка архитектуры ARM
Остальное
Совсем немного про NVDIMM
Обещал рассказать, чем поддержка NVDIMM чревата простому пользователю — и расскажу.
Даже без самой NVDIMM (о плюсах которой можно почитать, например, здесь) таблица NFIT позволит прошивке отобразить любой непрерывный файл в память и сообщить ОС, что он там и что с него можно загрузиться. Это, в свою очередь, позволит UEFI загружаться не только с физических носителей, но и из ISO-образов, с виртуальных дисков, с любых блочных устройств (даже без ФС) и т.п. Фишку, скорее всего, подсмотрели у GRUB'а, который так умеет уже лет десять, но она от этого не становится менее полезной.
Заключение
В отличие от PI 1.4, в котором почти ничего интересного и не было, в новой версии ACPI добавилось несколько приятных как пользователю (NFIT, кнопки, USB-C), так и разработчику (ASL 2.0, новые макросы, больше возможностей для контроля температуры) вещей. Ну и самих себя UEFI Forum не обделили, добавив скопом все недавние энергосберегающие технологии Intel и оставив задел на будущую версию для ARM и Linaro.
Ждем теперь, когда производители UEFI-платформ (т.е AMI, Phoenix и Insyde) объявят и поддержке ACPI 6.0 в своих продуктах.
P.S.
Извиняюсь за обилие аббревиатур, но иначе тут никак.
Спасибо за внимание, удачных вам прошивок.
Читайте также: