Acpid linux что это

acpid

acpid2 is a flexible and extensible daemon for delivering ACPI events. When an event occurs, it executes programs to handle the event. These events are triggered by certain actions, such as:

  • Pressing special keys, including the Power/Sleep/Suspend button
  • Closing a notebook lid
  • (Un)Plugging an AC power adapter from a notebook
  • (Un)Plugging phone jack etc.

Contents

Installation

Install the acpid package. Then start/enable acpid.service .

Configuration

acpid comes with a number of predefined actions for triggered events, such as what should happen when you press the Power button on your machine. By default, these actions are defined in /etc/acpi/handler.sh , which is executed after any ACPI events are detected (as determined by /etc/acpi/events/anything ).

The following is a brief example of one such action. In this case, when the Sleep button is pressed, acpid runs the command echo -n mem >/sys/power/state which should place the computer into a sleep (suspend) state:

Unfortunately, not every computer labels ACPI events in the same way. For example, the Sleep button may be identified on one machine as SLPB and on another as SBTN.

To determine how your buttons or Fn shortcuts are recognized, run the following command:

Now press the Power button and/or Sleep button (e.g. Fn+Esc ) on your machine. The result should look something this:

If that does not work, run:

Then press the power button and you will see something like this:

The output of acpi_listen is sent to /etc/acpi/handler.sh as $1, $2 , $3 & $4 parameters. Example:

As you might have noticed, the Sleep button in the sample output is actually recognized as SBTN, rather than the SLPB label specified in the default /etc/acpi/handler.sh . In order for Sleep function to work properly on this machine, we would need to replace SLPB) with SBTN).

Using this information as a base, you can easily customize the /etc/acpi/handler.sh file to execute a variety of commands depending on which event is triggered. See the #Tips and tricks section below for other commonly used commands.

Alternative configuration

By default, all ACPI events are passed through the /etc/acpi/handler.sh script. This is due to the ruleset outlined in /etc/acpi/events/anything :

While this works just fine as it is, some users may prefer to define event rules and actions in their own self-contained scripts. The following is an example of how to use an individual event file and corresponding action script:

As root, create the following file:

Now create the following file:

Make the script executable:

Finally, reload the acpid.service to get acpid to recognize the changes to these files.

Using this method, it is easy to create any number of individual event/action scripts.

Читайте также:  Что делать если mac os зависает

Tips and tricks

Example events

The following are examples of events that can be used in the /etc/acpi/handler.sh script. These examples should be modified so that they apply your specific environment e.g. changing the event variable names interpreted by acpi_listen .

To set the laptop screen brightness when plugged in power or not (the numbers might need to be adjusted, see /sys/class/backlight/acpi_video0/max_brightness ):

Enabling volume control

Find out the acpi identity of the volume buttons (see above) and substitute it for the acpi events in the files below.

Enabling backlight control

Similar to volume control, acpid also enables you to control screen backlight. To achieve this you write some handler, like this:

and again, connect keys to ACPI events:

Enabling Wi-Fi toggle

You can also create a simple wireless-power switch by pressing the WLAN button. Example of event:

and its handler:

Getting user name of the current display

To run commands depending on Xorg, defining the X display as well as the MIT magic cookie file (via XAUTHORITY) is required. Latter is a security credential providing read and write access to the X server, display, and any input devices (see xauth(1) ).

See [3] for an example function when using xinitrc.

Источник

Управление питанием и настройки acpi

Трудно приходится линуксоидам, не имеющим DE, а сидящим исключительно на WM — всё, что в полноценном Desktop Environment ( окружении рабочего стола или как это лучше обозначить на великом и могучем? ) поставляется и работает «из коробки» в WM нужно подбирать и настраивать. Вот и автором сего поста ранее были использованы элементы xfce для таких вещей как управление питанием, регулировка громкости звука и яркости экрана. Но вступило что-то в голову: ведь в моей системе всегда установлены acpi и laptop-mode-tools, так почему бы не обучить их выполнять их же непосредственные обязанности: делать всё то, для чего раньше нужны были xfce4-volumed и xfce4-power-manager?

Для обучения нам понадобятся пакеты laptop-mode-tools , acpi , acpid . Acpid должен быть запущен.

Уровень яркости экрана

Дописать в /etc/default/grub строки:

Лезем в acpi. Создайте файлы со следующим содержанием.

Для увеличения яркости:

Для уменьшения яркости:

В bl_device замените inel_backlight на своё значение в зависимости от используемой видеокарты. Также стоит выяснить устраивающее вас значение, на основе которого будет увеличиваться или уменьшаться яркость экрана. У автора это значение = 200.

Как найти подходящее значение? Посмотрите какая цифра стоит сейчас. Если вы ничего ещё не настраивали, она должна отражать максимально допустимое значение:

Теперь поиграйте со значениями, чтобы выбрать нужный шаг:

Посмотрите как будет изменяться яркость экрана при разных значениях, если при добавлении 10 единиц вы практически не чувствуете разницы, добавьте ещё 50-100 единиц. Какой шаг покажется оптимальным, тот и оставьте.

Теперь укажем acpi использовать наши скрипты:

и сделаем эти скрипты исполняемыми:

Чтобы автоматически подбирать яркость при работе от аккумулятора или же сети, установим laptop-mode-tools:

и немного изменим его настройки:

Разумеется, значения 700/2000/3000 и путь /sys/class/backlight/intel_backlight/brightness должны быть заменены на ваши значения.

Читайте также:  Steam ��� linux fedora

Автогибернация при критическом уровне заряда батареи

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

Для этих целей также будем использовать функционал laptop-mode.

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

где /dev/sda5 — ваш swap-раздел Кроме того, в случае с archlinux следует добавить хук suspend в /etc/mkinitcpio.conf :

и пересобрать initrd:

Регулировка звука

Для этого снова обратимся к скриптам acpi, как и в случае с управлением яркостью дисплея.

Делаем скрипты в actions исполняемыми:

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

Acpi и события клавиш

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

Похоже, управление этими событиями тоже берёт на себя laptop-mode-tools ( только пока неясно, в каком модуле/скрипте лежат эти настройки), поскольку в /etc/acpi/handler.sh каких-либо действий на события не назначено.

Но таки рассмотрим как настраивать то или иное событие.

Ответственен за эти шаманские действа вышеупомянутый handler.sh (или default.sh в зависимости от используемого дистрибутива), где и прописываются настройки. В случае, если вам хочется использовать не команду, а скрипт, расположите его в отдельном файле, подобно тому, как выше настраивалось управление яркостью дисплея и уровнем громкости .

Пример из дефолта:

button/lid указывает на управление закрытием/открытием крышки ноутбука, пока здесь нет ничего интересного.

Пример с воспроизведением звукового файла при закрытии/открытии крышки ноутбука:

То есть для настройки события нужно добавить его команду в соответствующее поле ( здесь после logger ‘LID closed’ ). Так, действие при открытии крышки нужно будет вписать после logger ‘LID opened’ .

  • button/power — события, связанные с кнопкой управления питанием
  • logger ‘PowerButton pressed’ — когда клавиша нажата
  • button/sleep — сон, если подобная кнопка/клавиша имеется
  • ac_adapter — события, связанные с подключением/отключением адаптера питания
  • logger ‘AC unpluged’ — когда адаптер отключен
  • logger ‘AC pluged’ — когда адаптер подключен
  • battery — батарея ноутбука
  • button/lid — крышка ноутбука

Для перевода в ждущий/спящий режимы можно использовать скрипты laptop-mode-tools из /usr/share/laptop-mode-tools/module-helpers : pm-hibernate и pm-suspend .

Для выключения питания при закрытии крышки достаточно добавить в /etc/acpi/actions/lm_lid.sh строку:

Помимо всего вышеописанного мы можем контролировать парковку головок жёсткого диска. Дабы отключить парковку совсем пропишите в /etc/laptop-mode/laptop-mode.conf :

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

Источник

команда acpid в Linux с примерами

Демон acpid обеспечивает интеллектуальное управление питанием в системе и позволяет запрашивать состояние батареи и конфигурации, поддерживая расширенный интерфейс конфигурации и питания (ACPI). События ACPI уведомляются программами пользовательского пространства с помощью acpid.
Спецификация ACPI (Advanced Configuration и Power Interface) позволяет операционной системе контролировать количество энергии, которое она предоставляет каждому устройству или периферийному устройству, подключенному к системе. Это заставляет операционную систему отключать определенные устройства, когда они больше не используются, например монитор, обеспечивая стабильное и эффективное управление питанием.
Демон acpid по умолчанию работает как фоновый процесс и должен запускаться во время загрузки системы . Всякий раз, когда происходит событие, он выполняет программы для обработки события. Это происходит при открытии файла событий (по умолчанию / proc / acpi / event) и считывании всех строк. Когда строка получена (событие), она проверяет список правил, чтобы выполнить то, которое соответствует событию. Если существует файл блокировки (по умолчанию / var / lock / acpid), он игнорирует все входящие события ACPI.
Простые файлы конфигурации используются для определения правил. Он просматривает каталог конфигурации (по умолчанию / etc / acpi / events), и все файлы, которые не начинаются с точки (‘.’) Или заканчиваются тильдой (

Читайте также:  Alt linux как установить rpm

), анализируются. Каждый файл должен определять событие и соответствующее действие. Пустые строки или строки с первым символом в виде хэша (‘#’) игнорируются.

В каждой строке есть три токена : ключ , буквальный знак равенства и значение .

  • Ключ может содержать до 63 символов, регистр не учитывается, но пробелы имеют значение.
  • Значение может содержать до 511 символов, оно чувствительно к регистру и пробелам. Значение события состоит из регулярного выражения, и события сопоставляются с ним.

Команда установки:

Сводка:

Параметры:

  • c, –confdir каталог
    Изменяет каталог, в котором acpid ищет файлы конфигурации правил. Каталог по умолчанию / etc / acpi / events.
  • C, –clientmax число
    Изменяет максимальное количество подключений некорневого сокета, которое может быть сделано к сокету acpid. По умолчанию 256.
  • d, –debug
    Увеличивает уровень отладки acpid на единицу. Он запускается на переднем плане, если уровень отладки отличен от нуля, и регистрируется в stderr и обычном системном журнале.
  • e, –eventfile filename
    Изменяет файл события. Acpid читает события из него. Файл по умолчанию / proc / acpi / event.
  • f, –foreground
    Сохраняет кислотность на переднем плане, не разветвляясь при запуске.
  • l, –logevents
    Сообщает acpid регистрировать информацию, связанную со всеми событиями и действиями.
  • L, –lockfile имя файла
    Изменяет файл блокировки, используемый для остановки обработки событий. Файл по умолчанию / var / lock / acpid.
  • g, –socketgroup groupname
    Изменяет групповое владение доменным сокетом. Acpid публикует события для него.
  • м, режим сокет-режима
    Изменяет разрешения сокета домена UNIX. По умолчанию 0666.
  • s, –socketfile filename
    Изменяет имя сокета домена UNIX, который открывается с помощью acpid. По умолчанию используется /var/run/acpid.socket.
  • S, –nosocket имя файла
    Говорит acpid не открывать сокет домена UNIX. Это отменяет параметр -s, а также отменяет все остальные параметры сокета.
  • p, –pidfile filename
    Указывает acpid использовать указанный файл в качестве pid-файла. Если файл существует, он будет удален и перезаписан. По умолчанию используется /var/run/acpid.pid.
  • v, –версия
    Распечатывает информацию о версии и завершает работу.

ч, –помощь
Показывает помощь и выходы.

Сервисный контроль

    Используйте служебную утилиту для управления сервисом acpid:

Для запуска услуги:

Вам будет предложено для аутентификации.

Чтобы остановить службу:


Вам будет предложено для аутентификации.

Проверьте, запущено или остановлено обслуживание:

Источник

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