2011年6月25日星期六

折腾 N900 不关机不开键盘换电池

顺着 http://talk.maemo.org/showpost.php?p=798751&postcount=22 这个的思路来的。
经过实验,确定了开着 wifi 和 VPN 不要紧(前提是 wifi 是 10mw 而不是 100mw ),只要把电话关掉就可以。接电脑的 usb 口也是可以的,前提是用质量好的充电线或者数据线——质量差的线电流明显不够,拔下电池就灭掉了。我用来试验的两条数据线,一条就是电流太小,另一条接口接触有问题,坑爹啊。
虽然还没有试图搞明白 dbus 那一坨,所幸在源里发现了 phone-control 这么个好东西……说白了就是把 dbus 那一坨给包装起来,便于在命令行里使用。

Nokia-N900:~# cat /etc/user/MyDocs/myscript/batteryswitch.sh
#!/bin/bash# need phone-control# how to use:# sh -c 'cat /home/user/MyDocs/myscript/batteryswitch.sh | root'if pgrep -l 'bme_RX-51'; then phone-control --celloff stop bme sleep 1 phone-control --notify 'Go!'else start bme phone-control --cellon sleep 1 phone-control --keylock sleep 1 phone-control --keyunlock sleep 3 phone-control --notify 'Done!'fi
Nokia-N900:~# cat /etc/systemui/batteryswitch.xml
<powerkeymenu path="/">
<menuitem priority="19" name="换电池">
<callback service="com.nokia.xterm" path="/com/nokia/xterm" interface="com.nokia.xterm" method="run_command" bus="session" autostart="true">
<argument type="string">sudo /usr/bin/run-standalone.sh /etc/systemui/batteryswitch.sh && exit</argument>
</callback>
</menuitem>
</powerkeymenu>

就是这么俩文件。弄好之后重启,电源菜单上就多出一项"换电池"。
连好电源线,扒掉电池盖,按电源键弹出菜单,选"换电池",跑出一个命令行窗口(无视它吧),出现"Go!"的提示条就可以拔掉旧电池安上新的。再按电源键弹出菜单,选"换电池",等出现"Done!"的提示条就算好了。

update: 改了一下存放位置和调用方法。
--

2011年6月24日星期五

N900 记事之看星星

在 N900 上装了 Stellarium 。装上就是中文的。
在设置里把光污染调节到最高的 9 ,终于和我平时印象中的夜空有点像了,不过软件上的星星还是更多些。
在老爹和维基百科的帮助下认了夏季大三角:牛郎、织女和天津四。
通过对比光污染 1 和光污染 9 的夜空,确认我总是找不到北斗七星勺子柄拐弯的那颗星星和仙后座 "W" 起笔的那颗星星并不是我的眼神有问题,而是它们本来就不很亮。甚感欣慰。
另外原来银河是真的能在天上看到啊……老外说这是赫拉的奶水变的"奶路",倒是形象。我从来没亲眼见过银河,一直还以为是古人想象出来的呢。囧而且悲哀了。
--

2011年6月18日星期六

粉色的聚会

上面是喷成粉色的诺基亚 N900 ,下排左起诺基亚 N72 、诺基亚 2505(CDMA) 、黑莓 7250(CDMA) 。
感谢伟大的宅男 @Kayneth 弟弟 帮我把 N900 的壳子喷成粉嫩的粉色~真是令人爱不释手呀~
N72 不用说了,年近四岁,没有意外的话还会一直服役下去。
2505 是我自己的第一只 CDMA 手机,工作需要。我要买个合口味的——为了这个粉色其实多花了不少钱。电信虽然有继续生产 2505 但似乎并没有粉色的,粉色 2505 应该都是老联通的库存机器。通话声音也好铃声也好都很小声……不过这个小身板也可以了。现在主要是在单位使用 RF-UIM 卡。
7250 的粉色壳子其实是从 @wangguan 以前卖给我的粉色 7290 上拆下来的…… 7290 换上黑壳子漂流了出去,粉色的壳子我昧下了。正好 @bao3 漂流给了我 7250 ,看着身板差不多我就给换上了。写了号接打电话没问题,就是没有中文而已。拿来煲电话粥最合适了。

--

2011年6月11日星期六

看 chm

下载了一本《汉译世界学术名著丛书(珍藏本)》, chm 格式的,默认的 OKular 打不开,于是装了个 kchmviewer 。书名乱码,编码设置成 gbk 。首页还是显示不出来,在设置中改成"基于 KHTMLPart 组件",重启 kchmviewer 就看到了。

--

[无责任翻译]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


--

2011年6月10日星期五

与 N900 蜜月时的精神出轨全纪录:对 HP veer 长草拔草

鬼畜 S 老婆大人 N900 最近不在家……没丢,出门到朋友家而已,归期未定。
老婆大人还没进门的时候我就知道 mfe 同步 google 联系人很费力,真正到手基本就被搞得没脾气了。怨念不会没有,不过目前有诺基亚 N72 还可以做到,以后考虑入 HP pre3 、 web os 这方面不用担心,所以也无所谓。
今天突然想起和 pre3 一起发布的 veer 了。突然长草了。
查参数,发现 veer 形状和颜色都很可爱……尤其是那么小……每次出门带一包板砖(诺基亚 N72 、诺基亚 N900 、黑莓 8800 、 Palm 755p )的我对于她的精致小巧燃起了熊熊欲火=。=越看越可爱啊……
发现 veer 的电池是内置的,没有电的话换起来不方便,而且容量挺小的——点金石很贵,不过这么小这么可爱,可以理解啦~
发现 veer 充电和耳机都需要外接转换头——现在我也随身带着给 8800 用的蓝牙耳机、 N72 的和 755p 的音频转接头以及一个 3.5mm 的有线耳机,无所谓啦~
pre3 支持 evdo ……我以为 veer 也是支持的……可是她不是。我需要用电信的号码上 evdo 给 N900 当 AP ——这个不满足的话就算了,果断对 veer 拔草。
不过再看看图片和视频…… veer 真的好漂亮哦~一边口水一边扼腕。

--

2011年6月9日星期四

挖坟挖得内牛满面

http://groups.google.com/group/python-cn/browse_thread/thread/ec6ecc30b310ccb8 Python模拟登陆,POST数据并保存COOKIE等概念的详细讲解?
看到这个不禁内牛满面……不堪回首……俺自己写的时候死活也学不会 cookielib ,好像还遇见了 keep-alive 搞不定,于是用 httplib 硬写的……算啦,反正已经忘光了,下次有需要的时候肯定还是要从头开始学,到时候再慢慢研究好了orz

--

2011年6月5日星期日

笔记——可以用 encode('raw_unicode_escape') 处理并非 unicode 编码的 unicode 字符串

http://groups.google.com/group/python-cn/browse_thread/thread/a601a5b202e7c65e python抓取中文网页内容是[u'\xbe\xaf\xcc\xe8\xba\xab\xba\xae……

>>> s = u'\xbe\xaf\xcc\xe8'
>>> s.encode('raw_unicode_escape')
'\xbe\xaf\xcc\xe8'
>>> s.encode('raw_unicode_escape').decode('gbk')
u'\u8b66\u60d5'
>>> print s.encode('raw_unicode_escape').decode('gbk')
警惕
(以上是俺在 pys60 上跑的)
--

2011年6月2日星期四

与 N900 的蜜月记事——第一次拆机

没拍照片——老婆大人的果照怎么可以随便流出的嘛=w=

拆机的起因是键盘的 z 键失灵了。刚买回来的时候是没有问题的,后来时好时坏。因为之前用 N72 的时候经常碰上这种事情,拆机在主板上按对应的位置,按到正常就好了,我还是很淡定的。
昨天看了几个拆机的视频,今天早晨起床之后第一件事就是从 http://nokiabbs.cnmo.com/thread-159244-1-1.html 下了个官方的拆机手册,对着拆。目标仅仅是处理好键盘,为以后换壳积累经验,另外看看加固 usb 口要有多大的工程量,倒是不着急彻底拆散架。
上面固定屏幕的四个螺丝是十字的,下面固定键盘的两个是六角雪花的。
她是我的第一款滑盖机,所以把屏幕拆下来之后特别练习了一下拆装排线。
把固定字粒的框拆下来,字粒拿走,主板撬出来观察了一下, usb 口和镜头、 TF 卡槽紧挨着,有点麻烦,不拆开研究了。
主板装回去,把屏幕接回去电池装回去开机,按了一番,失灵的按键果然恢复了。
重新装起来的时候总感觉不对劲,发现屏幕是翘起来的。原因在于屏幕下侧有个卡口应该是插在键盘框的下面的,但是我装屏幕是从上方按下去,自然就卡在外面。解决办法是先推开屏幕,倾斜着对好卡口的位置,再向下用力把整个屏幕装到位,最后把屏幕合起来上螺丝。

这是拆机过程中我和她的一段对话:
"你一大早这么折腾蛋疼不蛋疼啊?"
"要是不蛋疼的话就不会喜欢你了……"
然后她就 smilence 了。

--