URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 62159
[ Назад ]

Исходное сообщение
"Не выключается питание"

Отправлено pmd , 26-Ноя-05 18:56 
Не выключается компьютер после нажатия кнопки POWER на системном блоке.
Блок питания АТХ. Система довольно старая: PII-300 + 440LX (чипсет). ACPI в биосе я не нашел, только АРМ.

Система FreeBSD5.4, ядро свое. В ядре apm включен:
device apm

в NOTES следующее:
device        apm
hint.apm.0.flags="0x20"

В /etc/rc.conf следующее:
apm_enable="YES"
apmd_enable="YES"

При загрузке пишет следующее:
apm0: <APM BIOS> on motherboard
apm0: found APM BIOS v1.2, connected at v1.2

Если выключать при помощи "shutdown -p now" то все отлично, а вот если нажать на кнопку выключения питания то система сразу вырубается без выключения.
Юзера могут отключать сервер только кнопкой питания. Другого способа нет.

Где копать подскажите? Как включить эту кнопку.
Спасибо всем кто откликнулся.


Содержание

Сообщения в этом обсуждении
"Не выключается питание"
Отправлено Doc , 26-Ноя-05 19:41 
>Не выключается компьютер после нажатия кнопки POWER на системном блоке.
>Блок питания АТХ. Система довольно старая: PII-300 + 440LX (чипсет). ACPI в
>биосе я не нашел, только АРМ.
>
>Система FreeBSD5.4, ядро свое. В ядре apm включен:
>device apm
>
>в NOTES следующее:
>device  apm
>hint.apm.0.flags="0x20"
>
>В /etc/rc.conf следующее:
>apm_enable="YES"
>apmd_enable="YES"
>
>При загрузке пишет следующее:
>apm0: <APM BIOS> on motherboard
>apm0: found APM BIOS v1.2, connected at v1.2
>
>Если выключать при помощи "shutdown -p now" то все отлично, а вот
>если нажать на кнопку выключения питания то система сразу вырубается без
>выключения.
>Юзера могут отключать сервер только кнопкой питания. Другого способа нет.
>
>Где копать подскажите? Как включить эту кнопку.
>Спасибо всем кто откликнулся.

копать надо в сторону другого компа!

эти старые системы так и работают... :0 у меня тажа петрушка


"Не выключается питание"
Отправлено pmd , 26-Ноя-05 20:33 
А можно присвоить какой нибуть клавише (F12 например) команду shutdown -p now? Меня бы и это устроило.

"Не выключается питание"
Отправлено Berk , 27-Ноя-05 03:54 
>А можно присвоить какой нибуть клавише (F12 например) команду shutdown -p now?
>Меня бы и это устроило.


man bind


"Не выключается питание"
Отправлено pmd , 27-Ноя-05 09:57 
Мне нужно делать это когда юзера не залогинились, тоесть из syscons.
Вроде как нажимаешт Ctrl+Alt+Del и перегружаешся. А мне  надо shutdown -o now.

"Не выключается питание"
Отправлено blackcat , 27-Ноя-05 14:58 
>Мне нужно делать это когда юзера не залогинились

собираеш простенькую схемку кнопки в СОМ-порт
и вешаеш в систему демона...
(с) не мои. Работает железобетонно (freebsd 4.11, 5.3)

------------------------КУСЬ...
Subject: Схема простого переключателя для последовательного порта

Схема переключателя с индикатором текущего режима, подключаемого к
последовательному порту и периодически запускающего один из 2 скриптов
в зависимости от режима переключателя.

switcher.c
------------

/*
Simple program to monitor the state of switcher and execute two
different scripts according to the state. Current state
is displayed by LED indicator

DB-9 Connector

    Pin   Signal                   Pin  Signal
-------------------------------------------------------------------
     1    CD   Carrier Detect       6   DSR  Data Set Ready
     2    RXD  Receive Data         7   RTS  Request to Send
     3    TXD  Transmit Data        8   CTS  Clear to Send
     4    DTR  Data Term. Ready     9   RI   Ring Indicator
     5    GND  Signal GND


Circuit diagram
DB9
1   DCD o-------------|------------|
4   DTR o---/\/\/\----|            |
              10k                  \\ switcher
                                    \\
                                   |                              
5   GND o--------------------------|          
                                -------
                                |  -  |
                                | LED |
                                |  +  |
7   RTS o---/\/\/\-----------------|
              1k


Author: Tigran Zakaryan tigr@irphe.am
*/

#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  int fd;
  int dtr_bit = TIOCM_DTR;
  int rts_bit = TIOCM_RTS;
  int flags, cntr_bits;
  int status, oldstat = -1;
  //
  if (argc < 4) {
        fprintf(stderr, "Usage: switcher <device> <script1> <script2>\\n");
        exit(1);
  }
  // Daemonize
  switch(fork()) {
    case 0: // Child
        setsid();
        break;
    case -1: // Error
        exit(1);
    default: // Parent
        exit(0);
  }
  if ((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) {
    exit(1);
  }
  // DTR should be high. Force it
  ioctl(fd, TIOCMGET, &cntr_bits);
  cntr_bits |= dtr_bit;
  ioctl(fd, TIOCMSET, &cntr_bits);
  // Sample the DCD line
  while(1) {
    // Get the status
    ioctl(fd, TIOCMGET, &flags);
    // Calculate present status
    status = (flags & TIOCM_CAR);
    // Did DCD drop to zero? (switch is "ON", light is "ON")
    if (oldstat != 0 && status == 0) {
      // Script1
      system(argv[2]);
      // Switch light "ON"
      ioctl(fd, TIOCMGET, &cntr_bits);
      cntr_bits |= rts_bit;
      ioctl(fd, TIOCMSET, &cntr_bits);
    }
    // Did DCD come up again? (switch is "OFF", light is "OFF")
    if ((oldstat == 0 && status != 0) || (oldstat == -1 && status != 0)) {
      // Script2
      system(argv[3]);
      // Switch light "OFF"
      ioctl(fd, TIOCMGET, &cntr_bits);
      cntr_bits &= ~rts_bit;
      ioctl(fd, TIOCMSET, &cntr_bits);
    }
    // Remember status and sleep for 1 second
    oldstat = status;
    usleep(1000000);
  }
  // Never happens
  return(0);
}


Makefile
-----------

CC=g++

all:        switcher

switcher:    switcher.c
        $(CC) -o switcher switcher.c
        chmod 700 switcher

clean:
        rm -f *~ core switcher


"Не выключается питание"
Отправлено TMN , 27-Ноя-05 16:12 
Встречный вопрос, добавление в ядро device apm + пару строчек в rc.conf, позволит отлавливать нажатие кнопки Power и выполнять shutdown -b now? Уж очень надо.
Честно говоря не понятно:

>в NOTES следующее:
>device  apm
>hint.apm.0.flags="0x20"
>
Где такой - NOTES, за что отвечае?
За помощь, заранее спасибо. Обязательно посмотрю man band, не разу не пользовался...


"Не выключается питание"
Отправлено lavr , 27-Ноя-05 19:36 
>Не выключается компьютер после нажатия кнопки POWER на системном блоке.
>Блок питания АТХ. Система довольно старая: PII-300 + 440LX (чипсет). ACPI в
>биосе я не нашел, только АРМ.
>
>Система FreeBSD5.4, ядро свое. В ядре apm включен:
>device apm
>
>в NOTES следующее:
>device  apm
>hint.apm.0.flags="0x20"
>
>В /etc/rc.conf следующее:
>apm_enable="YES"
>apmd_enable="YES"
>
>При загрузке пишет следующее:
>apm0: <APM BIOS> on motherboard
>apm0: found APM BIOS v1.2, connected at v1.2
>
>Если выключать при помощи "shutdown -p now" то все отлично, а вот
>если нажать на кнопку выключения питания то система сразу вырубается без
>выключения.
>Юзера могут отключать сервер только кнопкой питания. Другого способа нет.
>
>Где копать подскажите? Как включить эту кнопку.
>Спасибо всем кто откликнулся.


1) кнопку надо держать если ATX корпуса
2) использовать ЧТО-ТО одно: либо apm (apmd -> /etc/apmd.conf), либо
acpi - вместе нельзя, если используется apm, убедиться что acpi ->
disable
3) почему не попробовать acpi? да, факт известный что старые PC лучше
с apm работают, а новые ("новые" BIOS) лучше с ACPI

man apm
man 4 apm
man acpi