Solaris 11 x86 отключить отключение по кнопке питания ACPI

Я не знаю, о чем вы спрашиваете, но есть несколько простых способов манипулирования строками.

Например, вы можете добавить суффикс .oк каждому из ваших базовых имен с помощью OBJS = $(addsuffix.o,$(CC_BASENAMES)).

Вы можете преобразовать один суффикс в другой, например $(OBJS:.o=.cc). Так что, возможно, вам нужен Makefile, такой как

CC_BASENAMES := Source15 Source32 Source41
OBJS = $(addsuffix.o,$(CC_BASENAMES))
SRCS = $(OBJS:.o=.cc)

fred.o: $(SRCS)
        cc $(SRCS) -o fred.o

Или, что чаще, вы сначала определяете SRCS и получаете от него OBJS.


Если вы хотите, чтобы правило зависимости применялось только к некоторым целям, вы можете использовать цели :цель -шаблон :предварительное требование -шаблоны , т.е.

$(OBJS): %.o: %.cc

См. gnu make .

0
21.01.2020, 16:16
2 ответа

Я нашел решение.

Оказывается, демон с именем powerd (1M)будет прослушивать событие кнопки питания, poll(2)отправляя /dev/power_buttonустройство.

Интересно, что он также будет проверять gnome-power-managerпроцесс и пропускать завершение работы, если этот процесс существует; это объясняет, почему выключение не происходит, когда запущен GNOME (, рабочий стол по умолчанию в Solaris 11 ). Ссылка:https://github.com/illumos/illumos-gate/blob/80148899834a4078a2bd348504aa2d6de9752837/usr/src/cmd/power/powerd.c#L1188

powerd (1M)запускается pmconfig (1M ), который, в свою очередь, запускается службой system/powerSMF; чтобы решить проблему, я просто отключил эту службу, и все заработало нормально:

svcadm disable system/power
1
01.04.2020, 05:19

Если у вас Solaris 10 или 11, вы можете полностью отключить ACPI с помощью eeprom(8), и это единственный известный мне способ. В мануале (на моей машине 11.4 )написано:

   acpi-user-options

       A configuration variable that controls the use of Advanced Configu-
       ration  and  Power  Interface (ACPI), a power management specifica-
       tion. The acceptable values for this variable depend on the release
       of the Solaris operating system you are using.

       For  all  releases  of Solaris 10 and Solaris 11, a value of of 0x0
       means that there will be an attempt to use ACPI if it is  available
       on the system. A value of 0x2 disables the use of ACPI.
0
28.01.2020, 02:54

Теги

Похожие вопросы