免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1605 | 回复: 1
打印 上一主题 下一主题

[内核入门] redhat9换内核后不能关机解决 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-14 23:39 |只看该作者 |倒序浏览
本帖最后由 flyingeagle1015 于 2013-03-14 23:43 编辑

    哥是小菜,高手飘过。。。。。。
背景
    由于本本不给力,编译一次linux2.6就要一个多小时(虽然有做精简,水平有限),只好暂时把内核改动转到2.4,代码学习依然用2.6(等攒点钱了换本本-_-#)。把平台换到了redhat9,采用了内核版本为2.4.37.11。
内核在redhat9原有内核基础上仅开启了SMP,结果关机不掉电,如图:

结果再怎么也不动了,找谷哥没招(计算机门外汉不会搜),what can i do,hit it by myself!Yeah!
分析
看到这一幕,一头雾水,肿么办?系统出问题了 ~~
1、先看看启动日志找找线索
    有一句日志进入我的视线,my god(linux电源管理相关的是apm,直接切入)

有点眉目了,大致知道了原因,可以怎么解决呢?Linux嘛,看代码是王道。

2、搜代码弄死它
       直接在代码里搜索相关日志,像我这个笨的都会,哈哈   
    if ((smp_num_cpus > 1) && !power_off && !smp) {
                printk(KERN_NOTICE "apm: disabled - APM is not SMP safe.\n";
                return -ENODEV;
        }
       一看就明白了吧,我的CPU有两个,所有power_off和smp不对,在找这俩的出去,咋不对呢?
     在apm_setup中是这样的:
       if (strncmp(str, "smp", 3) == 0)         {
                        smp = !invert;
                }
                if ((strncmp(str, "power-off", 9) == 0) || (strncmp(str, "power_off", 9) == 0))
                        power_off = !invert;
     invert就是看有没有前缀no-、no_。
3、解决验证下
   启动参数加上apm=on,power-off,smp,十几分钟搞定O(∩_∩)O哈哈~

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
2 [报告]
发表于 2013-03-22 17:18 |只看该作者
强  帮顶一个 谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP