無標題文檔

改造 Nokia e71 使用 USB 口充电

公司搬家的时候翻出个测试用的 Nokia e71,正好拿来当作备用机。经过几天的使用下来,
e71 待机方面的确是非常值得称道。

Nokia e71

然而万物并非都是完美, e71 对于我而言最郁闷的两个问题,一是无法使用 MicroUSB 接
口充电(据说可以使用 Nokia 原装线充?),二是竟然使用小口 2.5mm 的耳机孔。

毕竟用耳机插着手机听歌或者打电话的情况很少,而且 e71 是带了蓝牙的,所以这些问题
不大。而接口的充电问题是我没法容忍的,那 Nokia 细长奇葩的充电头看着很「弱不经风」。
同时目前手头都是标配 MicroUSB 数据线和 USB 充电头,实在是不想为这个「老古」的手机
特殊化。

考虑将 e71 的 MicroUSB 接口改造下,可以代替原本充电口的位置。用万用表了下 e71 充

电器的电压和电流差不多是 5V 500mA(详细),
这不正是 USB 的标准电压电流嘛?考虑用如果飞线将 e71 板子上的 MicroUSB 口子上的电引到充电口,
应该不用做任何的电压转换。

说干就干,MicroUSB 的接口定义和 MiniUSB 一样(详细)。
分别用漆包线在最两头引出 5v 正极以及负极即可。

漆包线飞线

我的飞线线路,记得针脚的正负极不要接反,否则会悲剧。话说用漆包线在 MicroUSB
上点焊需要点耐心。e71 的 MicroUSB 接脚刚好在电池舱旁边,因此飞线不可避免的会暴露在电池舱,
所以要同时考虑安装的厚度以及绝缘的问题。

注意绝缘和固定

焊接好了以后建议用胶带固定和绝缘,否则那脆弱纤细的漆包线指不定什么时候被电池给压断了。然后接上目前手机常见的
MicroUSB 数据线和 USB 充电头,插入 e71 的 MicroUSB 口子,如果一切都顺利的话 e71 就会提示充电了。

计算了下,5v/550mA 充满 e71 的话,估计要四五个小时。虽然比较慢,但现在总比满大街找 Nokia 充电器要好,对吧 :^)

-- EOF --

改造 TL-MR11U 3g 路由器 Part.2

接上文,这篇主要记录如何刷机。

概述

因为已经引出了 TTL 串口插针,所以这篇讲述的刷机方式是串口刷机,如果有更方便的方法,例如通过官方 Web 界面上传固件刷机,就不用这么麻烦了。

不过,对于我们这些非专业选手而言,TTL 刷机也是拯救路由器变砖前的最后一根稻草,所以还是要了解下如何通过串口刷机。

有关刷机原理方面,可以参考我画的示意图

刷机原理图

  1. 路由器通过串口和电脑相连(中间有个转接版),可以直接看到路由器启动等信息
  2. 路由器通过 LAN 端口直接和电脑相连,用于网络传输数据
  3. 上面是针对 MR11U 的刷机方式,不同的路由器有不同的刷机方式

软件和工具

我用的软件环境是 Mac,所以我主要记录下 Mac 下如何操作。Linux 或者其他的系统请自行搜索,网上都应该有原理方面其实都差不多。

Mac 下安装命令行工具,如果没有装开发工具(xcode)可能会没法进行。要下一步操作,就必须安装 xcode,同时找个软件包管理工具,例如我推荐 HomeBrew

接下来,下载必要的软件。

  1. Lion 似乎自带了 tftp 服务器,但用命令行启动它的确有些麻烦,这里有个免费的 gui 前端
  2. 官方的 OpenWrt for MR11U 固件,4m 版本其他容量的没测试过,如果您改了芯片,谨刷。
  3. minicom,这个是个命令行的串口调试软件。如果您已经安装了 HomeBrew,那么简单的 $brew install minicom 即可,如果是其他安装方式请自行搜索。

环境配置

市面上大多的 TTL2USB 板子都是基于 PL2303HX 芯片的这里有个文档看完以后就可以直接驱动设置转接版了。

PS,建议安装驱动的时候最好不要连接设备(转接版),同时重启计算机以后再连接使用。

接下来就可以插上 TTL2USB 的转接版到计算机上了,同时注意下 Mac 的「系统概述」中是否有这个板子的信息,如图

系统概述信息

如果一切 OK,系统会有个 /dev/cu.usbserial 文件,接下来我们就可以试试接口是否正常。


$ echo "Hello, world!" > /dev/cu.usbserial

如果没有错误信息,同时注意 TTL2USB 转接版的灯是否闪了下(如果没有闪,那么可能是 RX 和 TX 接反了),那么说明一切正常了。

接下来配置 minicom 如何链接路由器,路由器的速率一般是 115200 ,运行命令


$sudo minicom -s

minicom 配置

选择 Serial port setup ,然后配置如图,保存以后重启下 minicom 就可以使用了。

链接启动

环境配置好了以后,打开插上路由器电源,在 minicom 中应该就可以看到启动信息了。这时候,快速按下「tpl」顺序组合键,就可以停留在命令台。

串口启动显示信息

将路由器的网线端口和 Mac 的网线端口相连,在 minicom 中输入


printenv

查看环境变量,会看到如下字符串,注意此时 serverip 是 Mac 的 ip,ipaddr 是路由器的 ip 地址。

环境变量

设置 Mac 端的地址为 server ip 的地址,如图

设置 Mac 网络地址

然后打开 tftp Server 软件,选择下载保存固件的目录,然后启动 tftp Server (需要管理员权限)。

至此,和路由器的网络链接以及 Mac 端的 tftp 就配置好了,可以真正进行刷机了。

刷机

接下来就可以执行刷机操作了,在进行这个项目之前,请务必再检查:

  1. 电源是否稳定,避免刷机过程中掉电(MR11U 还带了快电池,这方面的风险少很多)
  2. 各接口板的连线是否正常,避免松动
  3. 网络链接是否正常

如果没有其他问题,就真正的开始了。这里再次声明下,由于刷机造成的后果本篇 Blog 不承担任何责任。

进行刷机操作

依次键入如下命令


tftpboot 0x81000000 openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-factory.bin

从 tftp 服务器获得 openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-factory.bin 固件内容,并写到从 0x81000000 开始的内存地址中


erase 0x9f020000 +0x3c0000

擦除从 0x9f020000 地址开始,偏移 +0x3c0000 地址的数据。注意,操作完此条命令以后,路由器的闪存已经就没有数据了。


cp.b 0x81000000 0x9f020000 0x3c0000

拷贝内存中的数据到闪存中,大小刚好是我们上条命令擦除的容量大小,这个操作需要点时间,例如 4m 大小的闪存大概需要几十秒。


bootm 9f020000

至此,路由器闪存中的数据已经是 openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-factory.bin 中的内容,也就是已经成功将路由器刷成了 OpenWrt 。

然后从 9f020000 地址开始引导,如果能看到很多字符在跳动,同时过段时间按下回车能登录到控制台,那么恭喜你刷机成功了。

OpenWrt 成功启动

但此时还没法做任何事情,因为此时的 OpenWrt 固件是没有 Web 端界面、默认无线是关闭的,所以我们还是要留在 minicom 中继续操作。

参考:http://wiki.openwrt.org/toh/tp-link/tl-mr11u

未完,待续…

改造 TL-MR11U 3g 路由器 Part.1

前言

MR11U 产品图

话说实在是手贱,败了那么多「没用」的数码装备,TL-MR11U 就是其中一个。虽然 TP-LINK 在做工上自然不能和国外的大厂比,但相比华为的那些 3g 路由器从价格上还是非常厚道的。

想改造它的想法是发现这个东西还可以刷 OpenWrt,同时想必 USB2.0 的端口(厂家设计自然是给 3g USB 网卡用的)带动块笔记本硬盘自然是毫无压力的。

而且考虑因为带有块电池,所以就算外部突然断电,也可以从容的保护硬盘免受伤害(天然 UPS 呀,亲)。所以,初步的改造目标就是将其刷入 OpenWrt,挂在硬盘做成 NAS 。

嗯,说干就干!

工具

因为刷 OpenWrt 是需要拆机引 TTL 线的,所以可能会失去保修,在意这块的同学请慎重考虑。

工作台

盘点下需要用到的工具:

  1. 整套螺丝刀(其实 MR11U 就两颗 1.8 十字螺丝,但整一套有备无患)
  2. 三角起具(撬外壳用,当然如果你对你指甲有信心…)
  3. 焊接工具(这个不用说了,技术宅必备)
  4. 引针(不要小看这个东西,我在这个上面吃了好多苦头)
  5. USB2TTL 连接线路板以及对应驱动

焊接 TTL 引针

打开后盖拔掉电池,拧开两颗十字螺丝(有一颗应该保修标签贴着,请再三思)。提示:拧开螺丝以后,建议从正面六点方向撬开正面板。此时,就可以很顺利得看见电路板了。

MR11U 电路板

这就是我说得为什么 TP-LINK 相比其他厂商做工还是差一截的原因 - 飞线、货真价实的飞线…

好吧,反正也失去保修了,就不管了。下面我们开始焊 TTL 引针。

TTL 接口通常在路由器电路板上并排的四个接口上,例如 MR11U 就在左下方 TP-LINK 的 Logo 下面,如图

MR11U TTL 引针

以 TP-LINK 正对我们为例(P1在左边),这四个接口分别是


|VCC|GND|RX|TX|

注意,USB2TTL 并不需要 VCC 3.3v 的电压,也就是只需要三根线即可,切记!

已经焊接好的 TTL 引针

以上是插入引针焊接好的样子,为了方便起见我将引针掰了九十度角。

连接 USB2TTL 接线板

保证引针和电路板的 TTL 口子焊接成功以后,就可以连接 TTL2USB 接线板了。我买的是型号为 PL2303HX 的转接板,淘宝上的正常价格应该为 20rmb 以内。

连接转接板相对比较简单,连接三根线(注意 RX 和 TX 为串接)即可,如图:

MR11U TTL 接线

以上为路由器接线

转接板 接线

以上为转接板接线。至此,我们硬件的准备工作就做好了。

未完,待续…

Finder 当前路径打开 Terminal 的小插件

码农在 Mac 折腾的时候都会在 Finder 和 Terminal 之中切换,所以在 Finder 中打开 Terminal 这个插件并不可少。其实这样的小工具已经有很多现成的, 例如这个

出于折腾以及洁癖等心理作祟,还是自己用 AppleScript 写了个,好处就是可以无视系统的兼容问题。

https://friable.rocks/_/2011_12_07/1323223251.png

安装方法很简单, 下载压缩包 以后直接把程序图标拖动到 Finder 中的工具栏中即可。当然,如果你是键盘控的话,完全可以设定个快捷键。

顺便说一句,这个 App 可以用 「AppleScript 编辑器」 打开编辑。最后,希望这个小玩意能帮到你。

— EOF —

GoogleCode 的 git 使用小记

早先就知道 GoogleCode 支持 git ,不过一直没时间体验。近期实在受不了频繁的 svn commit 加上公司的联通网络访问 GoogleCode 实在是慢得让人无法忍受,于是咬咬牙想把 GoogleCode 中那陈年的代码迁移到 git 控制中。

总得来讲,设置 GoogleCode 项目中新的版本控制方案并不复杂,只需要在管理中点击需要的版本控制系统就行。不过令人失望的是 GoogleCode 并没有自动转换成你需要的版本控制系统 -- 可能这点要求有点高,或许可能是 GoogleCode 出于代码安全方面的考虑。

登录验证 不同于 GitHub 等使用 ssh 密钥(又有点小失望), 它使用 .netrc 规则 (出于安全考虑,尽量将这个文件的属性设置为 600)。

PS,Windows 用户可以将同内容文件更名为 _netrc 然后放到 %HOME% 目录中。下面的命令可以让你得知你的 %HOME% 目录在哪:

echo %HOME%

设置验证完成后,就可以进行 git 的 clone 或者 push 等操作了。这里还得提醒下的就是 wiki 和项目代码两个 clone 是分开的,虽然这并不是什么问题,但我更愿意是像 GitHub 一样是两条分支。

可能先前大家在 GoogleCode 上已经有 svn 控制的代码了,那么你一定想如何将 svn 控制的代码导入到 git 中, 那么这篇文章可以帮助你

值得注意的是,GoogleCode 上每个版本控制系统是独立的,这意味着即便你在后台选择了使用 git 作为版本控制系统,其实老的 svn 路径还是可以正常使用的。

总得来讲,相对 GoogleCode,我更喜欢 GitHub 多一点。甚至我还专门从 GoogleCode 中迁移了部分项目代码到 GitHub 上。不过相对 GitHub 而言,GoogleCode 的社会化属性相对少些,这或许对于开发者而言可以将更多的精力投入在开发中。

那么,到底爱 GoogleCode 还是 GitHub?既然用 git 了,这说明其实我只是不爱将鸡蛋放在一个篮子里而已 :^)

-- EOF --

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHub (2) 、 TwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 其实无所谓叫什么名字,作为码农知道取名是件很难的事情。最后想到的这个名字,其实都没啥特别的含义,系统默认的文件名而已。

作为八零后,自认为还仅存点傲娇式的幽默感,以及对平淡生活的追求和向往。 为了免得对号入座和不必要的麻烦,声明本站点所持观点仅代表个人意见,不代表自己所服务公司的立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

文章

项目