A Ordinary Boy

A Marvelous Toy

小v的sleep掉电bug根本原因分析和解决

hi~ 各位机油 , 龙年快乐啊 , 从 2011 年的圣诞的那天开始我拥抱 veer, 走上 webos 之路 , 各位煮机网的机油都给我提供了大量的帮助 , 现在是我小小贡献的时候了 . 废话不多说 , 进入正题 .

sleep 掉电 bug

简单回顾一下所谓的 sleep 掉电 bug 及如何判断是否你的小 v 有掉电 bug 呢 .

什么是 sleep 掉电 bug

回顾一下所谓的 sleep 掉电 bug 指的是

webos 设备有过待机突然掉电的情况 , 通过刷机和 reboot 解决 , 就是可能有 sleep bug, 即设备不能正常 sleep

通常如果你的 veer 充满电并在晚上睡觉时开启飞行模式一般早上起来会消损 2%~3% 的电 ,  而如果有你的 veer 消损 20%~30% 的电量 , 那么很可能就是掉电 bug.

判断标准及方法

使用 sdlterminal, 详细 参考

1. 在 preware 中安装 sdlterminal 这个软件 ; 2. 在非充电的状态下运行 sdlterminal, 单击电源键 ,15 秒后再单击电源键 ; 3. 查看 sdlterminal 上的 powerd 信息 , 正常情况 sdlterminal 会记录两个时间信息 , 一个是你第一次按电源键的时间 , 另一个是第二次按电源键的时间 ; 4. 如果出现很多 system go to sleep now 和 system woke up, 就说明你的设备存在 sleep bug。

引起 sleep 掉电 bug 的原因分析

有很多相关的帖子分析了掉电 bug 的原因 , 有的人认为是硬件的问题 , 有的人认为是 rom 的问题 , 在这里我就不多描述了 .  这里开始描述一下我发现的 sleep 掉电的原因的经过 .

可能大家开始入手 veer 的时候而且如果是动感地带的卡的话都会遇到过这样的问题 : 为甚么我的 VEER 装上动感地带的卡后老是出现 “SIM 卡服务 ” 的字样 我和我 GF 一起买的 veer, 她的就不会 , 而我的就经常弹出 , 于是按照上面 2 的做法删除了 stk, 动感终于不会弾了 , 但是随之而来的却是 veer 的电量快速消损 , 看来我是遇到了传说中的 sleep 掉电 bug 了 . 于是开始参考煮机网上的机油的各种建议 , 开始优化 , 可是效果却还是不太好 . 开始技术分析 , 不想看的机油直接看结论吧 , 哈哈

技术分析

在参考各种掉电 bug 处理的帖子中 , 其中的一个帖子一位机油提到过 , 使用一个工具跟踪 sdlterminal 发出的 wake up 事件 , 给我了灵感 . 果断的想去搞清楚 wake up 事件的来源 . 因为正是由于有不断的 wake up 事件使得 veer 在待机的时候相关电源管理的进程 powerd 无法调度 veer 的内核进入 sleep 状态 .  如果知道了这个事件的源头并成功阻止它 , 那么我们的 sleep 掉电的问题就会解决了 .

来一个小插曲 : 在这个时候我打补丁一不小心搞挂了机 , 于是重新刷机 . 动感地带还是不断在弹出 . 非常烦人 . 于是我想把这个问题也解决一下而不用去删除 stk, 就把我 gf 的 sim 卡放到我的 veer 中测试了一下 , 好像机器又没有弾了 . 就开始怀疑我的 sim 卡可能用太久了有点接触不良于是就只好把 stk 删除来干掉烦人的动感地带 , 哈哈 , 世界又清静了 .  过了两天 , 我 gf 的机子也说不断弾动感地带了 , 这怎么回事呢 . 果断帮她处理掉 .

而上面的小插曲又给我灵感了 , 动感地带弾出不是一种事件吗 ? 它之所以会弹出是因为手机不断在进入网络 , 所以才会有弹出提示啊 . 正常的情况下一次开机第一次弹出就不会再强了 . 于是为了验证这个想法 , 果断找来了我的旧 wm6 手机 , 插卡开机 , 不断弹出 ! ok, 好了我终于明白了动感地带弹出信息不是由于 stk 程序的问题 , 而是由于不断的进入网络 , 换言之 :

 我的 sim 卡坏了 ! 导致不断弹出动感地带信息 !

最后 , 联想我的 gf 原来好好的不弹出信息却由于我测试后就弹出了 , 联想我做过的操作 , 很容易就推导出这样的结论 :

 由于我热插拔 ( 没有关机就换 )sim 卡 , 导致了 sim 卡坏了 !

结论

  1. 动感地带信息的不断弹出 , 导致 veer 不能正常 sleep 从而导致了 sleep bug.
  2. sim 卡损坏了 , 导致动感地带信息的不断弹出 .
  3. 在 veer 中热挺拔 sim 卡 , 极容易导致 sim 卡损坏 .

sleep 掉电 bug 的解决方法及验证

好了 , 有了上述的 sleep 掉电 bug 的分析 , 那么解决方法和验证方法都非常明确和简单了 :

 到移动营业厅办理换 SIM 卡 ( 我这里要 15 元和服务密码 ), 这样就不会有 sleep bug 了 

经过我和我 gf 的这一个多月来的验证 , 证实了我已经解决了 sleep bug, 现在飞行模式待机一晚就 2% 的电量啦 .  越来越喜欢我的小 v 了 . 希望对大家有帮助 . 谢谢 !

如果有时间 , 在开学前我会整理一下我的 veer&webos 的 wiki 笔记分享给煮机网的各位好机油 ~ 谢谢你们 .

参考

  1. 待机突然掉电的真正原因 ,11 月 21 日针对 veer 更新 !
  2. 为甚么我的 VEER 装上动感地带的卡后老是出现 “SIM 卡服务 ” 的字样

Comments