LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: hj_18

关机不能断电

[复制链接]
发表于 2004-11-11 19:40:47 | 显示全部楼层
用这个命令看看

halt -p
发表于 2004-11-11 19:41:16 | 显示全部楼层
dell 的本本只能用acpi吧,我是8500
发表于 2004-11-12 11:17:11 | 显示全部楼层

我的理解~

上面时我第一次发贴(在LinuxSir上面),谢谢大家都我这么热心的帮助!

综合kite的说法,以及自个在google上的搜索。我把自己的理解总结如下:

pc机两种电源管理标准:apm和acpi

一、关于apm 和 acpi的一些概念

1)、apm:Advanced Power Management 是一种基于 bios 的电源管理标准,这种电源管理方式主要由bios实现。
2)、acpi:Advaned Configuration and Power Interface,是为了弥补apm的不足而产生的。它主要将电源管理的主要执行者由bios转换成为操作系统。它有以下几种模式:
    S0 正常。
    S1 CPU停止工作。
    S2 CPU关闭。
    S3 除了内存外的部件都停止工作。
    S4 内存信息写入硬盘,所有部件停止工作。
    S5 关闭

3)、apm 和 apm 的比较:
    apm 1.0 & 1.1:由bios执行电源管理;
    apm 1.2:由操作系统定义电源管理时间,由bios负责执行;
    acpi:bios收集硬件信息,定义电源管理方案;由操作系统负责执行;
    apm 是一种软件解决方案,因此与操作系统有关,而acpi是工业标准,包括了软件和硬件方面的规范。

二、Linux 下的apm 和 acpi
     针对APM和ACPI两种不同的标准,linux内核提供了两个不同的模块来实现电源管理功能,这就是apm和acpi。需要注意,apm和acpi是互相冲突的两个模块,用户在同一时间内只能加载其中之一,如果当他们在加载的时候发现二者之一已经加载,就会自动退出。

用户态Daemo
     为了让linux内核中的电源管理功能够更好的被利用,我们还需要用户态daemon程序的配合。针对APM和ACPI,分别有apmd和acpid两个不同软件。他们实现的功能比较类似,都是允许用户预先定义某些策略,然后跟踪电源状态,执行特定的操作。

参考资料来自:
http://www.cfanclub.net/new_cnxy/200406/040603015.htm
http://www-900.ibm.com/developer ... l-power/index.shtml


基于上面的理解,我做了下面的实验:(实验环境太坏了,因为公司的电脑基本都是1999年买的,你可以想像下 CII400啊 )
1、打开 apm 电源管理模块,我是直接在/etc/rc.d/rc.modules里面打开/sbin/modprobe apm选项的。并且保证/etc/rc.d/rc.apmd可执行。重新启动后会看到
    Starting APM daemon : /usr/sbin/apmd
这条启动信息,如果太会可以用dmesg来查看,此时用ps ax 可以看到apmd守护进程。
结果:可以关机,我是在字符下用shutdown -h now关机,X windows 没有试过。
(ps : 我发现我本本上也是同样的配置,我今天翻了下说明书,又上网查了下, 是DELL Inspiron 2650 NG2000T ,2002年出的,P4 1.8G ,我估计对acpi的支持可能没有。这个实验在她下面就是无法通过,shutdown -h now 之后会提示ower off.必须手动关闭电源

2、关于kite说的在lilo.conf 里面关闭acpi的说法,我也试过(因为前面已经可以关机了,我就把apm现禁调的说──肯定不可以的啦,apm都关了你拿什么管理电源_0).我实在不知道在打开apm后在做这个实验可以说明什么,因为都是成功的。

3、osfans 说的 chmod +s /sbin/halt 是不行的。

还有一个问题:dyte100说的的那一段是不是/boot/config这个文件???
我在这个文件里面着到下面这段:

CONFIG_PM=y
CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# ACPI Support
#
# CONFIG_ACPI is not set

这一段是不是说明我的内核没有加入对acpi的支持,而且apm需要手工设置才能启用?
发表于 2004-11-12 13:09:08 | 显示全部楼层
是的,我查看的是/boot/config文件。内核装的是slackware编好的2.6.7包
# ll config
lrwxrwxrwx  1 root root 20 2004-10-25 00:58 config -> config-generic-2.6.7

# dmesg |grep apm
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
apm: overridden by ACPI.
# dmesg |grep acpi
#
发表于 2004-11-12 19:14:02 | 显示全部楼层

回复: 我的理解~

最初由 AJoe 发表
[
还有一个问题:dyte100说的的那一段是不是/boot/config这个文件???
我在这个文件里面着到下面这段:

CONFIG_PM=y
CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# ACPI Support
#
# CONFIG_ACPI is not set

这一段是不是说明我的内核没有加入对acpi的支持,而且apm需要手工设置才能启用?


你的内核没有编入acpi支持!所以肯定没有acpi可用。我想2002年的机器应该可以支持acpi吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表