Acpi osi linux grub

Acpi osi linux grub

Дата и время публикации : 2019-19-24 19:00:00 Дата и время модификации: 2019-19-15 11:30:00 —>

Назначение и использование

Интерфейс расширенной настройкой и управлением питанием (англ. Advanced Configuration and Power Interface ) относится к открытой индустриальной спецификации, разработанной Hewlett-Packard, Intel, Microsoft, Phoenix , и Toshiba . В настоящее время широко используется производителями не только для автоматизированного и визуального контроля за работоспособностью аппаратуры, но и в целях обеспечения доступа к расширенным функциям органов управления ввода данными и манупулирования ими.

Сегодня Linux выполняется на вычислительных машинах, например на нетбуке/ноутбуке или нетпаде, двух категорий тех, что:

  • протестированы производителем на совместимость с Linux;
  • никогда не тестировались с ним, но где предполагается его устанавливать взамен оригинальной ОС; например MS-Windows, который составляет львиную часть.

Поэтому, т.к. BIOS или UEFI ищет определенные идентификаторы выбранной производителем базовой ОСИ»-зла», например ноутбука, необходимо ПЕРЕДАТЬ в опциях ядру Linux так называемую строку OSI (англ. OSI string ), которая идентифицирует какие вызовы ACPI , набор которых для каждой ОС определяется в отдельности, будут использоваться для обработки аппаратных средств. В таблице 2.1 приводятся значения OSI string для назначения базовой ОС.

Таблица 1.1

OSI String Базовая ОС
Windows 2009 Windows 7, Win Server 2008 R2
Windows 2012 Windows 8, Win Server 2012
Windows 2015 Windows 10
Windows 2016 Windows 10, version 1607
Windows 2017 Windows 10, version 1703
Windows 2017.2 Windows 10, version 1709
Windows 2018 Windows 10, version 1803
Windows 2018.2 Windows 10, version 1809
Windows 2019 Windows 10, version 1903

При этом нужно помнить, что информацию о базовой ОС производитель не всегда указывает в настройках BIOS, как показано на рисунке 2.1

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

Для подыграша ACPI в ядре Linux к базовой ОС, выбранной для работы с ACPI , необходимо в опциях ядра прописать опцию acpi_osi=’OSI String’ , пример использование которой приводится в дампе 2.1 для базовой ОС – MS-Windows 10

При этом, если в значении к acpi_osi перед ‘OSI String’ указать восклицательный знак (!), произойдет отмена всех известных строк OSI , а за тем будет осуществлен подыгрыш к базовой ОС MS-Windows 10

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

  • ac (состояние разъема питания — подключен (turn in) / не подключен [turn in] )
  • battery (статус батареи)
  • button (захват событий кнопок подобных LID или POWER BUTTON)
  • dock (состояние докстанции)
  • fan (состояние вентиляторов)
  • sbs (смарт-статус батареи)
  • thermal (статус (измерения)температурных датчиков)
  • video (статус видеоустройств)

Которые могут быть подключаемыми или наоборот встроенными в ядро. Для посмотра какие модули доступны следует выполнить команду, результат которой показан в дампе 2.2

На уровне пользователя, в Debian/linux существует пакеты, которые сообщают ту или иную информацию и реализуют доступ к функциям управления ACPI . Перечислим основные из них.

Пакет acpi – показывает информацию об устройствах ACPI ,

Пакет acpi-call-dkms – модуль ядра, которые позволяют обращаться к методам ACPI

Пакет acpi-support – содержит скрипты, реагирующие на различные события ACPI

Пакет acpi-fakekey – утилита генерации ключевых псевдособытий ACPI .

Установка пакетов показана в дампе 2.3

Читайте также:  Linux терминальный клиент для windows

Пример отображения текущей информации о состояния батареи, о подключении адаптера к электрической сети, текущей температуры и обдува процессоров показан в дампе 2.4

В дампе 2.4 показан ситуация, которая происходила за минуту до аварийного отключения питания из-за полного разряда ноутбука. При этом температурные датчики показывали температуру в норме, вентиляторы не работали и были отключены.

Сайт разработан в соответствии с рекомендациями консорциума W3C для языка разметки HTML5.

Источник

Что делают параметры ядра acpi_osi = linux и acpi_backlight = vendor?

У меня были проблемы с контролем яркости экрана на моем ноутбуке, и я исправил его, добавив acpi_osi=linux и acpi_backlight=vendor в файл grub.cfg . Я хотел бы знать, что означают эти параметры и почему они работают.

3 ответа

Чтобы понять, что делает acpi_osi , вам примерно нужно знать, как работает ACPI. ACPI состоит из так называемых таблиц, которые BIOS загружает в оперативную память до запуска операционной системы. Некоторые из них просто содержат информацию о важных устройствах на материнской плате в фиксированном формате, но некоторые, такие как таблица DSDT, содержат код AML. Этот код выполняется операционной системой и предоставляет ОС древовидную структуру, описывающую многие устройства на материнской плате и вызываемые функции, которые выполняются ОС, когда, например, энергосбережение включено. Код AML может запросить ОС, какая ОС, вызывая функцию _OSI . Это часто используется поставщиками для создания обходных решений, например. вокруг ошибок в некоторых версиях Windows.

Поскольку многие поставщики оборудования тестируют свои продукты с последней версией Windows (в то время), «обычные» коды кода без обходных решений часто бывают ошибочными. Из-за этого Linux обычно отвечает да, когда его спрашивают, является ли это Windows. Linux также ответила да, когда его спросили, является ли это «Linux», но это заставили поставщиков BIOS работать с ошибками или отсутствовать функциональность в последней версии ядра Linux (в то время) вместо того, чтобы открывать отчеты об ошибках или предоставлять исправления. Когда эти ошибки были исправлены, обходные решения вызвали ненужные нарушения производительности и другие проблемы для всех последующих версий Linux.

acpi_osi=Linux заставляет Linux ответить да снова, когда его спросят, является ли это «Linux» кодом ACPI, что позволяет коду ACPI разрешать обходные пути для Linux и /или отключить обходные пути для Windows.

acpi_backlight=vendor изменяет порядок, в котором проверяются драйверы ACPI для подсветки. Обычно Linux будет использовать общий video драйвер, когда ACPI DSDT предоставляет устройство подсветки, требующее стандартную совместимость, и будет проверять только другие драйверы конкретного поставщика, если такое устройство не найдено. acpi_backlight=vendor отменяет этот порядок, поэтому сначала проверяются драйверы конкретного поставщика.

Итак . вы пытались это сделать Google?

[. ] BIOS обычно отключает функциональность, если Windows не обнаружена [. ] по умолчанию ядро ​​отвечает false, когда спрошено, работает ли Linux. acpi_osi=Linux указывает ядру для ответа true (см. drivers/acpi/osl.c ) Кажется, что вам нужно скажите BIOS правду.

acpi_backlight=vendor предпочитает драйвер конкретного поставщика (например, thinkpad_acpi , sony_acpi и т. д.) вместо ACPI video.ko .

η λυση ειναι αυτη την δοκιμασα

Открыть cmd su end sudo

нано /и т.д. /по умолчанию /личинка

, вам понадобятся привилегии root.

Перейдите к строке:

и добавьте параметры

GRUB_CMDLINE_LINUX_DEFAULT = «quiet acpi_osi = Linux acpi_backlight = vendor»

Источник

Загрузка Ubuntu с параметром «acpi = off» grub

Для того, чтобы я загрузился в 12.04, я должен добавить параметр acpi=off в grub . Любые другие параметры, указанные здесь , не позволяют мне загружаться в Ubuntu.

Читайте также:  No buffer space available linux

Мой вопрос прост, что делает установка параметра на acpi=off самом деле?

И что еще важнее — повторная загрузка с acpi=off повреждением или вредом компьютеру в любом случае?

Использование acpi = off отключает вашу расширенную конфигурацию и интерфейс питания временно при загрузке Ubuntu. Если вам нужно добавить, acpi = off чтобы позволить успешной загрузке Ubuntu, это означает, что ACPI на вашем компьютере не совместим с этой версией Ubuntu.

Я не думаю, что использование acpi = off неоднократно разрушает ваш компьютер, потому что он только временно отключает ACPI.

Однако, если вы не хотите добавлять acpi = off параметры при каждой загрузке, вы можете отключить новую карту (BIOS) или отключить ACPI (также из BIOS) . Используйте второй вариант, если вы не можете найти интерфейс новой карты.

Но если у вас Windows, отключение ACPI из BIOS может привести к сбою Windows, и компьютер заставит вас переустановить его . Сделайте это, если у вас есть скрытый раздел восстановления Windows на вашем компьютере.

Я недавно приобрел аппарат HP Envy 17 j053ea, чтобы воспользоваться преимуществами i7 и множеством памяти. В погоне за этим я страдал от многих проблем с этой установкой. Беспроводной не работал, экран «черный экран» во время установки, а затем во время загрузки. Обойти черный экран можно было при загрузке acpi=off , но это, конечно, означало, что ноутбук не зависал, когда я закрывал крышку, что явно не оптимально. После поиска в течение последних двух дней я нашел много хороших статей / объяснений acpi и гораздо лучший вариант:

Затем я обнаружил: нет поддержки ACPI для моего ПК, что я могу сделать? от irrational_john . путь . acpi=ht не работал, но pci=noacpi сделал свое дело. Для вашего оборудования я бы порекомендовал подход Джона к циклу, который он предоставил:

Имея это в виду, abd, чтобы обратиться к «wub’s» .. ответ на пункт выше, как только вы найдете тот, который работает:

Источник

[acpi][мусор]Acer Aspire — отказ на включение

Столкнулся с проблемой acpi — отказ включаться 1\3.Долго мучался, и в конце концов нашел зацепку и нагуглил.Итог — это характерно именно для асеров аспире. Решением стало добавление acpi_osi=!Linux к параметрам загрузки ядра в grub.

Запостил это, чтобы этому нашли применение, когда просил тут помощи по этой проблеме я был не один, просили сообщить если решение найду.

Извиняюсь канешь, но АП.

Есть вопрос: чем отличается acpi_osi=!Linux и acpi_osi=Linux ?

Знал, сказал бы, но ситуация изменилась только с !Linux.

Ндэ. Гугл тоже молчит по этому поводу. Может, кто из здешних обитателей подскажет?

тут треды по дате сортируются

Простите, не понял. Расшифруйте.

Hi, russians!
This argument tells the kernel to lie to the ACPI bios and tell it that it is something OTHER than Linux

Есть вопрос: чем отличается acpi_osi=!Linux и acpi_osi=Linux ?

В DSDT обязательно присутствует метод определяющий ось установленную на машине, и в соответствии с этим включает, либо не включает конкретные ACPI фичи. Первый случай выглядит примерно так:

Получилось немного сумбурно 🙂

С уважением, Ingmar_14.

Очень популярно и развёрнуто. Благодарю.
А не могли бы Вы объяснить ещё работу функции acpi=copy_dsdt (извиняюсь за оффтоп)? А то без этой опции у меня на нетбуке проблемы. И вообще, эта опция — это «костыль»?

А не могли бы Вы объяснить ещё работу функции acpi=copy_dsdt (извиняюсь за оффтоп)?

Я полагаю, что используя эту директиву мы делаем всё то же самое, но используя пофиксенный DSDT(нами или кем-то ещё). То есть, применяя acpi_osi=«Linux» — к overridden DSDT получаем полностью рабочую схему ACPI. Тогда, как в случае с нефиксенной DSDT от порезанного vendor’ ом BIOS — acpi_osi=«Linux» нам ничего не даёт (почему см. пред. пост).

Читайте также:  Как заблокировать компьютер windows 10 от детей

С уважением, Ingmar_14.

Где можно посмотреть все режимы ACPI, поэкспериментировать?

Где можно посмотреть все режимы ACPI, поэкспериментировать?

С уважением, Ingmar_14.

Я полагаю, что используя эту директиву мы делаем всё то же самое, но используя пофиксенный DSDT(нами или кем-то ещё). То есть, применяя acpi_osi=«Linux» — к overridden DSDT получаем полностью рабочую схему ACPI. Тогда, как в случае с нефиксенной DSDT от порезанного vendor’ ом BIOS — acpi_osi=«Linux» нам ничего не даёт (почему см. пред. пост).

Не-а. Это не оно. Я использовал acpi=copy_dsdt и в дефолтном ядре Fedor’ы, и с самосборным. Эфеект в обоих случаях схожий: это заставляет не отваливаться wi-fi соединение (чип AR9285). Вот только в дефолтном ядре иногда остаются проблемы, а в кастомном (с моей DSDT) уже нет.
Вот мне и хотелось бы знать, что конкретно делает опция acpi=copy_dsdt? Единственная догадка, которой я могу попытаться объяснить действие этой опции, звучит так: этой командой сообщается ядру скопировать «куда-нибудь себе» таблицу DSDT и использовать уже скопированную DSDT, а не «вытягивать» её каждый раз напрямую из BIOS’а компа (или же оттуда, где она хранится при вкомпиливании оной в ядро).
Если кто сведущ в теме, подтвердите или опровергните моё высказывание. Мне это действительно интересно.

Если по дефолту стояла виста, какой acpi_os указывать по задумке нужно? Потому как мусор не исчес полностью с acpi_os=!Linux.

Что имеется в виду под словом «мусор»? Ошибки в dmesg? Они могут там возникнуть не только из-за DSDT. Недавно выяснилось, что причиной может стать, например видеокарта. А вообще, советую перечитать этот трэд.

carasin, и всё-таки я думаю, что это ничто иное как force override. Глобально есть два способа использования fixed DSDT:
1. Собрать ядро с кастомным DSDT (несколько вариантов как собрать).
2. Использовать initramfs и сделать override «на лету».

На всякий случай можно по этому поводу глянуть здесь, например (хоть я подозреваю, что Вы и так в курсе :)): http://www.lesswatts.org/projects/acpi/overridingDSDT.php

Или, быть может, Вы имели ввиду саму реализацию директивы (код)?

С уважением, Ingmar_14.

Короче, дело обстоит примерно так:
В некоторых ноутах (например, в ряде моделей Toshib’ы) кривой BIOS: он «коробит» DSDT во время обращения ОС к нему для «разруливания» функций ACPI. Т.о., каждый раз, обращаясь за ACPI, ОС получает от «железа» «испорченную» таблицу DSDT. Использованием же опции acpi=copy_dsdt мы говорим ядру скопировать DSDT в начальный момент загрузки в kernel_space до обращений к BIOS’у для «разруливания» функций ACPI. Т.о., в дальнейшем будет использована корректная DSDT из буфера в kernel_space’е.
Насколько я понял, если BIOS кривой и «портит» DSDT, то и при использовании ядра с вкомпиленной кастомной таблицой DSDT без опции acpi=copy_dsdt BIOS всё равно будет «коробить» DSDT.

Использованием же опции acpi=copy_dsdt мы говорим ядру скопировать DSDT в начальный момент загрузки в kernel_space до обращений к BIOS’у для «разруливания» функций ACPI.

То есть force override 🙂

То есть force override 🙂

Но не использовать вместо этой DSDT какую-либо другую.

Источник

Оцените статью