当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux 系统关机后电源无法关闭的解决办法

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

Unix/Linux 中的 Linux 系统关机后电源无法关闭的解决办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 82 ::
收藏到网摘: n/a

如果一些主板在关机之后电源不是自动关闭,需要手动关闭电源,请在grub里加上:

引用:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
    root (hd0,7)
    kernel /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/1234 rhgb quiet acpi=force
    initrd /boot/initrd-2.6.23.1-42.fc8.img
只要加上红色的那句话就可以正常关机。 具体原因分析如下:

Kernel 起来以后会执行 arch/i386/kernel/setup.c
引用:
void __init setup_arch(char **cmdline_p)
{
    unsigned long max_low_pfn;
    paravirt_post_allocator_init();
    dmi_scan_machine();
}
Dmi_scan_machine() 会从BIOS 里面获取DMI 支持的信息。ACPI driver 会通过
引用:
static int __init blacklist_by_year(void)
{
    int year = dmi_get_year(DMI_BIOS_DATE);
    /* Doesn't exist? Likely an old system */
    if (year == -1) {
        printk(KERN_ERR PREFIX "no DMI BIOS year, "
            "acpi=force is required to enable ACPI\n"
);
        return 1;
    }
    /* 0? Likely a buggy new BIOS */
    if (year == 0) {
        printk(KERN_ERR PREFIX "DMI BIOS year==0, "
            "assuming ACPI-capable machine\n" );
        return 0;
    }
    if (year < CONFIG_ACPI_BLACKLIST_YEAR) {
        printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), "
               "acpi=force is required to enable ACPI\n",
               year, CONFIG_ACPI_BLACKLIST_YEAR);
        return 1;
    }
    return 0;
}
来获取信息,一旦dmi_get_year 取到的DMI 信息是不支持ACPI 的话,就会打印红色的那部分信息。

然后内核认为ACPI不支持,最终导致机器不能通过ACPI 关机。