LINUX.ORG.RU

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

fmjs
()

P.S. аварийны бут:

emergency_restart();

советую заглядывать иногда в исходники ядра, перед тем как спрашивать. Смотреть например можно в реализацию функции panic в данном случае.

fmjs
()
Ответ на: комментарий от fmjs

прошу прощения за неверно сформулированный вопрос. меня интересует более общий, независящий от операционки случай, т.е. существует ли возможность программно сэмулировать нажатия кнопок reset и poweroff на корпусе компьютера? грубо говоря, можно ли программно подать сигнал на контакты reset_sw и power_led?

anonymous
()
Ответ на: комментарий от imp

нет, вилку из розетки мне вытаскивать не надо)))

anonymous
()
Ответ на: комментарий от anonymous

> можно ли программно подать сигнал на контакты reset_sw и power_led?

Это пожалуй вряд-ли, но вот это возможно вам поможет:


REBOOT(2)                                        Linux Programmer's Manual                                       REBOOT(2)



NAME
       reboot - reboot or enable/disable Ctrl-Alt-Del

SYNOPSIS
       For  libc4  and libc5 the library call and the system call are identical, and since kernel version 2.1.30 there are
       symbolic names LINUX_REBOOT_* for the constants and a fourth argument to the call:


       #include <unistd.h>
       #include <linux/reboot.h>

       int reboot(int magic, int magic2, int flag, void *arg);

       Under glibc some of the constants involved have gotten symbolic names RB_*, and the library call  is  a  1-argument
       wrapper around the 3-argument system call:

       #include <unistd.h>
       #include <sys/reboot.h>

       int reboot(int flag);

...

       This system call will fail (with EINVAL) unless magic equals LINUX_REBOOT_MAGIC1 (that is, 0xfee1dead)  and  magic2
       equals  LINUX_REBOOT_MAGIC2  (that  is,  672274793).   However,  since  2.1.17  also LINUX_REBOOT_MAGIC2A (that is,
       85072278)  and  since  2.1.97  also   LINUX_REBOOT_MAGIC2B   (that   is,   369367448)   and   since   2.5.71   also
       LINUX_REBOOT_MAGIC2C (that is, 537993216) are permitted as value for magic2.  (The hexadecimal values of these con-
       stants are meaningful.)  The flag argument can have the following values:

fmj
()
Ответ на: комментарий от anonymous

>Re: аварийное завершение в режиме ядра >независящий от операционки случай O_o

Посмотрите arch/i386/mach-generic/mach_reboot.h:mach_reboot(), там программно дергают линию RESET.

С питанием сложнее, на одной только x86 архитектуре 4 способа отключения : apm, acpi, ipmi и voyager. А как сам apm или acpi биос это делает неизвестно, да и наверно очень сильно зависит от материнки.

Лучше воспользуйтесь мощью линукса -- machine_power_off() и machine_restart() будут работать как надо на любой архитектуре. В *BSD наверно тоже есть нечто подобное. А других приличных операционок не существует.

Dr_ZLO
()
Ответ на: комментарий от Dr_ZLO

всем огромное спасибо за ответы, буду копаться)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.