Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции.
Читать полностью »
Рубрика «ACPI» - 2
ACPI: Добавление устройств без перекомпиляции ядра
2019-05-13 в 21:15, admin, рубрики: ACPI, ConfigFS., dsdt, linux, SSDT, x86, Драйвер, Разработка для интернета вещей, Разработка под LinuxExternal Interrupts in the x86 system. Part 1. Interrupt controller evolution
2019-04-01 в 11:38, admin, рубрики: ACPI, apic, i/o apic, interrupts, irq, ISA, lapic, mptable, MSI, msi-x, PCI, pic, PIR, pirq, x2apic, x86, xapic, системное программированиеThis article is about the interrupt delivery process from external devices in the x86 system. It tries to answer questions such as:
- What is PIC and what is it for?
- What is APIC and what is it for? What is the purpose of LAPIC and I/O APIC?
- What are the differences between APIC, xAPIC, and x2APIC?
- What is MSI? What are the differences between MSI and MSI-X?
- What is the role of the $PIR, MPtable, and ACPI tables?
If you want to know the answer for one of these questions, or if you simply want to know about interrupt controller evolution, please, welcome.
Читать полностью »
Прерывания от внешних устройств в x86 системе. Опции загрузки ядра Linux
2018-11-28 в 12:06, admin, рубрики: ACPI, apic, interrupts, irq, linux, MSI, pic, Настройка Linux, системное программированиеВ предыдущей части мы рассмотрели эволюцию доставки прерываний от устройств в x86 системах (PIC → APIC → MSI), общую теорию и все необходимые термины.
В этой практической части мы рассмотрим как откатиться к использованию устаревших методов доставки прерываний в Linux, а именно рассмотрим опции загрузки ядра:
- pci=nomsi
- noapic
- nolapic
Также мы посмотрим на порядок, в котором ОС смотрит таблицы роутинга прерываний (ACPI/MPtable/$PIR) и какое влияние на него окажет добавление опций загрузки:
- pci=noacpi
- acpi=noirq
- acpi=off
Возможно вы пробовали комбинации из всех этих опций, когда какое-либо устройство не работало из-за проблемы с прерываниями. Разберём, что именно они делают и как они меняют вывод /proc/interrupts.
Читать полностью »
Прерывания от внешних устройств в системе x86. Эволюция контроллеров прерываний
2018-11-20 в 14:00, admin, рубрики: ACPI, apic, MSI, pic, системное программированиеВ данной статье хотелось бы рассмотреть механизмы доставки прерываний от внешних устройств в системе x86 и попытаться ответить на вопросы:
— что такое PIC и для чего он нужен?
— что такое APIC и для чего он нужен? Для чего нужны LAPIC и I/O APIC?
— в чём отличия APIC, xAPIC и x2APIC?
— что такое MSI? В чём отличия MSI и MSI-X?
— как с этим связаны таблицы $PIR, MPtable, ACPI?
Если на какой-то из этих вопросов вам интересно получить ответ или вы просто хотите ознакомиться с эволюцией контроллеров прерываний в системе x86, добро пожаловать под кат.
Связь драйвера и устройства по _HID методу ACPI на примере GPIO контроллера Lynxpoint
2018-11-09 в 17:05, admin, рубрики: ACPI, coreboot, gpio, linux, open source, windows, системное программированиеПостановка задачи
В Linux есть стандартный интерфейс для работы с GPIO через sysfs. Документацию на него можно посмотреть тут.
Если кратко, то в папке "/sys/class/gpio" есть файлы «export» и «unexport». С помощью записи числа X в файл export можно открыть интерфейс в user space для управления GPIOX
# открыть интерфейс в user space для управления GPIO12
$ echo 12 > /sys/class/gpio/export
После открытия интерфейса появится папка /sys/class/gpio/gpioX/ в которой будут такие файлы как «value» или «direction», и путём записи «in» или «out» в файл «direction» и записи 1 или 0 в файл «value» можно управлять выводом GPIO напрямую через командную строку.
# настроить GPIO на вывод
$ echo "out" > /sys/class/gpio/gpio12/direction
# установить 1 на выводе GPIO
$ echo 1 > /sys/class/gpio/gpio12/value
Чтобы команда «echo X > /sys/class/gpio/export» приводила к созданию папки «gpioX», в ядре должен быть зарегистрирован драйвер контроллера GPIO, открывающий интерфейс к линиям GPIO.
Так получилось, что я работаю над портированием coreboot для кастомной платы на базе процессора Intel Haswell i7 [Для тех, кто не знает, coreboot это open source проект по созданию BIOS с открытым исходным кодом (https://www.coreboot.org/)]. В мой процессор встроен южный мост LynxpointLP в котором есть 94 линии GPIO. И я захотел открыть их в sysfs…
Читать полностью »
EDC-устройство для сисадмина: Linux в кармане
2018-02-05 в 7:42, admin, рубрики: ACPI, gpd pocket, laptop, linux, Ubuntu, гаджеты, НоутбукиУ каждого админа, пожалуй, был случай, когда что-то внезапно ломается, а ты где-нибудь в дороге: едешь на машине, садишься на поезд или, банально, сидишь где-то на скамейке в парке и срываться и куда-то нестись желания нет ни малейшего. А чинить надо. Или, как минимум, оценить масштабы пришедшего белого пушного зверька.
Понятно, что можно обойтись смартфоном или планшетом, особенно если нужно только зайти по ssh. Но пользоваться в таких случаях тачскрином, как по мне, — это боль и страдания.

Можно приобрести внешнюю клавиатуру, держатель или подставку для планшета, но я считаю, что проще уж тогда носить с собой полноценный ноутбук. Места займет примерно столько же.
Читать полностью »
OEM-активация Windows Vista-7-8-8.1 под гипервизором QEMU
2015-01-12 в 6:48, admin, рубрики: ACPI, linux, qemu, windows, виртуализация, системное администрированиеOEM-версии ОС от Microsoft, начиная с Vista, используют проверку подлинности, основанную на сличении трех компонентов:
- OEM-сертификата, вшитого в дистрибутив ОС
- бинарного ключа, вшитого в BIOS, а конкретно — в таблицу ACPI SLIC
- лицензионного 25-значного ключа производителя, вшитого в дистрибутив ОС
При успешном сличении трех этих компонентов происходит оффлайн-активация ОС. На корпусе ПК в этом случае имеется наклейка, содержащая лицензионный ключ конкретного экземпляра ОС (а не производителя), которым можно произвести онлайн-активацию ОС в случае ее установки не с образа, предоставляемого производителем ПК, а с «чистого» (MSDN) OEM-образа от Microsoft.
Кроме того, лицензионный ключ конкретного экземпляра ОС может быть вшит в текстовом виде в BIOS, в таблицу ACPI MSDM. В этом случае, при установке ОС ключ будет извлечен из BIOS и вшит в конкретный экземпляр ОС. OEM-наклейка на корпусе ноутбука в этом случае может уже не содержать лицензионный ключ. Такой способ используется для активации Windows 8/8.1
Читать полностью »
Понижение рабочего напряжения процессора, или тюнинг Enhanced Intel SpeedStep
2014-07-01 в 6:55, admin, рубрики: ACPI, cpu, dsdt, freebsd, linux, Процессоры, энергосбережение, метки: ACPI, cpu, dsdt, freebsd, linux, энергосбережениеВ современных десктопных и (в особенности) мобильных процессорах применяется целый рад энергосберегающих технологий: ODCM, CxE, EIST и др. Сегодня нас будет интересовать, пожалуй, самая высокоуровневая из них: гибкое управление частотой и напряжением процессорного ядра во время работы — Cool 'n' Quiet, PowerNow! у AMD и Enhanced SpeedStep (EIST) у Intel.
Чаще всего пользователю компьютера или ноутбука достаточно просто включить (чаще — не выключать) поддержку той или иной технологии в BIOS и/или операционной системе — никакой тонкой настройки обычно не предусмотрено, хотя, как показывает практика, она может оказаться весьма полезной. В этой статье я расскажу о том, как можно управлять рабочим напряжением ядра процессора из операционной системы (на примере Intel Pentium M и FreeBSD), и зачем это может понадобиться.
Несмотря на большое количество руководств, редко где встречается обстоятельное описание технологии Enhanced SpeedStep с точки зрения операционной системы (а не конечного пользователя), особенно на русском языке, поэтому значительная часть статьи посвящена деталям реализации и носит в некоторой степени теоретический характер.
Надеюсь, статья окажется полезной не только пользователям FreeBSD: мы также немного коснемся GNU/Linux, Windows и Mac OS X. Впрочем, в данном случае конкретная операционная система имеет второстепенное значение.
Читать полностью »
Wake On Lan после сбоя питания (или из состояния G3)
2013-12-21 в 19:59, admin, рубрики: ACPI, initrd, linux, WOL, Железо, Сетевые технологии, метки: ACPI, initrd, linux, WOLWake-on-LAN (WOL; в переводе с англ. — «пробуждение по [сигналу из] локальной сети») — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов. wiki
И все бы хорошо, если бы не одно но. После сбоя питания ваш компьютер не включится.
Согласитесь, это будет «приятной» неожиданностью, особенно если вы находитесь за пару тысяч километров от него.
Одно из решений написано здесь, но оно аппаратно-программное, а ведь можно обойтись без дополнительного железа.
Читать полностью »
Управляем вентилятором ноутбука через DSDT в Linux и не только
2013-01-11 в 1:00, admin, рубрики: ACPI, dsdt, linux, Железо, охлаждение, метки: ACPI, dsdt, охлаждениеНе знаю почему, но я всегда воспринимал системы охлаждения в ноутбуках как некий закрытый черный ящик. Тупость алгоритмов, по которым вентилятор начинал надрывно завывать при еще вполне холодном процессоре, изрядно раздражала во многих ноутбуках, но мне казалось, что все параметры там производители прибили гвоздями и поменять их можно разве что расковыряв BIOS или вообще только вставив какие-нибудь регулируемые резисторы в нужных местах. Ни тем, ни другим мне заниматься совершенно не хотелось, поэтому я об никогда всерьёз даже не задумывался.
Нет, конечно, я слышал про всякие программы, которые могут вмешиваться в управление охлаждением и вроде кто-то ими успешно пользуется, но лично мне с ними вечно не везло, точнее не везло с железом, на котором я пытался их завести. Например, какое-то время назад я пробовал настроить fancontrol на довольно старом ноутбуке HP nc8430 с Убунтой. В итоге, известный скрипт sensors-detect не смог найти ни одного вентилятора в системе, а без этого fancontrol не работает. На разных формуах периодически появляются люди с похожими проблемами, но никто им толком помочь не может.
Тогда я в очередной раз забросил эту тему и вернулся к ней только на днях, когда читал обзоры подыскивая себе новый ноутбук и уже вроде бы выбрал почти всем хороший Sony S15, как опять в одном из обзоров читаю про него, что вентилятор в нем вообще не останавливается никогда, даже когда точно можно. Вечно, пусть и несильно, шумящий ноутбук я больше не хочу, а выбирать как всегда особо не из чего, учитывая, что надо 15", что TN матрицу я тоже больше не хочу, и бюджет ограничен. Ну сами знаете как оно бывает. Может быть на нем все-таки заведется fancontrol и все будет хорошо, но а если нет? Никаких отчетов по его установке на этот ноутбук найти не удалось. Это побудило меня еще раз копнуть тему программного управления вентиляторами и пройти довольно непростой, но очень увлекательный квест.
Читать полностью »
