2008年4月16日 星期三

OpenMoko Neo FreeRunner 解放軍起死回生

Standard
就如『OpenMoko』網站上的口號『Free Your Phone』,其目標不但是軟體,甚至是硬體的設計也都是開放公開的。就因為如此,一度掀起許多社群和媒體的囑目。

但是到底要『如何解放你的手機』,這議題就有很大的討論空間了,通常可以在『OpenMoko Wiki』找到許多 Developer 所需的 document 和開發工具。在仔細閱讀後發現各資料其實相當完整,對於籌組『解放軍』來說是綽綽有餘呀。

因為最近取得了 OpenMoko 的 Neo FreeRunner,所以整天都在把玩它,不過身為破壞狂的我,才短短幾個小時 rootfs 就被我玩壞了,馬上就要到 Wiki 報到求救,尋找 re-flashing NAND 以回復 rootfs 的方法 。:(

閱讀過許多文件後,發現 Flashing NAND 非常簡單,只要幾個步驟就可以還給我一個新的系統。

首先,『同時』按住『Power Button』和『AUX Button』三到四秒, Neo 就會開機並顯示 U-boot Menu。


這時候就可以使用 USB Cable 連接電腦,並使用『dfu-util』去 re-flashing 新的 rootfs :

./dfu-util -a rootfs -R -D OpenMoko-openmoko-devel-image-glibc-ipk-P1-Snapshot-20080131-fic-gta01.rootfs.jffs2


然後會有 flashing information:
dfu-util - (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Opening USB Device 0x0000:0x0000...
Claiming USB DFU Runtime Interface...
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request...
Resetting USB...
Opening USB Device...
Found Runtime: [0x1d50:0x5119] devnum=17, cfg=0, intf=0, alt=6, name="rootfs"
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x1000
bytes_per_hash=933232
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode


這下 Neo 又活過來,不知道這次會撐多久呢? :P