Где я могу подключиться к Linux, чтобы добавить пользовательское программное отключение?
Вот в чем вопрос. Вот почему мне нужно знать:
Я пытаюсь сделать мягкое отключение rapsberry pi. Точнее, я хочу, чтобы пи был выключен (отключен источник питания) при переводе на уровень запуска 0 (он же sudo poweroff
).
Я знаю, что у Pi нет аппаратного обеспечения для этого, поэтому я собираюсь создать специальную электронику, которая будет переключать питание на Pi. Я собираюсь использовать контакт GPIO, который позволит программному обеспечению на пи сигнализировать о моей электронике и переключать (выключать) и иметь кнопку, чтобы снова включить его.
Все идет нормально.
Моя проблема заключается в том, ГДЕ мне разместить код для отправки сигнала через GPIO?
На ум приходят две вещи:
- Может быть, мне следует написать программу и обернуть ее в скрипт в
/etc/init
для использованияsystemd
. - Может быть, мне нужно написать модуль ядра. Но если да, то где/как мне подключиться к последовательности выключения?
Я не могу просто предположить. Если я ошибусь, PI отключится слишком рано и не завершит работу с Linux. Но я провел часы в Google и не нашел документации для этого.
Я знаю, что это возможно, потому что именно это происходит с ACPI. Когда ПК / ноутбук выключается, материнская плата подает сигнал блоку питания, чтобы отключить [большую часть] питания. Что-то в операционной системе (linux) должно вызывать это. Итак, где программа ACPI отключается от последовательности завершения работы в Linux?
pm_power_off()
похоже на место, которое вы ищете. - person Sam Protsenko   schedule 16.07.2017gpio-poweroff
в вашем файле дерева устройств (или в оверлее дерева устройств) после пайки этого GPIO для сброса контакта PM IC, и этого может быть достаточно. - person Sam Protsenko   schedule 16.07.2017pm_power_off
. Ядро вызовет последнюю вещь, которую оно сделает. - person Philip Couling   schedule 17.07.2017