2011年6月11日星期六

[无责任翻译]N900 可以不关机换电池

【感谢 sjw6234 《不用关机 热插拔更换N900电池》(http://www.wda.cn/thread-11045-1-2.html) 的介绍,部分翻译也参考此贴】
【[?]代表我特别不确定……其实通篇我都不怎么确定。如果发现错误请帮忙指出,非常感谢:-)】
原文链接: http://talk.maemo.org/showthread.php?t=57734
by joerg_rw
07-04-2010 , 07:25 AM

【红】**危险!**这是未经认证的硬件 hack !虽然我这里可以用,但是**没人能保证**这么干不会炸了你的 N900 甚至炸到你自己。我没发现这个过程可能有害或者有危险,不过也有可能我是错的。
**动手者风险自负!**【/红】

你可以在不完全关掉设备电源的情况下,把空电池换成一块充满电的电池。

经过测试的通用方法一(只有当现在设备上的电池**没有**充满电的时候你才可以试用——是的,因为这需要设备显示"正在充电",否则不关机换电池会失败):
1. 准备好快速充电器(就是插在插座上的那种,也叫线充),插到电源插座上。
2. 打开 N900 的后盖。( PR1.1.1 以及之前的系统,把弹出来的相机界面关掉)
3. 在 x-terminal 里进入 root ,输入停止 bme 的命令,**别打回车**
【代码】
root
stop bme
【/代码】
确认插好线充的电源,你得仔细看明白怎么拔电池——接下来的步骤是关键!
4. **关掉** GSM 模块(打开飞行模式或者平板模式)
5. 把背光亮度调低。确保它再接下来的几分钟以内不会关掉(可以把背光自动关闭的时间选的长一些,或者选"始终点亮背光"的选项)
6. (我**没**关 N900 的 WLAN ,不过如果你这么干就存在拔了电池 N900 就关机的可能,这和具体设置有关。如果耗电太多的话,你需要关闭 WLAN (打开飞行模式)来换电池)
7. 插好线充的 USB 插头,看到提示"充电中……",准备开始。
8. **现在按回车**来运行已经输入好的 'stop bme' 命令。*从现在开始有 30 秒时间可以用来换电池*
9. 拔掉没电的电池,手机应该还开着。
10. 插入满电的电池
停止 bme 进程 10~30 秒之后[?],黄色的 LED 指示灯会亮。这说明设备在紧急自主充电模式下工作。最好你此时已经插好电池了。黄灯亮表示你成功了。现在你有大约 30 分钟来完成接下来的步骤:
11. 在 x-terminal 里执行命令 'start bme' ,此时黄色 LED 关闭、黑屏。用侧键锁屏再解锁,屏幕就恢复了。
12. 现在你可以恢复那些节能的设置,比如背光亮度和打开 GSM 之类的。
13. 拔掉线充的 USB ,等 5 秒。再次插入,看看,确保 bme 已经正确的重启,可以正确地显示充电状态。

恭喜,你可以消耗另一块电池的电量来玩 N900 了。

**背景和补充信息**
N900 有一个电池充电器芯片,不用软件控制就可以给电池充电——就是所谓的紧急恢复充电模式(特征是黄色的 LED 指示灯长亮)。这个模式下, bme 进程停止与充电器芯片通信约 32 秒,就会触发芯片的监视程序复位[?]。复位发生之前,芯片会一直处于 bme 给它设置的那个状态。这就是我们停掉 bme 之前先进入充电状态的原因。
两种模式都**无法**确保提供足够的功率给整个 N900 (包括 GSM 、 GPS 、 振动、相机/闪光灯、视频编解码、外放之类的子系统)用,所以我们要保证设备只插充电器没有电池的时候,上述耗电操作不会突然发生。另一方面, bq24150 充电器芯片检测到电源电流持续低于某一阈值时就认为电池已经充满了,它会关闭充电模式——为此我们开着屏幕背光,确保总是会有足够的电流使芯片处于充电状态。
还有第三个原因导致插着充电器也会立即强制关闭,充电器芯片里有一个 32 分钟的计时器。此计时器过期就会无条件停止紧急充电。这就是上面提到的 30 分钟限制的由来。
这种紧急充电的特性仅在插着硬件短接了 usb 数据线的 D+/D- 的线充时才工作。所以用 CA-101 USB 数据线和 USB host 的时候这个方法通常**不能**用。

问:为什么我们需要停止那个意义不明的 bme ?
答: bme ( the battery management entity 电池管理实体)似乎是通过探测电池的第三个触点( BSI 指示触点)来检查是否插了正确的电池。如果 bme 检测到没电池了,它会在不到一秒钟之内就把 N900 关掉(这是我目前收集到的未经证实的事实)。也许这样做是为了正常关闭系统,文件系统不会损坏,直接拔电脑插头所发生的可怕事情也不会发生。在正常情况下,这是一个理智的好做法。但是,这里我们自己负全责,不进行耗电操作使系统崩溃,所以我们需要阻止 bme 进行电源管理[?]。**警告:发生问题时,文件系统被破坏的风险的确存在。备份好数据,做好重刷系统的准备!**记住你需要一个充满电的电池来刷系统——有可能你的 rootfs 会挂,这样手机就没法给电池充电。看此贴开头的警告。

问:这个指南你写成"方法一"——是不是还有方法二呢?
答:如果我们看到方法一有足够积极的回应(你可以简单的点击文章下面的 'Thanks!' 按钮来显示您感谢我们的工作),我会发布一个脚本来简化整个过程,同时通过设置一些条件检查来使这个过程更安全。我还会给你一个惊喜,主题《如何在没有外接电源的情况下热插拔》。

这个小 hack 由 jOERG 带来

====回帖里我感兴趣的部分笔记====
楼主《如何在没有外接电源的情况下热插拔》其实在 13 楼。需要 DIY 一个小配件。
楼主在 15 楼提到那个 DIY 的小配件似乎可以用 CA-146C 电源适配器,但是还需要进一步的研发。
zimon 在 17 楼提到了一种 N900 用的厚电+电池盖 Mugen 2400 mAh battery (http://www.mugen-power-batteries.com/nokia/nokia-n900/mugen-power-nokia-n900-2400mah-extended-replacement-battery-with-battery-door.html?r=22) , $96.95 。买不起,单纯口水一下。
nephridium 在 22 楼给出了换电池的脚本——可以将脚本加到电源按钮菜单里,这样就不需要用键盘输入了。不过他在 23 楼说这个脚本似乎并不总是有用orz


--

没有评论:

发表评论