-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathveer-sleep-bug.html
168 lines (154 loc) · 10.2 KB
/
veer-sleep-bug.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<!DOCTYPE html>
<html lang="zh">
<head>
<title>A Ordinary Boy, A Marvelous Toy | 小v的sleep掉电bug根本原因分析和解决</title>
<meta charset="utf-8" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" href="/theme/css/base.css" />
<meta name="author" value="cosmoslx" />
<meta name="description" value="hi~ 各位机油 , 龙年快乐啊 , 从 2011 年的圣诞的那天开始我拥抱 veer, 走上 webos 之路 , 各位煮机网的机油都给我提供了大量的帮助 , 现在是我小小贡献的时候了 . 废话不多说 , 进入正题 ." />
<meta name="keywords" value="" />
</head>
<body>
<header class="site highlight">
<h1 class="stamp lrot bs"><a href="/">A Ordinary Boy</a></h1>
<h1 class="stamp rrot rfloat"><a href="http://github.com/cosmoslx/blog">A Marvelous Toy</a></h1>
</header>
<div class="site clearfix">
<nav class="lfloat">
<ul class="links">
<li>
<a class="stamp" href="/category/life.html">Life</a>
</li>
<li class="active">
<a href="/category/play.html">Play</a>
</li>
<li>
<a class="stamp" href="/category/tech.html">Tech</a>
</li>
</ul>
<ul class="social rfloat">
<li><a title="about me" href="http://about.me/cosmoslx"></a></li>
<li><a title="github" href="http://github.com/cosmoslx"></a></li>
<li><a href="/feeds/atom.xml" class="feed" type="atom+xml"></a></li>
</ul>
</nav> <section class="content">
<h1 class="stamp">小v的sleep掉电bug根本原因分析和解决</h1>
<div class="body">
<article>
<footer>
<ul class="socialbtn">
<li></li>
<li></li>
</ul>
Sat 04 February 2012
<address>
<img width="20" height="20" src="http://gravatar.com/avatar/b41ce38811954c2eb6009af0c131f4aa"></img>
<a href="/author/cosmoslx.html">cosmoslx</a>
</address>
</footer>
<div class="content">
<p>hi~ 各位机油 , 龙年快乐啊 , 从 2011 年的圣诞的那天开始我拥抱 veer, 走上 webos 之路 , 各位煮机网的机油都给我提供了大量的帮助 , 现在是我小小贡献的时候了 . 废话不多说 , 进入正题 .</p>
<h1>sleep 掉电 bug</h1>
<p> 简单回顾一下所谓的 sleep 掉电 bug 及如何判断是否你的小 v 有掉电 bug 呢 .</p>
<h2> 什么是 sleep 掉电 bug</h2>
<p> 回顾一下所谓的 <a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=85588&fromuid=230125">sleep 掉电 bug</a> 指的是 </p>
<div class="highlight"><pre>webos 设备有过待机突然掉电的情况 , 通过刷机和 reboot 解决 , 就是可能有 sleep bug, 即设备不能正常 sleep
</pre></div>
<p> 通常如果你的 veer 充满电并在晚上睡觉时开启飞行模式一般早上起来会消损 2%~3% 的电 , 而如果有你的 veer 消损 20%~30% 的电量 , 那么很可能就是掉电 bug.</p>
<h2> 判断标准及方法 </h2>
<p> 使用 sdlterminal, 详细 <a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=85588&fromuid=230125"> 参考 </a></p>
<p>1. 在 preware 中安装 sdlterminal 这个软件 ;
2. 在非充电的状态下运行 sdlterminal, 单击电源键 ,15 秒后再单击电源键 ;
3. 查看 sdlterminal 上的 powerd 信息 , 正常情况 sdlterminal 会记录两个时间信息 , 一个是你第一次按电源键的时间 , 另一个是第二次按电源键的时间 ;
4. 如果出现很多 system go to sleep now 和 system woke up, 就说明你的设备存在 sleep bug。</p>
<h1> 引起 sleep 掉电 bug 的原因分析 </h1>
<p> 有很多相关的帖子分析了掉电 bug 的原因 , 有的人认为是硬件的问题 , 有的人认为是 rom 的问题 , 在这里我就不多描述了 . 这里开始描述一下我发现的 sleep 掉电的原因的经过 .</p>
<p> 可能大家开始入手 veer 的时候而且如果是动感地带的卡的话都会遇到过这样的问题 :
<a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=94264&fromuid=230125"> 为甚么我的 <span class="caps">VEER</span> 装上动感地带的卡后老是出现 “<span class="caps">SIM</span> 卡服务 ” 的字样 </a>
我和我 <span class="caps">GF</span> 一起买的 veer, 她的就不会 , 而我的就经常弹出 , 于是按照上面 <a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=94264&fromuid=230125">2</a> 的做法删除了 stk, 动感终于不会弾了 ,
但是随之而来的却是 veer 的电量快速消损 , 看来我是遇到了传说中的 sleep 掉电 bug 了 .
于是开始参考煮机网上的机油的各种建议 , 开始优化 , 可是效果却还是不太好 .
<em> 开始技术分析 , 不想看的机油直接看结论吧 , 哈哈 </em></p>
<h2> 技术分析 </h2>
<p> 在参考各种掉电 bug 处理的帖子中 , 其中的一个帖子一位机油提到过 , 使用一个工具跟踪 sdlterminal 发出的 wake up 事件 , 给我了灵感 .
果断的想去搞清楚 wake up 事件的来源 .
因为正是由于有不断的 wake up 事件使得 veer 在待机的时候相关电源管理的进程 powerd 无法调度 veer 的内核进入 sleep 状态 . 如果知道了这个事件的源头并成功阻止它 , 那么我们的 sleep 掉电的问题就会解决了 .</p>
<p> 来一个小插曲 : 在这个时候我打补丁一不小心搞挂了机 , 于是重新刷机 . 动感地带还是不断在弹出 . 非常烦人 .
于是我想把这个问题也解决一下而不用去删除 stk, 就把我 gf 的 sim 卡放到我的 veer 中测试了一下 , 好像机器又没有弾了 .
就开始怀疑我的 sim 卡可能用太久了有点接触不良于是就只好把 stk 删除来干掉烦人的动感地带 , 哈哈 , 世界又清静了 . 过了两天 , 我 gf 的机子也说不断弾动感地带了 , 这怎么回事呢 . 果断帮她处理掉 .</p>
<p> 而上面的小插曲又给我灵感了 , 动感地带弾出不是一种事件吗 ? 它之所以会弹出是因为手机不断在进入网络 , 所以才会有弹出提示啊 .
正常的情况下一次开机第一次弹出就不会再强了 . 于是为了验证这个想法 , 果断找来了我的旧 wm6 手机 , 插卡开机 , 不断弹出 ! ok, 好了我终于明白了动感地带弹出信息不是由于 stk 程序的问题 , 而是由于不断的进入网络 , 换言之 :</p>
<div class="highlight"><pre> 我的 sim 卡坏了 ! 导致不断弹出动感地带信息 !
</pre></div>
<p> 最后 , 联想我的 gf 原来好好的不弹出信息却由于我测试后就弹出了 , 联想我做过的操作 , 很容易就推导出这样的结论 :</p>
<div class="highlight"><pre> 由于我热插拔 ( 没有关机就换 )sim 卡 , 导致了 sim 卡坏了 !
</pre></div>
<h2> 结论 </h2>
<ol>
<li><strong> 动感地带信息的不断弹出 , 导致 veer 不能正常 sleep 从而导致了 sleep bug.</strong></li>
<li><strong>sim 卡损坏了 , 导致动感地带信息的不断弹出 .</strong></li>
<li><strong> 在 veer 中热挺拔 sim 卡 , 极容易导致 sim 卡损坏 .</strong></li>
</ol>
<hr />
<h1>sleep 掉电 bug 的解决方法及验证 </h1>
<p> 好了 , 有了上述的 sleep 掉电 bug 的分析 , 那么解决方法和验证方法都非常明确和简单了 :</p>
<div class="highlight"><pre> 到移动营业厅办理换 SIM 卡 ( 我这里要 15 元和服务密码 ), 这样就不会有 sleep bug 了
</pre></div>
<p> 经过我和我 gf 的这一个多月来的验证 , 证实了我已经解决了 sleep bug, 现在飞行模式待机一晚就 2% 的电量啦 . 越来越喜欢我的小 v 了 . 希望对大家有帮助 . 谢谢 !</p>
<p> 如果有时间 , 在开学前我会整理一下我的 veer&webos 的 wiki 笔记分享给煮机网的各位好机油 ~ 谢谢你们 .</p>
<h1> 参考 </h1>
<ol>
<li><a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=85588&fromuid=230125"> 待机突然掉电的真正原因 ,11 月 21 日针对 veer 更新 !</a></li>
<li><a href="http://bbs.zoopda.com/forum.php?mod=viewthread&tid=94264&fromuid=230125"> 为甚么我的 <span class="caps">VEER</span> 装上动感地带的卡后老是出现 “<span class="caps">SIM</span> 卡服务 ” 的字样 </a></li>
</ol>
</div><!-- /.entry-content -->
<div class="comments">
<h2>Comments</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_identifier = "veer-sleep-bug.html";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://cosmoslx-blog.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</div>
</article>
</div>
</section>
<footer class="site clearfix bs">
<section class="lfloat">
<ul>
<lh>categories</lh>
<li><a href="/category/life.html">Life</a></li>
<li><a href="/category/play.html">Play</a></li>
<li><a href="/category/tech.html">Tech</a></li>
</ul>
</section>
<section class="lfloat">
<ul>
<lh>pages</lh>
</ul>
</section>
<section class="rfloat">
<small>
<p>site generated by <a href="https://github.com/getpelican/pelican">pelican</a></p>
<p>theme by <a href="https://github.com/demianbrecht">demian brecht</a></p>
<p>备案号:<a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备2021059169号-1</a></p>
</small>
</section>
</footer> </div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-58180786-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>